[JSC] Generate TemplateObjects at linking time
[WebKit-https.git] / JSTests / ChangeLog
1 2017-03-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2
3         [JSC] Generate TemplateObjects at linking time
4         https://bugs.webkit.org/show_bug.cgi?id=169743
5
6         Reviewed by Keith Miller.
7
8         * stress/template-string-tags-eval.js: Added.
9         (shouldBe):
10         (tag):
11
12 2017-04-04  Mark Lam  <mark.lam@apple.com>
13
14         On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
15         https://bugs.webkit.org/show_bug.cgi?id=170473
16         <rdar://problem/29912391>
17
18         Reviewed by Saam Barati.
19
20         * stress/regress-170473.js: Added.
21
22 2017-04-03  Mark Lam  <mark.lam@apple.com>
23
24         Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
25         https://bugs.webkit.org/show_bug.cgi?id=170412
26         <rdar://problem/29697336>
27
28         Reviewed by Filip Pizlo.
29
30         * stress/regress-170412.js: Added.
31
32 2017-04-03  Keith Miller  <keith_miller@apple.com>
33
34         WebAssembly: Update spec tests
35         https://bugs.webkit.org/show_bug.cgi?id=170361
36
37         Rubber-stamped by Saam Barati.
38
39         Update the spec tests to run tests generated by the newer spec
40         test builder wasm-spec/test/builder.py. This patch also adds the
41         necessary harness code in spec-harness.js so we can run the tests.
42
43         * wasm.yaml:
44         * wasm/import-spec-tests.rb:
45         * wasm/spec-harness.js: Added.
46         (import.string_appeared_here.then):
47         (test):
48         (promise_test):
49         (let.assert_unreached):
50         * wasm/spec-harness/index.js: Added.
51         (let.testNum):
52         (assertThrows):
53         (_assert):
54         (ValueResult):
55         (ErrorResult):
56         (Result.prototype.isError):
57         (binary):
58         (module):
59         (uniqueTest):
60         (assert_invalid):
61         (assert_soft_invalid):
62         (register):
63         (call):
64         (get instance):
65         (exports):
66         (run):
67         (assert_unlinkable):
68         (assert_uninstantiable):
69         (assert_trap):
70         (try.f):
71         (catch):
72         (assert_exhaustion):
73         (assert_return):
74         (assert_return_nan):
75         * wasm/spec-harness/testharness.css: Added.
76         (html):
77         (#log .warning,):
78         (#log .error,):
79         (section#summary):
80         (table#results):
81         (table#results th:first-child,):
82         (table#results th:last-child,):
83         (table#results.assertions th:last-child,):
84         (table#results th):
85         (table#results td):
86         (tr.pass > td:first-child):
87         (tr.fail > td:first-child):
88         (tr.timeout > td:first-child):
89         (tr.notrun > td:first-child):
90         (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
91         (table#results span):
92         (table#results span.expected):
93         (table#results span.actual):
94         (span.ok):
95         (tr.error):
96         (span.timeout):
97         (span.ok, span.timeout, span.error):
98         * wasm/spec-harness/testharness.js: Added.
99         (WindowTestEnvironment):
100         (WindowTestEnvironment.prototype._dispatch):
101         (WindowTestEnvironment.prototype._forEach_windows):
102         (WindowTestEnvironment.prototype.on_tests_ready):
103         (WindowTestEnvironment.prototype.setup_messages):
104         (WindowTestEnvironment.prototype.next_default_test_name):
105         (WindowTestEnvironment.prototype.on_new_harness_properties):
106         (WindowTestEnvironment.prototype.add_on_loaded_callback):
107         (WindowTestEnvironment.prototype.test_timeout):
108         (WindowTestEnvironment.prototype.global_scope):
109         (WorkerTestEnvironment):
110         (WorkerTestEnvironment.prototype._dispatch):
111         (WorkerTestEnvironment.prototype._add_message_port):
112         (WorkerTestEnvironment.prototype.next_default_test_name):
113         (WorkerTestEnvironment.prototype.on_new_harness_properties):
114         (WorkerTestEnvironment.prototype.on_tests_ready):
115         (WorkerTestEnvironment.prototype.add_on_loaded_callback):
116         (WorkerTestEnvironment.prototype.test_timeout):
117         (WorkerTestEnvironment.prototype.global_scope):
118         (DedicatedWorkerTestEnvironment):
119         (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
120         (SharedWorkerTestEnvironment):
121         (SharedWorkerTestEnvironment.prototype.on_tests_ready):
122         (ServiceWorkerTestEnvironment):
123         (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
124         (create_test_environment):
125         (is_shared_worker):
126         (is_service_worker):
127         (test):
128         (async_test):
129         (promise_test):
130         (this.wait_for):
131         (EventWatcher):
132         (setup):
133         (done):
134         (generate_tests):
135         (step_timeout):
136         (truncate):
137         (is_node):
138         (format_value):
139         * wasm/spec-harness/testharnessreport.js: Added.
140         * wasm/spec-harness/wasm-constants.js: Added.
141         (bytes):
142         (bytesWithHeader):
143         (makeSig):
144         (makeSig_v_x):
145         (makeSig_v_xx):
146         (makeSig_r_v):
147         (makeSig_r_x):
148         (makeSig_r_xx):
149         (assertTraps):
150         (assertWasmThrows):
151         * wasm/spec-harness/wasm-module-builder.js: Added.
152         (Binary.prototype.emit_u8):
153         (Binary.prototype.emit_u16):
154         (Binary.prototype.emit_u32):
155         (Binary.prototype.emit_u32v):
156         (Binary.prototype.emit_bytes):
157         (Binary.prototype.emit_string):
158         (Binary.prototype.emit_header):
159         (Binary.prototype.emit_section):
160         (Binary):
161         (WasmFunctionBuilder):
162         (WasmFunctionBuilder.prototype.exportAs):
163         (WasmFunctionBuilder.prototype.exportFunc):
164         (WasmFunctionBuilder.prototype.addBody):
165         (WasmFunctionBuilder.prototype.addLocals):
166         (WasmFunctionBuilder.prototype.end):
167         (WasmGlobalBuilder):
168         (WasmGlobalBuilder.prototype.exportAs):
169         (WasmModuleBuilder):
170         (WasmModuleBuilder.prototype.addStart):
171         (WasmModuleBuilder.prototype.addMemory):
172         (WasmModuleBuilder.prototype.addExplicitSection):
173         (WasmModuleBuilder.prototype.addType):
174         (WasmModuleBuilder.prototype.addGlobal):
175         (WasmModuleBuilder.prototype.addFunction):
176         (WasmModuleBuilder.prototype.addImport):
177         (WasmModuleBuilder.prototype.addImportedGlobal):
178         (WasmModuleBuilder.prototype.addImportedMemory):
179         (WasmModuleBuilder.prototype.addImportedTable):
180         (WasmModuleBuilder.prototype.addExport):
181         (WasmModuleBuilder.prototype.addExportOfKind):
182         (WasmModuleBuilder.prototype.addDataSegment):
183         (WasmModuleBuilder.prototype.exportMemoryAs):
184         (WasmModuleBuilder.prototype.addFunctionTableInit):
185         (WasmModuleBuilder.prototype.appendToTable):
186         (WasmModuleBuilder.prototype.setFunctionTableLength):
187         (WasmModuleBuilder.prototype.toArray):
188         (WasmModuleBuilder.prototype.toBuffer):
189         (WasmModuleBuilder.prototype.instantiate):
190         * wasm/spec-harness/wast.js: Added.
191         (normalize):
192         (require.else._registry.name):
193         (require):
194         (add_hex_char):
195         (add_char):
196         (string_with):
197         (list_of_opt):
198         (break_bytes.f):
199         (break_bytes):
200         (f):
201         (decls):
202         (func_type):
203         (limits):
204         (global_type):
205         (testop):
206         (relop):
207         (unop):
208         (binop):
209         (cvtop):
210         (oper):
211         (mem_size):
212         (extension):
213         (memop):
214         (storeop):
215         (var):
216         (constop):
217         (instr.else.switch.case.0.f):
218         (instr.else.switch.case.1.f.1):
219         (instr.else.switch.case.2.f.2):
220         (instr):
221         (func_with_name):
222         (func):
223         (start):
224         (table):
225         (memory):
226         (segment):
227         (elems):
228         (data):
229         (typedef):
230         (import_kind):
231         (import):
232         (export_kind):
233         (export):
234         (var_opt):
235         (is_func_import):
236         (is_table_import):
237         (is_memory_import):
238         (is_global_import):
239         (f.1):
240         (f.2):
241         (f.3):
242         (module_with_var_opt):
243         (module_):
244         (literal):
245         (definition):
246         (access):
247         (action):
248         (script):
249         (_registry.string_appeared_here):
250         (init):
251         (make_matrix):
252         (copy):
253         (append):
254         (sub):
255         (fill):
256         (blit):
257         (iter):
258         (map):
259         (iteri):
260         (mapi):
261         (to_list):
262         (list_length):
263         (of_list):
264         (fold_left):
265         (fold_right):
266         (maxson):
267         (trickle):
268         (bubble):
269         (trickleup):
270         (sort):
271         (merge):
272         (isortto):
273         (sortto):
274         (stable_sort):
275         (import_type):
276         (export_type):
277         (dims.n):
278         (dims.d.i):
279         (dims):
280         (map_file):
281         (create):
282         (of_array):
283         (slice_left):
284         (slice_right):
285         (slice_left_1):
286         (slice_right_1):
287         (slice_left_2):
288         (slice_right_2):
289         (array1_of_genarray):
290         (array2_of_genarray):
291         (array3_of_genarray):
292         (reshape_1):
293         (reshape_2):
294         (reshape_3):
295         (reshape):
296         (__):
297         (contents):
298         (to_bytes):
299         (nth):
300         (length):
301         (clear):
302         (reset):
303         (resize):
304         (add_substring):
305         (add_subbytes):
306         (add_string):
307         (add_bytes):
308         (add_buffer):
309         (add_channel):
310         (output_buffer):
311         (closing):
312         (advance_to_closing):
313         (advance_to_non_alpha):
314         (find_ident):
315         (add_substitute):
316         (make):
317         (to_string):
318         (of_string):
319         (sub_string):
320         (extend):
321         (blit_string):
322         (concat):
323         (cat):
324         (is_space):
325         (trim):
326         (escaped):
327         (uppercase):
328         (lowercase):
329         (apply1):
330         (capitalize):
331         (uncapitalize):
332         (index_rec):
333         (index):
334         (index_from):
335         (rindex_rec):
336         (rindex):
337         (rindex_from):
338         (contains_from):
339         (contains):
340         (rcontains_from):
341         (caml_array_sub):
342         (len):
343         (caml_array_concat):
344         (caml_make_vect):
345         (caml_array_blit):
346         (get if):
347         (caml_set_oo_id):
348         (get_id):
349         (caml_int32_float_of_bits):
350         (caml_int32_bits_of_float):
351         (caml_classify_float):
352         (caml_modf_float):
353         (caml_ldexp_float):
354         (caml_frexp_float):
355         (caml_copysign_float):
356         (caml_expm1_float):
357         (caml_hypot_float):
358         (caml_log10_float):
359         (caml_failwith):
360         (parse_digit):
361         (int_of_string_base):
362         (parse_sign_and_base):
363         (caml_int_of_string.aux):
364         (caml_int_of_string):
365         (caml_int64_of_string.aux):
366         (caml_int64_of_string):
367         (int_of_base):
368         (parse_format):
369         (finish_formatting):
370         (caml_format_int):
371         (caml_int64_format):
372         (caml_format_float):
373         (float_of_string):
374         (div):
375         (mod_):
376         (caml_bswap16):
377         (caml_int32_bswap):
378         (imul):
379         (neg_signed):
380         (not):
381         (eq):
382         (neg):
383         (lsl_):
384         (lsr_):
385         (asr_):
386         (is_zero):
387         (mul):
388         (swap):
389         (xor):
390         (or_):
391         (and_):
392         (ge):
393         (lt):
394         (gt):
395         (le):
396         (to_float):
397         (of_float):
398         (div_mod):
399         (compare):
400         (of_int32):
401         (to_int32):
402         (to_hex.aux):
403         (to_hex):
404         (discard_sign):
405         (float_of_bits):
406         (bits_of_float.to_nat):
407         (bits_of_float):
408         (get64):
409         (erase_rel):
410         (concat_fmtty):
411         (concat_fmt):
412         (create_char_set):
413         (add_in_char_set):
414         (rev_char_set):
415         (is_in_char_set):
416         (prec_of_prec_opt):
417         (param_format_of_ignored_format):
418         (buffer_check_size):
419         (buffer_add_char):
420         (buffer_add_string):
421         (buffer_contents):
422         (char_of_iconv):
423         (char_of_fconv):
424         (char_of_counter):
425         (print_char):
426         (set while.set var):
427         (set while.set else):
428         (set var):
429         (set else):
430         (set print_char):
431         (set if):
432         (bprint_padty):
433         (bprint_ignored_flag):
434         (bprint_pad_opt):
435         (bprint_padding):
436         (bprint_precision):
437         (bprint_iconv_flag):
438         (bprint_int_fmt):
439         (bprint_altint_fmt):
440         (bprint_fconv_flag):
441         (bprint_float_fmt):
442         (string_of_formatting_lit):
443         (string_of_formatting_gen):
444         (bprint_char_literal):
445         (bprint_string_literal):
446         (bprint_fmtty):
447         (int_of_custom_arity):
448         (bprint_fmt):
449         (string_of_fmt):
450         (symm):
451         (fmtty_rel_det):
452         (trans):
453         (fmtty_of_formatting_gen):
454         (fmtty_of_fmt):
455         (fmtty_of_custom):
456         (fmtty_of_padding_fmtty):
457         (fmtty_of_precision_fmtty):
458         (type_padding):
459         (type_padprec):
460         (type_ignored_param_one):
461         (type_format_gen):
462         (type_ignored_format_substitution):
463         (type_format):
464         (recast):
465         (fix_padding):
466         (fix_int_precision):
467         (string_to_caml_string):
468         (format_of_iconv):
469         (format_of_aconv):
470         (format_of_fconv):
471         (convert_int):
472         (convert_int32):
473         (convert_nativeint):
474         (convert_int64):
475         (else.is_valid):
476         (convert_float):
477         (format_caml_char):
478         (string_of_fmtty):
479         (else.switch.):
480         (else.switch.k.prime):
481         (else.switch.else.):
482         (else.switch.else.k.prime.1):
483         (make_printf):
484         (make_from_fmtty):
485         (make_invalid_arg):
486         (make_string_padding):
487         (make_int_padding_precision):
488         (make_custom):
489         (output_acc):
490         (bufput_acc):
491         (strput_acc):
492         (failwith_message.k):
493         (failwith_message):
494         (open_box_of_string.else.invalid_box):
495         (open_box_of_string.else.parse_spaces):
496         (open_box_of_string.else.parse_lword):
497         (open_box_of_string.else.parse_int):
498         (open_box_of_string):
499         (make_padding_fmt_ebb):
500         (make_precision_fmt_ebb):
501         (make_padprec_fmt_ebb):
502         (invalid_format_message):
503         (invalid_format_without):
504         (expected_character):
505         (compute_int_conv):
506         (incompatible_flag):
507         (parse_positive):
508         (parse_conv):
509         (parse_after_precision):
510         (else.parse_literal):
511         (parse_after_padding):
512         (parse_literal):
513         (parse_after_at):
514         (add_literal):
515         (parse_spaces):
516         (parse_integer):
517         (compute_float_conv):
518         (search_subformat_end):
519         (check_no_0):
520         (opt_of_pad):
521         (get_prec_opt):
522         (else.switch.case.99.char_format):
523         (else.switch.scan_format):
524         (parse_conversion):
525         (set_flag):
526         (parse_flags):
527         (is_int_base):
528         (counter_of_char):
529         (add_range):
530         (fail_single_percent):
531         (parse_char_set_after_char):
532         (parse_char_set_content):
533         (parse_char_set_start):
534         (parse_char_set):
535         (check_open_box):
536         (parse_tag):
537         (fmt_ebb_of_string):
538         (format_of_string_fmtty):
539         (format_of_string_format):
540         (caret):
541         (caml_ml_open_descriptor_in):
542         (caml_ml_open_descriptor_out):
543         (caml_ml_flush):
544         (node_std_output):
545         (caml_ml_output_char):
546         (caml_ml_input):
547         (caml_ml_input_char):
548         (caml_ml_out_channels_list):
549         (fail):
550         (caml_lex_array):
551         (caml_lex_engine):
552         (caml_lex_run_mem):
553         (caml_lex_run_tag):
554         (caml_new_lex_engine):
555         (caml_obj_dup):
556         (caml_obj_truncate):
557         (caml_lazy_make_forward):
558         (caml_update_dummy):
559         (caml_int_compare):
560         (caml_compare):
561         (caml_equal):
562         (caml_notequal):
563         (caml_greaterequal):
564         (caml_lessequal):
565         (else.aux):
566         (caml_get_public_method):
567         (caml_parse_engine):
568         (caml_set_parser_trace):
569         (js_string_of_char):
570         (caml_string_get):
571         (caml_create_string):
572         (caml_string_compare):
573         (caml_fill_string):
574         (caml_blit_string):
575         (caml_blit_bytes):
576         (bytes_of_string):
577         (bytes_to_string):
578         (caml_string_of_char_array):
579         (caml_is_printable):
580         (caml_string_get16):
581         (caml_string_get32):
582         (repeat):
583         (chr):
584         (app):
585         (js):
586         (curry_1):
587         (_1):
588         (js1):
589         (__1):
590         (curry_2):
591         (_2):
592         (js2):
593         (__2):
594         (curry_3):
595         (_3):
596         (js3):
597         (__3):
598         (curry_4):
599         (_4):
600         (js4):
601         (__4):
602         (curry_5):
603         (_5):
604         (js5):
605         (__5):
606         (curry_6):
607         (_6):
608         (js6):
609         (__6):
610         (curry_7):
611         (_7):
612         (js7):
613         (__7):
614         (curry_8):
615         (_8):
616         (js8):
617         (__8):
618         (stream):
619         (eos):
620         (skip):
621         (read):
622         (peek):
623         (string_of_byte):
624         (position):
625         (region):
626         (error):
627         (guard):
628         (get 1):
629         (get expect):
630         (get illegal):
631         (at):
632         (u32):
633         (u64):
634         (get require):
635         (vuN):
636         (get var):
637         (vsN):
638         (vu32):
639         (vs32):
640         (vs64):
641         (f32):
642         (f64):
643         (len32):
644         (string):
645         (opt):
646         (vec):
647         (sized):
648         (value_type):
649         (elem_type):
650         (stack_type):
651         (table_type):
652         (memory_type):
653         (mutability.get if):
654         (mutability):
655         (instr.get if):
656         (instr_block):
657         (const):
658         (id):
659         (section):
660         (type_section):
661         (import_kind.get if):
662         (import_section):
663         (func_section):
664         (table_section):
665         (memory_section):
666         (global):
667         (global_section):
668         (export_kind.get if):
669         (export_section):
670         (start_section):
671         (local):
672         (code):
673         (code_section):
674         (table_segment):
675         (elem_section):
676         (memory_segment):
677         (data_section):
678         (partial_arg.1):
679         (custom):
680         (custom_section):
681         (iterate):
682         (decode):
683         (patch):
684         (encode.u8):
685         (encode.u16):
686         (encode.u32):
687         (encode.vu64):
688         (encode.vs64):
689         (encode.vu32):
690         (encode.len):
691         (encode.bool):
692         (encode.string):
693         (encode.vec):
694         (encode.gap32):
695         (encode.patch_gap32):
696         (encode.value_type):
697         (encode.stack_type):
698         (encode.func_type):
699         (encode.limits):
700         (encode.table_type):
701         (encode.memory_type):
702         (encode.global_type):
703         (encode.memop):
704         (encode):
705         (encode.instr):
706         (encode.const):
707         (encode.section):
708         (encode.type_section):
709         (encode.import):
710         (encode.import_section):
711         (encode.func):
712         (encode.func_section):
713         (encode.table):
714         (encode.table_section):
715         (encode.memory):
716         (encode.memory_section):
717         (encode.global):
718         (encode.global_section):
719         (encode.export_kind):
720         (encode.export):
721         (encode.export_section):
722         (encode.start_section):
723         (encode.combine):
724         (encode.compress):
725         (encode.local):
726         (encode.code):
727         (encode.code_section):
728         (encode.segment):
729         (encode.table_segment):
730         (encode.elem_section):
731         (encode.memory_segment):
732         (encode.module_):
733         (Make.warn):
734         (Make.error):
735         (Make):
736         (print_nan_significand_digits):
737         (Make.of_bits):
738         (Make.to_bits):
739         (Make.is_nan):
740         (Make.canonicalize_nan):
741         (Make.determine_binary_nan):
742         (Make.determine_unary_nan):
743         (Make.binary):
744         (Make.unary):
745         (Make.add):
746         (Make.sub):
747         (Make.mul):
748         (Make.div):
749         (Make.sqrt):
750         (Make.ceil):
751         (Make.floor):
752         (Make.trunc):
753         (Make.nearest):
754         (Make.min):
755         (Make.max):
756         (Make.abs):
757         (Make.neg):
758         (Make.copysign):
759         (Make.eq):
760         (Make.ne):
761         (Make.lt):
762         (Make.gt):
763         (Make.le):
764         (Make.ge):
765         (Make.of_signless_string):
766         (Make.of_string):
767         (Make.to_string):
768         (add_queue):
769         (peek_queue):
770         (take_queue):
771         (pp_enqueue):
772         (pp_clear_queue):
773         (pp_output_string):
774         (break_new_line):
775         (break_same_line):
776         (pp_force_break_line):
777         (switch.add_tab):
778         (else.switch.find):
779         (format_pp_token):
780         (advance_left):
781         (enqueue_advance):
782         (enqueue_string_as):
783         (set_size):
784         (scan_push):
785         (pp_open_box_gen):
786         (pp_close_box):
787         (pp_open_tag):
788         (pp_close_tag):
789         (pp_set_print_tags):
790         (pp_set_mark_tags):
791         (pp_get_print_tags):
792         (pp_get_mark_tags):
793         (pp_set_tags):
794         (pp_get_formatter_tag_functions):
795         (pp_set_formatter_tag_functions):
796         (pp_rinit):
797         (pp_flush_queue):
798         (pp_print_as_size):
799         (pp_print_string):
800         (pp_print_int):
801         (pp_print_float):
802         (pp_print_bool):
803         (pp_open_hbox):
804         (pp_open_vbox):
805         (pp_open_hvbox):
806         (pp_open_hovbox):
807         (pp_open_box):
808         (pp_print_newline):
809         (pp_print_flush):
810         (pp_force_newline):
811         (pp_print_if_newline):
812         (pp_print_break):
813         (pp_print_space):
814         (pp_print_cut):
815         (pp_open_tbox):
816         (pp_close_tbox):
817         (pp_print_tbreak):
818         (pp_print_tab):
819         (pp_set_tab):
820         (pp_print_list):
821         (flush):
822         (pp_print_text):
823         (pp_set_max_boxes):
824         (pp_get_max_boxes):
825         (pp_over_max_boxes):
826         (pp_get_ellipsis_text):
827         (pp_limit):
828         (pp_set_max_indent):
829         (pp_get_max_indent):
830         (pp_set_margin):
831         (pp_get_margin):
832         (pp_set_formatter_out_functions):
833         (pp_get_formatter_out_functions):
834         (pp_set_formatter_output_functions):
835         (pp_get_formatter_output_functions):
836         (pp_set_all_formatter_output_functions):
837         (pp_get_all_formatter_output_functions):
838         (display_newline):
839         (display_blanks):
840         (state.16):
841         (state.17):
842         (state.18):
843         (state.19):
844         (pp_set_formatter_out_channel):
845         (default_pp_mark_open_tag):
846         (default_pp_mark_close_tag):
847         (default_pp_print_open_tag):
848         (default_pp_print_close_tag):
849         (pp_make_formatter):
850         (ppf.18):
851         (ppf.19):
852         (make_formatter):
853         (formatter_of_out_channel):
854         (formatter_of_buffer):
855         (flush_str_formatter):
856         (flush_buf_formatter):
857         (open_hbox):
858         (open_vbox):
859         (open_hvbox):
860         (open_hovbox):
861         (open_box):
862         (close_box):
863         (open_tag):
864         (close_tag):
865         (print_as):
866         (print_string):
867         (print_int):
868         (print_float):
869         (print_bool):
870         (print_cut):
871         (print_space):
872         (force_newline):
873         (print_flush):
874         (print_newline):
875         (print_if_newline):
876         (open_tbox):
877         (close_tbox):
878         (print_tbreak):
879         (set_tab):
880         (print_tab):
881         (set_margin):
882         (get_margin):
883         (set_max_indent):
884         (get_max_indent):
885         (set_max_boxes):
886         (get_max_boxes):
887         (over_max_boxes):
888         (set_ellipsis_text):
889         (get_ellipsis_text):
890         (set_formatter_out_channel):
891         (set_formatter_out_functions):
892         (get_formatter_out_functions):
893         (set_formatter_output_functions):
894         (get_formatter_output_functions):
895         (set_all_formatter_output_functions):
896         (get_all_formatter_output_functions):
897         (set_formatter_tag_functions):
898         (get_formatter_tag_functions):
899         (set_print_tags):
900         (get_print_tags):
901         (set_mark_tags):
902         (get_mark_tags):
903         (set_tags):
904         (compute_tag):
905         (output_formatting_lit):
906         (kfprintf):
907         (ikfprintf):
908         (fprintf):
909         (ifprintf):
910         (printf):
911         (eprintf):
912         (k.prime):
913         (ksprintf):
914         (sprintf):
915         (asprintf.k.prime):
916         (asprintf):
917         (k):
918         (bprintf):
919         (succ):
920         (pred):
921         (abs):
922         (lognot):
923         (Make.cmp_u):
924         (Make.divrem_u):
925         (Make.div_s):
926         (Make.div_u):
927         (Make.rem_s):
928         (Make.rem_u):
929         (Make.shift):
930         (Make.shl):
931         (Make.shr_s):
932         (Make.shr_u):
933         (Make.clamp_rotate_count):
934         (Make.rotl):
935         (Make.rotr):
936         (Make.loop):
937         (Make.clz):
938         (Make.ctz):
939         (Make.popcnt):
940         (Make.eqz):
941         (Make.lt_u):
942         (Make.le_u):
943         (Make.gt_u):
944         (Make.ge_u):
945         (Make.of_int_u):
946         (Make.to_string_u):
947         (Make.require):
948         (Make.dec_digit):
949         (Make.hex_digit):
950         (Make.parse_int):
951         (Make.of_string_s):
952         (Make.of_string_u):
953         (convert_pos):
954         (error_nest):
955         (text):
956         (intop):
957         (floatop):
958         (numop):
959         (memsz):
960         (ext):
961         (token.else.switch):
962         (token.else.switch.):
963         (token):
964         (__ocaml_lex_comment_rec):
965         (engine):
966         (new_engine):
967         (from_function):
968         (from_channel):
969         (from_string):
970         (lexeme):
971         (sub_lexeme):
972         (sub_lexeme_opt):
973         (sub_lexeme_char):
974         (sub_lexeme_char_opt):
975         (lexeme_char):
976         (lexeme_start):
977         (lexeme_end):
978         (lexeme_start_p):
979         (lexeme_end_p):
980         (new_line):
981         (flush_input):
982         (take):
983         (drop):
984         (last):
985         (split_last):
986         (index_of):
987         (index_of_int32):
988         (dim):
989         (set 1):
990         (get 2):
991         (log2):
992         (is_power_of_two):
993         (loop):
994         (breakup):
995         (hd):
996         (tl):
997         (rev_append):
998         (rev):
999         (flatten):
1000         (rev_map):
1001         (map2):
1002         (rev_map2):
1003         (iter2):
1004         (fold_left2):
1005         (fold_right2):
1006         (for_all):
1007         (exists):
1008         (for_all2):
1009         (exists2):
1010         (mem):
1011         (memq):
1012         (assoc):
1013         (assq):
1014         (mem_assoc):
1015         (mem_assq):
1016         (remove_assoc):
1017         (remove_assq):
1018         (find):
1019         (find_all):
1020         (partition):
1021         (split):
1022         (combine):
1023         (chop):
1024         (rev_sort):
1025         (sort_uniq):
1026         (Make.height):
1027         (Make.create):
1028         (Make.singleton):
1029         (Make.bal):
1030         (Make.is_empty):
1031         (Make.find):
1032         (Make.mem):
1033         (Make.min_binding):
1034         (Make.max_binding):
1035         (Make.remove_min_binding):
1036         (Make.remove):
1037         (Make.iter):
1038         (Make.map):
1039         (Make.mapi):
1040         (Make.fold):
1041         (Make.for_all):
1042         (Make.exists):
1043         (Make.add_min_binding):
1044         (Make.add_max_binding):
1045         (Make.join):
1046         (Make.concat):
1047         (Make.concat_or_join):
1048         (Make.split):
1049         (Make.merge):
1050         (Make.filter):
1051         (Make.partition):
1052         (Make.cons_enum):
1053         (Make.compare):
1054         (Make.equal):
1055         (Make.cardinal):
1056         (Make.bindings_aux):
1057         (Make.bindings):
1058         (double_field):
1059         (set_double_field):
1060         (marshal):
1061         (unmarshal):
1062         (extension_slot):
1063         (extension_name):
1064         (extension_id):
1065         (i32_const):
1066         (i64_const):
1067         (f32_const):
1068         (f64_const):
1069         (block):
1070         (br):
1071         (br_if):
1072         (br_table):
1073         (if_):
1074         (call):
1075         (call_indirect):
1076         (get_local):
1077         (set_local):
1078         (tee_local):
1079         (get_global):
1080         (set_global):
1081         (i32_load):
1082         (i64_load):
1083         (f32_load):
1084         (f64_load):
1085         (i32_load8_s):
1086         (i32_load8_u):
1087         (i32_load16_s):
1088         (i32_load16_u):
1089         (i64_load8_s):
1090         (i64_load8_u):
1091         (i64_load16_s):
1092         (i64_load16_u):
1093         (i64_load32_s):
1094         (i64_load32_u):
1095         (i32_store):
1096         (i64_store):
1097         (f32_store):
1098         (f64_store):
1099         (i32_store8):
1100         (i32_store16):
1101         (i64_store8):
1102         (i64_store16):
1103         (i64_store32):
1104         (parse):
1105         (string_to):
1106         (string_to_script):
1107         (string_to_module):
1108         (parse_error):
1109         (position_to_pos):
1110         (positions_to_region):
1111         (ati):
1112         (nat):
1113         (nat32):
1114         (empty_context):
1115         (enter_func):
1116         (type_):
1117         (lookup):
1118         (label):
1119         (anon_type):
1120         (bind):
1121         (bind_func):
1122         (bind_local):
1123         (bind_global):
1124         (bind_table):
1125         (bind_memory):
1126         (anon):
1127         (anon_func):
1128         (anon_locals):
1129         (anon_global):
1130         (anon_table):
1131         (anon_memory):
1132         (anon_label):
1133         (explicit_sig):
1134         (inline_type):
1135         (yyact):
1136         (script1):
1137         (module1):
1138         (grow_stacks):
1139         (clear_parser):
1140         (current_lookahead_fun):
1141         (catch.else.current_lookahead_fun.0):
1142         (yyparse):
1143         (peek_val):
1144         (symbol_start_pos):
1145         (symbol_end_pos):
1146         (rhs_start_pos):
1147         (rhs_end_pos):
1148         (symbol_start):
1149         (symbol_end):
1150         (rhs_start):
1151         (rhs_end):
1152         (is_current_lookahead):
1153         (failwith):
1154         (invalid_arg):
1155         (min):
1156         (max):
1157         (lnot):
1158         (char_of_int):
1159         (string_of_bool):
1160         (bool_of_string):
1161         (string_of_int):
1162         (valid_float_lexem):
1163         (string_of_float):
1164         (open_out_gen):
1165         (open_out):
1166         (open_out_bin):
1167         (flush_all):
1168         (output_bytes):
1169         (output_string):
1170         (output):
1171         (output_substring):
1172         (output_value):
1173         (close_out):
1174         (close_out_noerr):
1175         (open_in_gen):
1176         (open_in):
1177         (open_in_bin):
1178         (input):
1179         (else.r):
1180         (unsafe_really_input):
1181         (really_input):
1182         (really_input_string):
1183         (input_line.build_result):
1184         (input_line.n):
1185         (input_line.scan):
1186         (input_line):
1187         (close_in_noerr):
1188         (print_bytes):
1189         (print_endline):
1190         (prerr_char):
1191         (prerr_string):
1192         (prerr_bytes):
1193         (prerr_int):
1194         (prerr_float):
1195         (prerr_endline):
1196         (prerr_newline):
1197         (read_line):
1198         (read_int):
1199         (read_float):
1200         (string_of_format):
1201         (at_exit.exit_function.0):
1202         (at_exit):
1203         (do_at_exit):
1204         (exit):
1205         (output_binary_int):
1206         (seek_out):
1207         (pos_out):
1208         (out_channel_length):
1209         (set_binary_mode_out):
1210         (input_binary_int):
1211         (input_value):
1212         (seek_in):
1213         (pos_in):
1214         (in_channel_length):
1215         (close_in):
1216         (set_binary_mode_in):
1217         (LargeFile_000):
1218         (LargeFile_001):
1219         (LargeFile_002):
1220         (LargeFile_003):
1221         (LargeFile_004):
1222         (LargeFile_005):
1223         (kbprintf):
1224         (plus):
1225         (pp):
1226         (print):
1227         (string_of_pos):
1228         (string_of_region):
1229         (escaped.needs_escape):
1230         (set_signal):
1231         (catch_break):
1232         (size):
1233         (string_of_value_type):
1234         (string_of_value_types):
1235         (string_of_elem_type):
1236         (string_of_limits):
1237         (string_of_table_type):
1238         (string_of_global_type):
1239         (string_of_stack_type):
1240         (string_of_func_type):
1241         (type_of):
1242         (default_value):
1243         (value_of_bool):
1244         (string_of_values):
1245         (to_value):
1246         (of_value):
1247         (g):
1248         (binary):
1249         (bytes):
1250         * wasm/spec-tests/address.wast.js:
1251         (register): Deleted.
1252         (module): Deleted.
1253         (instance): Deleted.
1254         (assert_malformed): Deleted.
1255         (assert_invalid): Deleted.
1256         (assert_soft_invalid): Deleted.
1257         (assert_unlinkable): Deleted.
1258         (assert_uninstantiable): Deleted.
1259         (assert_trap): Deleted.
1260         (assert_return): Deleted.
1261         (assert_return_nan): Deleted.
1262         * wasm/spec-tests/binary.wast.js:
1263         (register): Deleted.
1264         (module): Deleted.
1265         (instance): Deleted.
1266         (assert_malformed): Deleted.
1267         (assert_invalid): Deleted.
1268         (assert_soft_invalid): Deleted.
1269         (assert_unlinkable): Deleted.
1270         (assert_uninstantiable): Deleted.
1271         (assert_trap): Deleted.
1272         (assert_return): Deleted.
1273         (assert_return_nan): Deleted.
1274         * wasm/spec-tests/block.wast.js:
1275         (register): Deleted.
1276         (module): Deleted.
1277         (instance): Deleted.
1278         (assert_malformed): Deleted.
1279         (assert_invalid): Deleted.
1280         (assert_soft_invalid): Deleted.
1281         (assert_unlinkable): Deleted.
1282         (assert_uninstantiable): Deleted.
1283         (assert_trap): Deleted.
1284         (assert_return): Deleted.
1285         (assert_return_nan): Deleted.
1286         * wasm/spec-tests/br.wast.js:
1287         (register): Deleted.
1288         (module): Deleted.
1289         (instance): Deleted.
1290         (assert_malformed): Deleted.
1291         (assert_invalid): Deleted.
1292         (assert_soft_invalid): Deleted.
1293         (assert_unlinkable): Deleted.
1294         (assert_uninstantiable): Deleted.
1295         (assert_trap): Deleted.
1296         (assert_return): Deleted.
1297         (assert_return_nan): Deleted.
1298         * wasm/spec-tests/br_if.wast.js:
1299         (register): Deleted.
1300         (module): Deleted.
1301         (instance): Deleted.
1302         (assert_malformed): Deleted.
1303         (assert_invalid): Deleted.
1304         (assert_soft_invalid): Deleted.
1305         (assert_unlinkable): Deleted.
1306         (assert_uninstantiable): Deleted.
1307         (assert_trap): Deleted.
1308         (assert_return): Deleted.
1309         (assert_return_nan): Deleted.
1310         * wasm/spec-tests/br_table.wast.js:
1311         (register): Deleted.
1312         (module): Deleted.
1313         (instance): Deleted.
1314         (assert_malformed): Deleted.
1315         (assert_invalid): Deleted.
1316         (assert_soft_invalid): Deleted.
1317         (assert_unlinkable): Deleted.
1318         (assert_uninstantiable): Deleted.
1319         (assert_trap): Deleted.
1320         (assert_return): Deleted.
1321         (assert_return_nan): Deleted.
1322         * wasm/spec-tests/break-drop.wast.js:
1323         (register): Deleted.
1324         (module): Deleted.
1325         (instance): Deleted.
1326         (assert_malformed): Deleted.
1327         (assert_invalid): Deleted.
1328         (assert_soft_invalid): Deleted.
1329         (assert_unlinkable): Deleted.
1330         (assert_uninstantiable): Deleted.
1331         (assert_trap): Deleted.
1332         (assert_return): Deleted.
1333         (assert_return_nan): Deleted.
1334         * wasm/spec-tests/call.wast.js:
1335         (register): Deleted.
1336         (module): Deleted.
1337         (instance): Deleted.
1338         (assert_malformed): Deleted.
1339         (assert_invalid): Deleted.
1340         (assert_soft_invalid): Deleted.
1341         (assert_unlinkable): Deleted.
1342         (assert_uninstantiable): Deleted.
1343         (assert_trap): Deleted.
1344         (assert_return): Deleted.
1345         (assert_return_nan): Deleted.
1346         * wasm/spec-tests/call_indirect.wast.js:
1347         (register): Deleted.
1348         (module): Deleted.
1349         (instance): Deleted.
1350         (assert_malformed): Deleted.
1351         (assert_invalid): Deleted.
1352         (assert_soft_invalid): Deleted.
1353         (assert_unlinkable): Deleted.
1354         (assert_uninstantiable): Deleted.
1355         (assert_trap): Deleted.
1356         (assert_return): Deleted.
1357         (assert_return_nan): Deleted.
1358         * wasm/spec-tests/comments.wast.js:
1359         (register): Deleted.
1360         (module): Deleted.
1361         (instance): Deleted.
1362         (assert_malformed): Deleted.
1363         (assert_invalid): Deleted.
1364         (assert_soft_invalid): Deleted.
1365         (assert_unlinkable): Deleted.
1366         (assert_uninstantiable): Deleted.
1367         (assert_trap): Deleted.
1368         (assert_return): Deleted.
1369         (assert_return_nan): Deleted.
1370         * wasm/spec-tests/conversions.wast.js:
1371         (register): Deleted.
1372         (module): Deleted.
1373         (instance): Deleted.
1374         (assert_malformed): Deleted.
1375         (assert_invalid): Deleted.
1376         (assert_soft_invalid): Deleted.
1377         (assert_unlinkable): Deleted.
1378         (assert_uninstantiable): Deleted.
1379         (assert_trap): Deleted.
1380         (assert_return): Deleted.
1381         (assert_return_nan): Deleted.
1382         * wasm/spec-tests/custom_section.wast.js:
1383         (register): Deleted.
1384         (module): Deleted.
1385         (instance): Deleted.
1386         (assert_malformed): Deleted.
1387         (assert_invalid): Deleted.
1388         (assert_soft_invalid): Deleted.
1389         (assert_unlinkable): Deleted.
1390         (assert_uninstantiable): Deleted.
1391         (assert_trap): Deleted.
1392         (assert_return): Deleted.
1393         (assert_return_nan): Deleted.
1394         * wasm/spec-tests/endianness.wast.js:
1395         (register): Deleted.
1396         (module): Deleted.
1397         (instance): Deleted.
1398         (assert_malformed): Deleted.
1399         (assert_invalid): Deleted.
1400         (assert_soft_invalid): Deleted.
1401         (assert_unlinkable): Deleted.
1402         (assert_uninstantiable): Deleted.
1403         (assert_trap): Deleted.
1404         (assert_return): Deleted.
1405         (assert_return_nan): Deleted.
1406         * wasm/spec-tests/exports.wast.js:
1407         (register): Deleted.
1408         (module): Deleted.
1409         (instance): Deleted.
1410         (assert_malformed): Deleted.
1411         (assert_invalid): Deleted.
1412         (assert_soft_invalid): Deleted.
1413         (assert_unlinkable): Deleted.
1414         (assert_uninstantiable): Deleted.
1415         (assert_trap): Deleted.
1416         (assert_return): Deleted.
1417         (assert_return_nan): Deleted.
1418         * wasm/spec-tests/f32.wast.js: Removed.
1419         * wasm/spec-tests/f32_cmp.wast.js:
1420         (register): Deleted.
1421         (module): Deleted.
1422         (instance): Deleted.
1423         (assert_malformed): Deleted.
1424         (assert_invalid): Deleted.
1425         (assert_soft_invalid): Deleted.
1426         (assert_unlinkable): Deleted.
1427         (assert_uninstantiable): Deleted.
1428         (assert_trap): Deleted.
1429         (assert_return): Deleted.
1430         (assert_return_nan): Deleted.
1431         * wasm/spec-tests/f64.wast.js: Removed.
1432         * wasm/spec-tests/f64_cmp.wast.js:
1433         (register): Deleted.
1434         (module): Deleted.
1435         (instance): Deleted.
1436         (assert_malformed): Deleted.
1437         (assert_invalid): Deleted.
1438         (assert_soft_invalid): Deleted.
1439         (assert_unlinkable): Deleted.
1440         (assert_uninstantiable): Deleted.
1441         (assert_trap): Deleted.
1442         (assert_return): Deleted.
1443         (assert_return_nan): Deleted.
1444         * wasm/spec-tests/fac.wast.js:
1445         (register): Deleted.
1446         (module): Deleted.
1447         (instance): Deleted.
1448         (assert_malformed): Deleted.
1449         (assert_invalid): Deleted.
1450         (assert_soft_invalid): Deleted.
1451         (assert_unlinkable): Deleted.
1452         (assert_uninstantiable): Deleted.
1453         (assert_trap): Deleted.
1454         (assert_return): Deleted.
1455         (assert_return_nan): Deleted.
1456         * wasm/spec-tests/float_exprs.wast.js: Removed.
1457         * wasm/spec-tests/float_literals.wast.js:
1458         (register): Deleted.
1459         (module): Deleted.
1460         (instance): Deleted.
1461         (assert_malformed): Deleted.
1462         (assert_invalid): Deleted.
1463         (assert_soft_invalid): Deleted.
1464         (assert_unlinkable): Deleted.
1465         (assert_uninstantiable): Deleted.
1466         (assert_trap): Deleted.
1467         (assert_return): Deleted.
1468         (assert_return_nan): Deleted.
1469         * wasm/spec-tests/float_memory.wast.js:
1470         (register): Deleted.
1471         (module): Deleted.
1472         (instance): Deleted.
1473         (assert_malformed): Deleted.
1474         (assert_invalid): Deleted.
1475         (assert_soft_invalid): Deleted.
1476         (assert_unlinkable): Deleted.
1477         (assert_uninstantiable): Deleted.
1478         (assert_trap): Deleted.
1479         (assert_return): Deleted.
1480         (assert_return_nan): Deleted.
1481         * wasm/spec-tests/float_misc.wast.js: Removed.
1482         * wasm/spec-tests/forward.wast.js:
1483         (register): Deleted.
1484         (module): Deleted.
1485         (instance): Deleted.
1486         (assert_malformed): Deleted.
1487         (assert_invalid): Deleted.
1488         (assert_soft_invalid): Deleted.
1489         (assert_unlinkable): Deleted.
1490         (assert_uninstantiable): Deleted.
1491         (assert_trap): Deleted.
1492         (assert_return): Deleted.
1493         (assert_return_nan): Deleted.
1494         * wasm/spec-tests/func.wast.js:
1495         (register): Deleted.
1496         (module): Deleted.
1497         (instance): Deleted.
1498         (assert_malformed): Deleted.
1499         (assert_invalid): Deleted.
1500         (assert_soft_invalid): Deleted.
1501         (assert_unlinkable): Deleted.
1502         (assert_uninstantiable): Deleted.
1503         (assert_trap): Deleted.
1504         (assert_return): Deleted.
1505         (assert_return_nan): Deleted.
1506         * wasm/spec-tests/func_ptrs.wast.js:
1507         (register): Deleted.
1508         (module): Deleted.
1509         (instance): Deleted.
1510         (assert_malformed): Deleted.
1511         (assert_invalid): Deleted.
1512         (assert_soft_invalid): Deleted.
1513         (assert_unlinkable): Deleted.
1514         (assert_uninstantiable): Deleted.
1515         (assert_trap): Deleted.
1516         (assert_return): Deleted.
1517         (assert_return_nan): Deleted.
1518         * wasm/spec-tests/get_local.wast.js:
1519         (register): Deleted.
1520         (module): Deleted.
1521         (instance): Deleted.
1522         (assert_malformed): Deleted.
1523         (assert_invalid): Deleted.
1524         (assert_soft_invalid): Deleted.
1525         (assert_unlinkable): Deleted.
1526         (assert_uninstantiable): Deleted.
1527         (assert_trap): Deleted.
1528         (assert_return): Deleted.
1529         (assert_return_nan): Deleted.
1530         * wasm/spec-tests/globals.wast.js:
1531         (register): Deleted.
1532         (module): Deleted.
1533         (instance): Deleted.
1534         (assert_malformed): Deleted.
1535         (assert_invalid): Deleted.
1536         (assert_soft_invalid): Deleted.
1537         (assert_unlinkable): Deleted.
1538         (assert_uninstantiable): Deleted.
1539         (assert_trap): Deleted.
1540         (assert_return): Deleted.
1541         (assert_return_nan): Deleted.
1542         * wasm/spec-tests/i32.wast.js:
1543         (register): Deleted.
1544         (module): Deleted.
1545         (instance): Deleted.
1546         (assert_malformed): Deleted.
1547         (assert_invalid): Deleted.
1548         (assert_soft_invalid): Deleted.
1549         (assert_unlinkable): Deleted.
1550         (assert_uninstantiable): Deleted.
1551         (assert_trap): Deleted.
1552         (assert_return): Deleted.
1553         (assert_return_nan): Deleted.
1554         * wasm/spec-tests/i64.wast.js:
1555         (register): Deleted.
1556         (module): Deleted.
1557         (instance): Deleted.
1558         (assert_malformed): Deleted.
1559         (assert_invalid): Deleted.
1560         (assert_soft_invalid): Deleted.
1561         (assert_unlinkable): Deleted.
1562         (assert_uninstantiable): Deleted.
1563         (assert_trap): Deleted.
1564         (assert_return): Deleted.
1565         (assert_return_nan): Deleted.
1566         * wasm/spec-tests/if.wast.js: Added.
1567         * wasm/spec-tests/imports.wast.js:
1568         (register): Deleted.
1569         (module): Deleted.
1570         (instance): Deleted.
1571         (assert_malformed): Deleted.
1572         (assert_invalid): Deleted.
1573         (assert_soft_invalid): Deleted.
1574         (assert_unlinkable): Deleted.
1575         (assert_uninstantiable): Deleted.
1576         (assert_trap): Deleted.
1577         (assert_return): Deleted.
1578         (assert_return_nan): Deleted.
1579         * wasm/spec-tests/int_exprs.wast.js:
1580         (register): Deleted.
1581         (module): Deleted.
1582         (instance): Deleted.
1583         (assert_malformed): Deleted.
1584         (assert_invalid): Deleted.
1585         (assert_soft_invalid): Deleted.
1586         (assert_unlinkable): Deleted.
1587         (assert_uninstantiable): Deleted.
1588         (assert_trap): Deleted.
1589         (assert_return): Deleted.
1590         (assert_return_nan): Deleted.
1591         * wasm/spec-tests/int_literals.wast.js:
1592         (register): Deleted.
1593         (module): Deleted.
1594         (instance): Deleted.
1595         (assert_malformed): Deleted.
1596         (assert_invalid): Deleted.
1597         (assert_soft_invalid): Deleted.
1598         (assert_unlinkable): Deleted.
1599         (assert_uninstantiable): Deleted.
1600         (assert_trap): Deleted.
1601         (assert_return): Deleted.
1602         (assert_return_nan): Deleted.
1603         * wasm/spec-tests/jsapi.js: Added.
1604         (testJSAPI.get test):
1605         (testJSAPI.test):
1606         (testJSAPI.set test):
1607         (testJSAPI.assertCompileError):
1608         (testJSAPI.assertCompileSuccess):
1609         (testJSAPI):
1610         * wasm/spec-tests/labels.wast.js: Added.
1611         * wasm/spec-tests/left-to-right.wast.js:
1612         (register): Deleted.
1613         (module): Deleted.
1614         (instance): Deleted.
1615         (assert_malformed): Deleted.
1616         (assert_invalid): Deleted.
1617         (assert_soft_invalid): Deleted.
1618         (assert_unlinkable): Deleted.
1619         (assert_uninstantiable): Deleted.
1620         (assert_trap): Deleted.
1621         (assert_return): Deleted.
1622         (assert_return_nan): Deleted.
1623         * wasm/spec-tests/linking.wast.js:
1624         (register): Deleted.
1625         (module): Deleted.
1626         (instance): Deleted.
1627         (assert_malformed): Deleted.
1628         (assert_invalid): Deleted.
1629         (assert_soft_invalid): Deleted.
1630         (assert_unlinkable): Deleted.
1631         (assert_uninstantiable): Deleted.
1632         (assert_trap): Deleted.
1633         (assert_return): Deleted.
1634         (assert_return_nan): Deleted.
1635         * wasm/spec-tests/loop.wast.js:
1636         (register): Deleted.
1637         (module): Deleted.
1638         (instance): Deleted.
1639         (assert_malformed): Deleted.
1640         (assert_invalid): Deleted.
1641         (assert_soft_invalid): Deleted.
1642         (assert_unlinkable): Deleted.
1643         (assert_uninstantiable): Deleted.
1644         (assert_trap): Deleted.
1645         (assert_return): Deleted.
1646         (assert_return_nan): Deleted.
1647         * wasm/spec-tests/memory.wast.js:
1648         (register): Deleted.
1649         (module): Deleted.
1650         (instance): Deleted.
1651         (assert_malformed): Deleted.
1652         (assert_invalid): Deleted.
1653         (assert_soft_invalid): Deleted.
1654         (assert_unlinkable): Deleted.
1655         (assert_uninstantiable): Deleted.
1656         (assert_trap): Deleted.
1657         (assert_return): Deleted.
1658         (assert_return_nan): Deleted.
1659         * wasm/spec-tests/memory_redundancy.wast.js:
1660         (register): Deleted.
1661         (module): Deleted.
1662         (instance): Deleted.
1663         (assert_malformed): Deleted.
1664         (assert_invalid): Deleted.
1665         (assert_soft_invalid): Deleted.
1666         (assert_unlinkable): Deleted.
1667         (assert_uninstantiable): Deleted.
1668         (assert_trap): Deleted.
1669         (assert_return): Deleted.
1670         (assert_return_nan): Deleted.
1671         * wasm/spec-tests/memory_trap.wast.js: Removed.
1672         * wasm/spec-tests/names.wast.js:
1673         (register): Deleted.
1674         (module): Deleted.
1675         (instance): Deleted.
1676         (assert_malformed): Deleted.
1677         (assert_invalid): Deleted.
1678         (assert_soft_invalid): Deleted.
1679         (assert_unlinkable): Deleted.
1680         (assert_uninstantiable): Deleted.
1681         (assert_trap): Deleted.
1682         (assert_return): Deleted.
1683         (assert_return_nan): Deleted.
1684         * wasm/spec-tests/nop.wast.js:
1685         (register): Deleted.
1686         (module): Deleted.
1687         (instance): Deleted.
1688         (assert_malformed): Deleted.
1689         (assert_invalid): Deleted.
1690         (assert_soft_invalid): Deleted.
1691         (assert_unlinkable): Deleted.
1692         (assert_uninstantiable): Deleted.
1693         (assert_trap): Deleted.
1694         (assert_return): Deleted.
1695         (assert_return_nan): Deleted.
1696         * wasm/spec-tests/resizing.wast.js:
1697         (register): Deleted.
1698         (module): Deleted.
1699         (instance): Deleted.
1700         (assert_malformed): Deleted.
1701         (assert_invalid): Deleted.
1702         (assert_soft_invalid): Deleted.
1703         (assert_unlinkable): Deleted.
1704         (assert_uninstantiable): Deleted.
1705         (assert_trap): Deleted.
1706         (assert_return): Deleted.
1707         (assert_return_nan): Deleted.
1708         * wasm/spec-tests/return.wast.js:
1709         (register): Deleted.
1710         (module): Deleted.
1711         (instance): Deleted.
1712         (assert_malformed): Deleted.
1713         (assert_invalid): Deleted.
1714         (assert_soft_invalid): Deleted.
1715         (assert_unlinkable): Deleted.
1716         (assert_uninstantiable): Deleted.
1717         (assert_trap): Deleted.
1718         (assert_return): Deleted.
1719         (assert_return_nan): Deleted.
1720         * wasm/spec-tests/select.wast.js:
1721         (register): Deleted.
1722         (module): Deleted.
1723         (instance): Deleted.
1724         (assert_malformed): Deleted.
1725         (assert_invalid): Deleted.
1726         (assert_soft_invalid): Deleted.
1727         (assert_unlinkable): Deleted.
1728         (assert_uninstantiable): Deleted.
1729         (assert_trap): Deleted.
1730         (assert_return): Deleted.
1731         (assert_return_nan): Deleted.
1732         * wasm/spec-tests/set_local.wast.js:
1733         (register): Deleted.
1734         (module): Deleted.
1735         (instance): Deleted.
1736         (assert_malformed): Deleted.
1737         (assert_invalid): Deleted.
1738         (assert_soft_invalid): Deleted.
1739         (assert_unlinkable): Deleted.
1740         (assert_uninstantiable): Deleted.
1741         (assert_trap): Deleted.
1742         (assert_return): Deleted.
1743         (assert_return_nan): Deleted.
1744         * wasm/spec-tests/skip-stack-guard-page.wast.js:
1745         (register): Deleted.
1746         (module): Deleted.
1747         (instance): Deleted.
1748         (assert_malformed): Deleted.
1749         (assert_invalid): Deleted.
1750         (assert_soft_invalid): Deleted.
1751         (assert_unlinkable): Deleted.
1752         (assert_uninstantiable): Deleted.
1753         (assert_trap): Deleted.
1754         (assert_return): Deleted.
1755         (assert_return_nan): Deleted.
1756         * wasm/spec-tests/stack.wast.js:
1757         (register): Deleted.
1758         (module): Deleted.
1759         (instance): Deleted.
1760         (assert_malformed): Deleted.
1761         (assert_invalid): Deleted.
1762         (assert_soft_invalid): Deleted.
1763         (assert_unlinkable): Deleted.
1764         (assert_uninstantiable): Deleted.
1765         (assert_trap): Deleted.
1766         (assert_return): Deleted.
1767         (assert_return_nan): Deleted.
1768         * wasm/spec-tests/start.wast.js:
1769         (register): Deleted.
1770         (module): Deleted.
1771         (instance): Deleted.
1772         (assert_malformed): Deleted.
1773         (assert_invalid): Deleted.
1774         (assert_soft_invalid): Deleted.
1775         (assert_unlinkable): Deleted.
1776         (assert_uninstantiable): Deleted.
1777         (assert_trap): Deleted.
1778         (assert_return): Deleted.
1779         (assert_return_nan): Deleted.
1780         * wasm/spec-tests/store_retval.wast.js:
1781         (register): Deleted.
1782         (module): Deleted.
1783         (instance): Deleted.
1784         (assert_malformed): Deleted.
1785         (assert_invalid): Deleted.
1786         (assert_soft_invalid): Deleted.
1787         (assert_unlinkable): Deleted.
1788         (assert_uninstantiable): Deleted.
1789         (assert_trap): Deleted.
1790         (assert_return): Deleted.
1791         (assert_return_nan): Deleted.
1792         * wasm/spec-tests/switch.wast.js:
1793         (register): Deleted.
1794         (module): Deleted.
1795         (instance): Deleted.
1796         (assert_malformed): Deleted.
1797         (assert_invalid): Deleted.
1798         (assert_soft_invalid): Deleted.
1799         (assert_unlinkable): Deleted.
1800         (assert_uninstantiable): Deleted.
1801         (assert_trap): Deleted.
1802         (assert_return): Deleted.
1803         (assert_return_nan): Deleted.
1804         * wasm/spec-tests/tee_local.wast.js:
1805         (register): Deleted.
1806         (module): Deleted.
1807         (instance): Deleted.
1808         (assert_malformed): Deleted.
1809         (assert_invalid): Deleted.
1810         (assert_soft_invalid): Deleted.
1811         (assert_unlinkable): Deleted.
1812         (assert_uninstantiable): Deleted.
1813         (assert_trap): Deleted.
1814         (assert_return): Deleted.
1815         (assert_return_nan): Deleted.
1816         * wasm/spec-tests/traps.wast.js:
1817         (register): Deleted.
1818         (module): Deleted.
1819         (instance): Deleted.
1820         (assert_malformed): Deleted.
1821         (assert_invalid): Deleted.
1822         (assert_soft_invalid): Deleted.
1823         (assert_unlinkable): Deleted.
1824         (assert_uninstantiable): Deleted.
1825         (assert_trap): Deleted.
1826         (assert_return): Deleted.
1827         (assert_return_nan): Deleted.
1828         * wasm/spec-tests/typecheck.wast.js:
1829         (register): Deleted.
1830         (module): Deleted.
1831         (instance): Deleted.
1832         (assert_malformed): Deleted.
1833         (assert_invalid): Deleted.
1834         (assert_soft_invalid): Deleted.
1835         (assert_unlinkable): Deleted.
1836         (assert_uninstantiable): Deleted.
1837         (assert_trap): Deleted.
1838         (assert_return): Deleted.
1839         (assert_return_nan): Deleted.
1840         * wasm/spec-tests/unreachable.wast.js:
1841         (register): Deleted.
1842         (module): Deleted.
1843         (instance): Deleted.
1844         (assert_malformed): Deleted.
1845         (assert_invalid): Deleted.
1846         (assert_soft_invalid): Deleted.
1847         (assert_unlinkable): Deleted.
1848         (assert_uninstantiable): Deleted.
1849         (assert_trap): Deleted.
1850         (assert_return): Deleted.
1851         (assert_return_nan): Deleted.
1852         * wasm/spec-tests/unreached-invalid.wast.js: Added.
1853         * wasm/spec-tests/unwind.wast.js:
1854         (register): Deleted.
1855         (module): Deleted.
1856         (instance): Deleted.
1857         (assert_malformed): Deleted.
1858         (assert_invalid): Deleted.
1859         (assert_soft_invalid): Deleted.
1860         (assert_unlinkable): Deleted.
1861         (assert_uninstantiable): Deleted.
1862         (assert_trap): Deleted.
1863         (assert_return): Deleted.
1864         (assert_return_nan): Deleted.
1865
1866 2017-04-01  Oleksandr Skachkov  <gskachkov@gmail.com>
1867
1868         Object with numerical keys with gaps gets filled by NaN values
1869         https://bugs.webkit.org/show_bug.cgi?id=164412
1870
1871         Reviewed by Merk Lam.
1872
1873         * stress/object-number-properties.js: Added.
1874         (assert):
1875         (boo):
1876
1877 2017-03-30  Michael Saboff  <msaboff@apple.com>
1878
1879         Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
1880         https://bugs.webkit.org/show_bug.cgi?id=170313
1881
1882         Reviewed by Saam Barati.
1883
1884         Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.
1885
1886         * ChakraCore.yaml:
1887
1888 2017-03-30  Michael Saboff  <msaboff@apple.com>
1889
1890         Enable ChakraCore/Function/FuncBody.js test as it now works
1891         https://bugs.webkit.org/show_bug.cgi?id=170301
1892
1893         Reviewed by Mark Lam.
1894
1895         This test no longer crashes, so enable it and create a JSC specific
1896         expected file.
1897
1898         * ChakraCore.yaml:
1899         * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
1900
1901 2017-03-30  JF Bastien  <jfbastien@apple.com>
1902
1903         WebAssembly: fix misc JS API implementation inconsistencies
1904         https://bugs.webkit.org/show_bug.cgi?id=170187
1905
1906         Reviewed by Keith Miller.
1907
1908         Verify that WebAssembly function are on the object's __proto__.
1909
1910         * wasm/js-api/Module-compile.js:
1911         * wasm/js-api/validate.js:
1912         * wasm/js-api/web-assembly-instantiate.js:
1913
1914 2017-03-29  JF Bastien  <jfbastien@apple.com>
1915
1916         WebAssembly: add shell-only Memory mode helper
1917         https://bugs.webkit.org/show_bug.cgi?id=170227
1918
1919         Reviewed by Mark Lam.
1920
1921         * wasm/assert.js: fix a prior debug thing I forgot to remove
1922         * wasm/function-tests/memory-section-and-import.js: the assert
1923         issue was hiding a failure in error message here
1924         * wasm/js-api/element.js: the assert issue was hiding a failure in
1925         error message here
1926         (badInstantiation.test):
1927         (badInstantiation):
1928         * wasm/js-api/extension-MemoryMode.js: Added.
1929         (const.validateMode.what.switch):
1930         (testMemoryNoMax):
1931         (testMemory):
1932         (testInstanceNoMemory):
1933         (testInstanceNoMax):
1934         (testInstance):
1935         * wasm/js-api/test_memory.js: the assert issue was hiding a
1936         failure in error message here
1937         (test):
1938
1939 2017-03-28  Keith Miller  <keith_miller@apple.com>
1940
1941         WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
1942         https://bugs.webkit.org/show_bug.cgi?id=169187
1943
1944         Reviewed by Saam Barati.
1945
1946         * wasm/assert.js:
1947         * wasm/js-api/Module-compile.js:
1948         (async.testPromiseAPI):
1949         * wasm/js-api/web-assembly-compile-parallel.js: Added.
1950         (async.throwExn):
1951         (async.test):
1952         * wasm/js-api/web-assembly-instantiate-parallel.js: Added.
1953         (async.test):
1954         * wasm/js-api/web-assembly-instantiate.js:
1955         (assert.eq.async.test):
1956         (assert.eq):
1957         (assert.asyncTest.async.test):
1958         (assert.asyncTest):
1959         (assert.truthy.async.test): Deleted.
1960         (assert.truthy): Deleted.
1961
1962 2017-03-28  JF Bastien  <jfbastien@apple.com>
1963
1964         WebAssembly: implement Module imports/exports
1965         https://bugs.webkit.org/show_bug.cgi?id=166982
1966
1967         Reviewed by Saam Barati.
1968
1969         * wasm/js-api/Module.exports.js: Added.
1970         (assert.throws.WebAssembly.Module.prototype.exports):
1971         (assert.eq):
1972         * wasm/js-api/Module.imports.js: Added.
1973         (assert.throws.WebAssembly.Module.prototype.imports):
1974         (assert.eq):
1975
1976 2017-03-27  JF Bastien  <jfbastien@apple.com>
1977
1978         WebAssembly: misc memory testing
1979         https://bugs.webkit.org/show_bug.cgi?id=170137
1980
1981         Reviewed by Keith Miller.
1982
1983         * wasm/assert.js: handle newlines in code we print out, avoid regex
1984         * wasm/function-tests/memory-import-and-grow.js: Added.
1985         (const.instantiate):
1986         (const.test):
1987         * wasm/function-tests/memory-section-and-import.js: Added.
1988         (const.instantiate):
1989
1990 2017-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1991
1992         [JSC] Use jsNontrivialString agressively for ToString(Int52)
1993         https://bugs.webkit.org/show_bug.cgi?id=170002
1994
1995         Reviewed by Sam Weinig.
1996
1997         * stress/to-string-int52.js: Added.
1998         (shouldBe):
1999         (toString10):
2000         (expected):
2001
2002 2017-03-23  Yusuke Suzuki  <utatane.tea@gmail.com>
2003
2004         [JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions
2005         https://bugs.webkit.org/show_bug.cgi?id=169998
2006
2007         Reviewed by Saam Barati.
2008
2009         * microbenchmarks/int52-back-and-forth.js: Added.
2010         (shouldBe):
2011         (num):
2012
2013 2017-03-23  Mark Lam  <mark.lam@apple.com>
2014
2015         Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks.
2016         https://bugs.webkit.org/show_bug.cgi?id=169783
2017
2018         Reviewed by Saam Barati.
2019
2020         * stress/regress-169783.js: Added.
2021
2022 2017-03-22  Yusuke Suzuki  <utatane.tea@gmail.com>
2023
2024         [JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup
2025         https://bugs.webkit.org/show_bug.cgi?id=169914
2026
2027         Reviewed by Saam Barati.
2028
2029         * stress/any-int-as-double-add.js: Added.
2030         (shouldBe):
2031         (test):
2032         * stress/to-this-numbers.js: Added.
2033         (shouldBe):
2034         (Number.prototype.toThis):
2035
2036 2017-03-22  Mark Lam  <mark.lam@apple.com>
2037
2038         Add support for Error.stackTraceLimit.
2039         https://bugs.webkit.org/show_bug.cgi?id=169904
2040
2041         Reviewed by Saam Barati.
2042
2043         * stress/error-stack-trace-limit.js: Added.
2044
2045 2017-03-22  Yusuke Suzuki  <utatane.tea@gmail.com>
2046
2047         [JSC] Use jsNontrivialString for Number toString operations
2048         https://bugs.webkit.org/show_bug.cgi?id=169965
2049
2050         Reviewed by Mark Lam.
2051
2052         * stress/to-string-int32.js: Added.
2053         (shouldBe):
2054         (toString10):
2055         (expected):
2056
2057 2017-03-22  JF Bastien  <jfbastien@apple.com>
2058
2059         WebAssembly: test module namespace object for WebAssembly.Instance
2060         https://bugs.webkit.org/show_bug.cgi?id=169951
2061
2062         Reviewed by Saam Barati.
2063
2064         * wasm/js-api/test_basic_api.js:
2065         (const.c.in.constructorProperties.switch):
2066
2067 2017-03-22  JF Bastien  <jfbastien@apple.com>
2068
2069         WebAssembly: constructors without new don't throw
2070         https://bugs.webkit.org/show_bug.cgi?id=165995
2071
2072         Reviewed by Saam Barati.
2073
2074         * wasm/js-api/test_basic_api.js:
2075         (const.c.in.constructorProperties.switch):
2076
2077 2017-03-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2078
2079         [JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double
2080         https://bugs.webkit.org/show_bug.cgi?id=167454
2081
2082         Reviewed by Saam Barati.
2083
2084         * stress/number-to-string-abstract-operation.js: Added.
2085         (shouldBe):
2086         (int32ToString):
2087         (shouldBe.int32ToString.new.Number.int52ToString):
2088         (shouldBe.int32ToString.new.Number):
2089         (shouldBe.doubleToString):
2090         * stress/number-to-string-radix.js: Added.
2091         (shouldBe):
2092         (int32ToString):
2093         (shouldBe.int32ToString.new.Number.int52ToString):
2094         (shouldBe.int32ToString.new.Number):
2095         (shouldBe.doubleToString):
2096         * stress/number-to-string.js: Added.
2097         (shouldBe):
2098         (int32ToString):
2099         (shouldBe.int32ToString.new.Number.int52ToString):
2100         (shouldBe.int32ToString.new.Number):
2101         (shouldBe.doubleToString):
2102
2103 2017-03-19  Chris Dumez  <cdumez@apple.com>
2104
2105         `const location = "foo"` throws in a worker
2106         https://bugs.webkit.org/show_bug.cgi?id=169839
2107
2108         Reviewed by Mark Lam.
2109
2110         * ChakraCore/test/es6/letconst_global_shadow_builtins_nonconfigurable.baseline-jsc:
2111         Update expected jsc result now that we throw a SyntaxError when trying to shadow undefined
2112         with a let variable. We used not to throw because the value is undefined but this was not
2113         as per EcmaScript. Both Firefox and Chrome throw in this case.
2114
2115         * stress/global-lexical-redeclare-variable.js:
2116         (catch):
2117         Update test that defines a non-configurable 'zoo' property on the global object and then
2118         expected shadowing it with a 'let zoo' variable to work because its value was undefined.
2119         This was not as per EcmaScript spec and both Firefox and Chrome throw in this case.
2120
2121 2017-03-19  Yusuke Suzuki  <utatane.tea@gmail.com>
2122
2123         import(arg) crashes when ToString(arg) throws
2124         https://bugs.webkit.org/show_bug.cgi?id=169778
2125
2126         Reviewed by Saam Barati.
2127
2128         * stress/import-reject-with-exception.js: Added.
2129         (shouldBe):
2130         (let.x.get toString):
2131
2132 2017-03-16  Filip Pizlo  <fpizlo@apple.com>
2133
2134         FTL should support global and eval code
2135         https://bugs.webkit.org/show_bug.cgi?id=169656
2136
2137         Reviewed by Geoffrey Garen and Saam Barati.
2138         
2139         Added basic performance tests of global and eval code. These tests will run a lot faster in with
2140         the FTL because of the object allocation.
2141
2142         * microbenchmarks/eval-code-ftl-reentry.js: Added.
2143         * microbenchmarks/eval-code-ftl.js: Added.
2144         * microbenchmarks/global-code-ftl.js: Added.
2145         * stress/arith-log-on-various-types.js: This was a flaky fail with concurrent JIT, so I stopped running it with concurrent JIT. The failure was its assertion about how many times something gets compiled.
2146
2147 2017-03-16  Caio Lima  <ticaiolima@gmail.com>
2148
2149         [ESnext] Implement Object Spread
2150         https://bugs.webkit.org/show_bug.cgi?id=167963
2151
2152         Reviewed by Yusuke Suzuki.
2153
2154         * stress/object-spread.js: Added.
2155         (let.assert):
2156         (assert.sameValue):
2157         (let.o.get a):
2158         (let.obj.get c):
2159         (cthulhu.get x):
2160         (let.obj.set c):
2161         (calls.o.get z):
2162         (calls.o.get a):
2163         (try.let.obj.get foo):
2164         (get calls):
2165
2166 2017-03-15  Yusuke Suzuki  <utatane.tea@gmail.com>
2167
2168         [JSC] Default parameter part should be retrieved by op_get_argument opcode instead of changing arity
2169         https://bugs.webkit.org/show_bug.cgi?id=164582
2170
2171         Reviewed by Saam Barati.
2172
2173         * stress/function-with-defaults-inlining.js: Added.
2174         (shouldBe):
2175         (ok):
2176         (a):
2177         * stress/function-with-defaults-non-inlining.js: Added.
2178         (shouldBe):
2179         (ok):
2180         (a):
2181
2182 2017-03-15  Yusuke Suzuki  <utatane.tea@gmail.com>
2183
2184         [DFG] ToString operation should have fixup for primitives to say this node does not have side effects
2185         https://bugs.webkit.org/show_bug.cgi?id=169544
2186
2187         Reviewed by Saam Barati.
2188
2189         * microbenchmarks/template-string-array.js: Added.
2190         (test):
2191         * stress/to-string-non-cell-use.js: Added.
2192         (shouldBe):
2193         (shouldThrow):
2194
2195 2017-03-13  Commit Queue  <commit-queue@webkit.org>
2196
2197         Unreviewed, rolling out r213856.
2198         https://bugs.webkit.org/show_bug.cgi?id=169562
2199
2200         Breaks JSC stress test stress/super-property-access.js.ftl-
2201         eager failing (Requested by mlam|g on #webkit).
2202
2203         Reverted changeset:
2204
2205         "FTL should not flush strict arguments unless it really needs
2206         to"
2207         https://bugs.webkit.org/show_bug.cgi?id=169519
2208         http://trac.webkit.org/changeset/213856
2209
2210 2017-03-11  Filip Pizlo  <fpizlo@apple.com>
2211
2212         FTL should not flush strict arguments unless it really needs to
2213         https://bugs.webkit.org/show_bug.cgi?id=169519
2214
2215         Reviewed by Mark Lam.
2216         
2217         This benchmark runs 3.5x faster thanks to this patch.
2218
2219         * microbenchmarks/strict-arguments-no-escape.js: Added.
2220         (foo):
2221         (bar):
2222         (baz):
2223
2224 2017-03-13  Caio Lima  <ticaiolima@gmail.com>
2225
2226         [JSC] It should be possible create a label named let when parsing Statement in non strict mode
2227         https://bugs.webkit.org/show_bug.cgi?id=168684
2228
2229         Reviewed by Saam Barati.
2230
2231         * ChakraCore/test/LetConst/DeclOutofBlock.baseline-jsc:
2232
2233 2017-03-10  Saam Barati  <sbarati@apple.com>
2234
2235         WebAssembly: Make more demos run
2236         https://bugs.webkit.org/show_bug.cgi?id=165510
2237         <rdar://problem/29760310>
2238
2239         Reviewed by Keith Miller.
2240
2241         * wasm/Builder.js:
2242         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
2243         * wasm/js-api/wrapper-function.js: Added.
2244         (exportImport):
2245         (return.new.WebAssembly.Module):
2246         (assert.throws.makeInstance):
2247         (assert.throws.Bar):
2248         (assert.throws):
2249
2250 2017-03-10  Mark Lam  <mark.lam@apple.com>
2251
2252         JSC: BindingNode::bindValue doesn't increase the scope's reference count.
2253         https://bugs.webkit.org/show_bug.cgi?id=168546
2254         <rdar://problem/30589551>
2255
2256         Reviewed by Saam Barati.
2257
2258         * stress/regress-168546.js: Added.
2259
2260 2017-03-09  Caio Lima  <ticaiolima@gmail.com>
2261
2262         [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
2263         https://bugs.webkit.org/show_bug.cgi?id=167962
2264
2265         Reviewed by Keith Miller.
2266
2267         * stress/object-rest-deconstruct.js: Added.
2268         (let.assert):
2269         (let.assertPropDescriptor):
2270         (catch):
2271         (get 3):
2272         (foo):
2273         (let.src.get y):
2274         (let.src.set y):
2275         (let.gen):
2276
2277 2017-03-09  Saam Barati  <sbarati@apple.com>
2278
2279         WebAssembly: Make the Unity AngryBots demo run
2280         https://bugs.webkit.org/show_bug.cgi?id=169268
2281
2282         Reviewed by Keith Miller.
2283
2284         * wasm/function-tests/many-arguments-to-function.js: Added.
2285         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.I32Const.0.I32Const.1.I32Const.2.I32Const.3.I32Const.4.I32Const.5.I32Const.6.I32Const.7.I32Const.8.I32Const.9.I32Const.10.I32Const.11.I32Const.12.I32Const.13.I32Const.14.I32Const.15.I32Const.16.I32Const.17.Call.0.Return.End.End.foo):
2286         (i.instance.exports.f0.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.Call.Return.End.End.foo):
2287         (i.instance.exports.f0):
2288         (instance.exports.f0.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.Call.Return.End.End.foo):
2289         (instance.exports.f0):
2290
2291 2017-03-08  Yusuke Suzuki  <utatane.tea@gmail.com>
2292
2293         [GTK] JSC test stress/arity-check-ftl-throw.js.ftl-no-cjit-validate-sampling-profiler crashing on GTK bot
2294         https://bugs.webkit.org/show_bug.cgi?id=160124
2295
2296         Reviewed by Mark Lam.
2297
2298         * stress/spread-forward-call-varargs-stack-overflow.js:
2299
2300 2017-03-06  Saam Barati  <sbarati@apple.com>
2301
2302         WebAssembly: Implement the WebAssembly.instantiate API
2303         https://bugs.webkit.org/show_bug.cgi?id=165982
2304         <rdar://problem/29760110>
2305
2306         Reviewed by Keith Miller.
2307
2308         * wasm/js-api/web-assembly-instantiate.js: Added.
2309         (assert.eq.async.test):
2310         (assert.eq):
2311         (assert.truthy.async.test):
2312         (assert.truthy):
2313
2314 2017-03-06  Saam Barati  <sbarati@apple.com>
2315
2316         Unreviewed. Fix test expected error message.
2317
2318         * wasm/js-api/element.js:
2319         (assert.throws):
2320
2321 2017-03-06  Caio Lima  <ticaiolima@gmail.com>
2322
2323         op_get_by_id_with_this should use inline caching
2324         https://bugs.webkit.org/show_bug.cgi?id=162124
2325
2326         Reviewed by Saam Barati.
2327
2328         * microbenchmarks/super-getter.js: Added.
2329         (A.prototype.get f):
2330         (A):
2331         (B.prototype.get f):
2332         (B):
2333         * stress/super-force-ic-fail.js: Added.
2334         (let.assert):
2335         (let.aObj.get foo):
2336         (let.obj.jaz):
2337         (let.bObj.get foo):
2338         (let.obj2.foo):
2339         * stress/super-get-by-id.js: Added.
2340         (assert):
2341         (Base):
2342         (Base.prototype.get name):
2343         (Base.prototype.set name):
2344         (Subclass.prototype.get name):
2345         (Subclass):
2346         (getterName):
2347         (getterValue):
2348         (PolymorphicSubclass.prototype.get value):
2349         (PolymorphicSubclass):
2350         (i.let.BaseCode):
2351         (i.get value):
2352         (MegamorphicSubclass.prototype.get value):
2353         (MegamorphicSubclass):
2354         (let.subObj.get value):
2355         (i.catch):
2356         (subObj.get value):
2357         (BaseException):
2358         (BaseException.prototype.get name):
2359         (SubclassException.prototype.get name):
2360         (SubclassException):
2361         (prototype.foo):
2362         (prototype.get name):
2363         (SubclassExceptionComplex.prototype.get name):
2364         (SubclassExceptionComplex):
2365         * stress/super-getter-reset-ic.js: Added.
2366         (let.assert):
2367         (let.B.f):
2368
2369 2017-03-06  Saam Barati  <sbarati@apple.com>
2370
2371         WebAssembly: implement init_expr for Element
2372         https://bugs.webkit.org/show_bug.cgi?id=165888
2373         <rdar://problem/29760199>
2374
2375         Reviewed by Keith Miller.
2376
2377         * wasm/Builder_WebAssemblyBinary.js:
2378         (const.emitters.Element):
2379         * wasm/assert.js:
2380         * wasm/js-api/element.js:
2381         (assert.throws):
2382         (badInstantiation.makeModule):
2383         (badInstantiation.test):
2384         (badInstantiation):
2385         * wasm/js-api/global-error.js:
2386
2387 2017-03-06  Carlos Alberto Lopez Perez  <clopez@igalia.com>
2388
2389         [JSC] [Linux] Test stress/spread-forward-call-varargs-stack-overflow.js fails
2390         https://bugs.webkit.org/show_bug.cgi?id=169206
2391
2392         Unreviewed test gardening.
2393
2394         * stress/spread-forward-call-varargs-stack-overflow.js: Skip on Linux platforms.
2395
2396 2017-03-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2397
2398         [JSC] Allow indexed module namespace object fields
2399         https://bugs.webkit.org/show_bug.cgi?id=168870
2400
2401         Reviewed by Saam Barati.
2402
2403         * wasm/spec-tests/names.wast.js:
2404
2405 2017-03-06  Yusuke Suzuki  <utatane.tea@gmail.com>
2406
2407         Null pointer crash when loading module with unresolved import also as a script file
2408         https://bugs.webkit.org/show_bug.cgi?id=168971
2409
2410         Reviewed by Saam Barati.
2411
2412         * stress/re-execute-error-module.js: Added.
2413         (shouldBe):
2414         (async):
2415         * stress/resources/error-module.js: Added.
2416
2417 2017-03-02  Keith Miller  <keith_miller@apple.com>
2418
2419         WebAssemblyFunction should have Function.prototype as its prototype
2420         https://bugs.webkit.org/show_bug.cgi?id=169101
2421
2422         Reviewed by Filip Pizlo.
2423
2424         * wasm/js-api/web-assembly-function.js: Added.
2425
2426 2017-02-28  Oleksandr Skachkov  <gskachkov@gmail.com>
2427
2428         Use of arguments in arrow function is slow
2429         https://bugs.webkit.org/show_bug.cgi?id=168829
2430
2431         Reviewed by Saam Barati.
2432
2433         * microbenchmarks/arrowfunciton-direct-arguments.js: Added.
2434         (fn):
2435         * microbenchmarks/arrowfunciton-reference-arguments.js: Added.
2436         (fn):
2437
2438 2017-02-27  Commit Queue  <commit-queue@webkit.org>
2439
2440         Unreviewed, rolling out r213019.
2441         https://bugs.webkit.org/show_bug.cgi?id=168925
2442
2443         "It broke 32-bit jsc tests in debug builds" (Requested by
2444         saamyjoon on #webkit).
2445
2446         Reverted changeset:
2447
2448         "op_get_by_id_with_this should use inline caching"
2449         https://bugs.webkit.org/show_bug.cgi?id=162124
2450         http://trac.webkit.org/changeset/213019
2451
2452 2017-02-27  JF Bastien  <jfbastien@apple.com>
2453
2454         WebAssembly: miscellaneous spec fixes part deux
2455         https://bugs.webkit.org/show_bug.cgi?id=168861
2456
2457         Reviewed by Keith Miller.
2458
2459         * wasm.yaml: more passing tests
2460         * wasm/Builder.js: use a Map instead of an Object for the function
2461         index space, because Number entries such as 0 were colliding with
2462         string entries such as "0". This in turn requires some hashing of
2463         objects which are inserted, because Map uses Object's insertion
2464         order when comparing.
2465         (export.default.Builder):
2466         (export.default.Builder.prototype._functionIndexSpaceKeyHash):
2467         (export.default.Builder.prototype._registerFunctionToIndexSpace):
2468         (export.default.Builder.prototype._getFunctionFromIndexSpace):
2469         * wasm/js-api/test_Instance.js: add a FIXME test
2470         * wasm/spec-tests/memory.wast.js:
2471         (assert_unlinkable):
2472         * wasm/spec-tests/names.wast.js:
2473
2474 2017-02-26  Caio Lima  <ticaiolima@gmail.com>
2475
2476         op_get_by_id_with_this should use inline caching
2477         https://bugs.webkit.org/show_bug.cgi?id=162124
2478
2479         Reviewed by Saam Barati.
2480
2481         * microbenchmarks/super-getter.js: Added.
2482         (A.prototype.get f):
2483         (A):
2484         (B.prototype.get f):
2485         (B):
2486         * stress/super-force-ic-fail.js: Added.
2487         (let.assert):
2488         (let.aObj.get foo):
2489         (let.obj.jaz):
2490         (let.bObj.get foo):
2491         (let.obj2.foo):
2492         * stress/super-get-by-id.js: Added.
2493         (assert):
2494         (Base):
2495         (Base.prototype.get name):
2496         (Base.prototype.set name):
2497         (Subclass.prototype.get name):
2498         (Subclass):
2499         (getterName):
2500         (getterValue):
2501         (PolymorphicSubclass.prototype.get value):
2502         (PolymorphicSubclass):
2503         (i.let.BaseCode):
2504         (i.get value):
2505         (MegamorphicSubclass.prototype.get value):
2506         (MegamorphicSubclass):
2507         (let.subObj.get value):
2508         (i.catch):
2509         (subObj.get value):
2510         (BaseException):
2511         (BaseException.prototype.get name):
2512         (SubclassException.prototype.get name):
2513         (SubclassException):
2514         (prototype.foo):
2515         (prototype.get name):
2516         (SubclassExceptionComplex.prototype.get name):
2517         (SubclassExceptionComplex):
2518         * stress/super-getter-reset-ic.js: Added.
2519         (let.assert):
2520         (let.B.f):
2521
2522 2017-02-24  JF Bastien  <jfbastien@apple.com>
2523
2524         WebAssembly: miscellaneous spec fixes
2525         https://bugs.webkit.org/show_bug.cgi?id=168822
2526
2527         Reviewed by Saam Barati.
2528
2529         * wasm.yaml: mark some skip tests as normal, now that they pass
2530         * wasm/Builder.js: error message was wrong, causing extra error if hit
2531         * wasm/js-api/global-error.js: new tests
2532         (assert.throws):
2533         * wasm/spec-tests/call.wast.js: comment out stack check tests
2534         * wasm/spec-tests/call_indirect.wast.js: comment out stack check tests
2535         * wasm/spec-tests/fac.wast.js: comment out stack check tests
2536         * wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update
2537         * wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt
2538         (assert_unlinkable):
2539
2540 2017-02-23  Saam Barati  <sbarati@apple.com>
2541
2542         Intrinsicify parseInt
2543         https://bugs.webkit.org/show_bug.cgi?id=168627
2544
2545         Reviewed by Filip Pizlo.
2546
2547         * stress/parse-int-intrinsic.js: Added.
2548         (assert):
2549         (testIntrinsic.let.s):
2550         (testIntrinsic):
2551         (testIntrinsic2.baz):
2552         (testIntrinsic2):
2553         (testIntrinsic3.foo):
2554         (testIntrinsic3):
2555         (testIntrinsic4.foo):
2556         (testIntrinsic4):
2557         (testIntrinsic5.foo):
2558         (testIntrinsic5):
2559         (testIntrinsic6.foo):
2560         (testIntrinsic6):
2561         (testIntrinsic7.foo):
2562         (testIntrinsic7):
2563
2564 2017-02-23  JF Bastien  <jfbastien@apple.com>
2565
2566         WebAssembly: support 0x1 version
2567         https://bugs.webkit.org/show_bug.cgi?id=168672
2568
2569         Reviewed by Keith Miller.
2570
2571         Update the version number for all the tests. Note that the spec
2572         tests are only updated with a new version number because spec+wabt
2573         aren't ready for 0x1 yet. This is tracked by bug #168784.
2574
2575         * wasm/import-spec-tests.rb: use the new spec repository layout
2576         * wasm/js-api/test_basic_api.js:
2577         * wasm/self-test/test_BuilderWebAssembly.js:
2578         (EmptyModule):
2579         (CustomSection):
2580         * wasm/spec-tests/address.wast.js:
2581         * wasm/spec-tests/binary.wast.js:
2582         * wasm/spec-tests/block.wast.js:
2583         * wasm/spec-tests/br.wast.js:
2584         * wasm/spec-tests/br_if.wast.js:
2585         * wasm/spec-tests/br_table.wast.js:
2586         * wasm/spec-tests/break-drop.wast.js:
2587         * wasm/spec-tests/call.wast.js:
2588         * wasm/spec-tests/call_indirect.wast.js:
2589         * wasm/spec-tests/comments.wast.js:
2590         * wasm/spec-tests/conversions.wast.js:
2591         * wasm/spec-tests/custom_section.wast.js:
2592         * wasm/spec-tests/endianness.wast.js:
2593         * wasm/spec-tests/exports.wast.js:
2594         * wasm/spec-tests/f32.wast.js:
2595         * wasm/spec-tests/f32_cmp.wast.js:
2596         * wasm/spec-tests/f64.wast.js:
2597         * wasm/spec-tests/f64_cmp.wast.js:
2598         * wasm/spec-tests/fac.wast.js:
2599         * wasm/spec-tests/float_exprs.wast.js:
2600         * wasm/spec-tests/float_literals.wast.js:
2601         * wasm/spec-tests/float_memory.wast.js:
2602         * wasm/spec-tests/float_misc.wast.js:
2603         * wasm/spec-tests/forward.wast.js:
2604         * wasm/spec-tests/func.wast.js:
2605         * wasm/spec-tests/func_ptrs.wast.js:
2606         * wasm/spec-tests/get_local.wast.js:
2607         * wasm/spec-tests/globals.wast.js:
2608         * wasm/spec-tests/i32.wast.js:
2609         * wasm/spec-tests/i64.wast.js:
2610         * wasm/spec-tests/imports.wast.js:
2611         * wasm/spec-tests/int_exprs.wast.js:
2612         * wasm/spec-tests/int_literals.wast.js:
2613         * wasm/spec-tests/left-to-right.wast.js:
2614         * wasm/spec-tests/linking.wast.js:
2615         * wasm/spec-tests/loop.wast.js:
2616         * wasm/spec-tests/memory.wast.js:
2617         * wasm/spec-tests/memory_redundancy.wast.js:
2618         * wasm/spec-tests/memory_trap.wast.js:
2619         * wasm/spec-tests/names.wast.js:
2620         * wasm/spec-tests/nop.wast.js:
2621         * wasm/spec-tests/resizing.wast.js:
2622         * wasm/spec-tests/return.wast.js:
2623         * wasm/spec-tests/select.wast.js:
2624         * wasm/spec-tests/set_local.wast.js:
2625         * wasm/spec-tests/skip-stack-guard-page.wast.js:
2626         * wasm/spec-tests/stack.wast.js:
2627         * wasm/spec-tests/start.wast.js:
2628         * wasm/spec-tests/store_retval.wast.js:
2629         * wasm/spec-tests/switch.wast.js:
2630         * wasm/spec-tests/tee_local.wast.js:
2631         * wasm/spec-tests/traps.wast.js:
2632         * wasm/spec-tests/typecheck.wast.js:
2633         * wasm/spec-tests/unreachable.wast.js:
2634         * wasm/spec-tests/unwind.wast.js:
2635         * wasm/wasm.json:
2636
2637 2017-02-22  Yusuke Suzuki  <utatane.tea@gmail.com>
2638
2639         JSModuleNamespace object should have IC
2640         https://bugs.webkit.org/show_bug.cgi?id=160590
2641
2642         Reviewed by Saam Barati.
2643
2644         * modules/module-assert-access-binding.js: Added.
2645         * modules/module-assert-access-namespace.js: Added.
2646         * modules/namespace-empty.js: Added.
2647         (from.string_appeared_here.access):
2648         (i.shouldThrow):
2649         * stress/module-namespace-access-change.js: Added.
2650         (shouldBe):
2651         (access):
2652         (import.string_appeared_here.then):
2653         * stress/module-namespace-access-non-constant.js: Added.
2654         (shouldBe):
2655         (import.string_appeared_here.then):
2656         * stress/module-namespace-access-poly.js: Added.
2657         (shouldBe):
2658         (access):
2659         (import.string_appeared_here.then):
2660         * stress/module-namespace-access-transitive-exports.js: Added.
2661         (shouldBe):
2662         (import.string_appeared_here.then):
2663         * stress/module-namespace-access.js: Added.
2664         (shouldBe):
2665         (import.string_appeared_here.then):
2666         * stress/resources/module-namespace-access-transitive-exports-2.js: Added.
2667         (export.cocoa):
2668         (export.change):
2669         * stress/resources/module-namespace-access-transitive-exports.js: Added.
2670         * stress/resources/module-namespace-access.js: Added.
2671         (export.cocoa):
2672         (export.change):
2673
2674 2017-02-20  Filip Pizlo  <fpizlo@apple.com>
2675
2676         The collector thread should only start when the mutator doesn't have heap access
2677         https://bugs.webkit.org/show_bug.cgi?id=167737
2678
2679         Reviewed by Keith Miller.
2680         
2681         Add versions of splay that flash heap access, to simulate what might happen if a third-party app
2682         was running concurrent GC. In this case, we might actually start the collector thread.
2683
2684         * stress/splay-flash-access-1ms.js: Added.
2685         (performance.now):
2686         (this.Setup.setup.setup):
2687         (this.TearDown.tearDown.tearDown):
2688         (Benchmark):
2689         (BenchmarkResult):
2690         (BenchmarkResult.prototype.valueOf):
2691         (BenchmarkSuite):
2692         (alert):
2693         (Math.random):
2694         (BenchmarkSuite.ResetRNG):
2695         (RunStep):
2696         (BenchmarkSuite.RunSuites):
2697         (BenchmarkSuite.CountBenchmarks):
2698         (BenchmarkSuite.GeometricMean):
2699         (BenchmarkSuite.GeometricMeanTime):
2700         (BenchmarkSuite.AverageAbovePercentile):
2701         (BenchmarkSuite.GeometricMeanLatency):
2702         (BenchmarkSuite.FormatScore):
2703         (BenchmarkSuite.prototype.NotifyStep):
2704         (BenchmarkSuite.prototype.NotifyResult):
2705         (BenchmarkSuite.prototype.NotifyError):
2706         (BenchmarkSuite.prototype.RunSingleBenchmark):
2707         (RunNextSetup):
2708         (RunNextBenchmark):
2709         (RunNextTearDown):
2710         (BenchmarkSuite.prototype.RunStep):
2711         (GeneratePayloadTree):
2712         (GenerateKey):
2713         (SplayUpdateStats):
2714         (InsertNewNode):
2715         (SplaySetup):
2716         (SplayTearDown):
2717         (SplayRun):
2718         (SplayTree):
2719         (SplayTree.prototype.isEmpty):
2720         (SplayTree.prototype.insert):
2721         (SplayTree.prototype.remove):
2722         (SplayTree.prototype.find):
2723         (SplayTree.prototype.findMax):
2724         (SplayTree.prototype.findGreatestLessThan):
2725         (SplayTree.prototype.exportKeys):
2726         (SplayTree.prototype.splay_):
2727         (SplayTree.Node):
2728         (SplayTree.Node.prototype.traverse_):
2729         (jscSetUp):
2730         (jscTearDown):
2731         (jscRun):
2732         (averageAbovePercentile):
2733         (printPercentile):
2734         * stress/splay-flash-access.js: Added.
2735         (performance.now):
2736         (this.Setup.setup.setup):
2737         (this.TearDown.tearDown.tearDown):
2738         (Benchmark):
2739         (BenchmarkResult):
2740         (BenchmarkResult.prototype.valueOf):
2741         (BenchmarkSuite):
2742         (alert):
2743         (Math.random):
2744         (BenchmarkSuite.ResetRNG):
2745         (RunStep):
2746         (BenchmarkSuite.RunSuites):
2747         (BenchmarkSuite.CountBenchmarks):
2748         (BenchmarkSuite.GeometricMean):
2749         (BenchmarkSuite.GeometricMeanTime):
2750         (BenchmarkSuite.AverageAbovePercentile):
2751         (BenchmarkSuite.GeometricMeanLatency):
2752         (BenchmarkSuite.FormatScore):
2753         (BenchmarkSuite.prototype.NotifyStep):
2754         (BenchmarkSuite.prototype.NotifyResult):
2755         (BenchmarkSuite.prototype.NotifyError):
2756         (BenchmarkSuite.prototype.RunSingleBenchmark):
2757         (RunNextSetup):
2758         (RunNextBenchmark):
2759         (RunNextTearDown):
2760         (BenchmarkSuite.prototype.RunStep):
2761         (GeneratePayloadTree):
2762         (GenerateKey):
2763         (SplayUpdateStats):
2764         (InsertNewNode):
2765         (SplaySetup):
2766         (SplayTearDown):
2767         (SplayRun):
2768         (SplayTree):
2769         (SplayTree.prototype.isEmpty):
2770         (SplayTree.prototype.insert):
2771         (SplayTree.prototype.remove):
2772         (SplayTree.prototype.find):
2773         (SplayTree.prototype.findMax):
2774         (SplayTree.prototype.findGreatestLessThan):
2775         (SplayTree.prototype.exportKeys):
2776         (SplayTree.prototype.splay_):
2777         (SplayTree.Node):
2778         (SplayTree.Node.prototype.traverse_):
2779         (jscSetUp):
2780         (jscTearDown):
2781         (jscRun):
2782         (averageAbovePercentile):
2783         (printPercentile):
2784
2785 2017-02-21  Ryan Haddad  <ryanhaddad@apple.com>
2786
2787         Unreviewed, rolling out r212712.
2788
2789         This change broke the CLoop build.
2790
2791         Reverted changeset:
2792
2793         "JSModuleNamespace object should have IC"
2794         https://bugs.webkit.org/show_bug.cgi?id=160590
2795         http://trac.webkit.org/changeset/212712
2796
2797 2017-02-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2798
2799         JSModuleNamespace object should have IC
2800         https://bugs.webkit.org/show_bug.cgi?id=160590
2801
2802         Reviewed by Saam Barati.
2803
2804         * modules/module-assert-access-binding.js: Added.
2805         * modules/module-assert-access-namespace.js: Added.
2806         * modules/namespace-empty.js: Added.
2807         (from.string_appeared_here.access):
2808         (i.shouldThrow):
2809         * stress/module-namespace-access-change.js: Added.
2810         (shouldBe):
2811         (access):
2812         (import.string_appeared_here.then):
2813         * stress/module-namespace-access-non-constant.js: Added.
2814         (shouldBe):
2815         (import.string_appeared_here.then):
2816         * stress/module-namespace-access-poly.js: Added.
2817         (shouldBe):
2818         (access):
2819         (import.string_appeared_here.then):
2820         * stress/module-namespace-access-transitive-exports.js: Added.
2821         (shouldBe):
2822         (import.string_appeared_here.then):
2823         * stress/module-namespace-access.js: Added.
2824         (shouldBe):
2825         (import.string_appeared_here.then):
2826         * stress/resources/module-namespace-access-transitive-exports-2.js: Added.
2827         (export.cocoa):
2828         (export.change):
2829         * stress/resources/module-namespace-access-transitive-exports.js: Added.
2830         * stress/resources/module-namespace-access.js: Added.
2831         (export.cocoa):
2832         (export.change):
2833
2834 2017-02-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2835
2836         ASSERTION FAILED: "!scope.exception()" with Object.isSealed/isFrozen and uninitialized module bindings
2837         https://bugs.webkit.org/show_bug.cgi?id=168605
2838
2839         Reviewed by Saam Barati.
2840
2841         * modules/module-namespace-is-frozen.js: Added.
2842         (from.string_appeared_here.shouldThrow):
2843         (export.b):
2844         * modules/module-namespace-is-sealed.js: Added.
2845         (from.string_appeared_here.shouldThrow):
2846         (export.b):
2847
2848 2017-02-19  Commit Queue  <commit-queue@webkit.org>
2849
2850         Unreviewed, rolling out r212466.
2851         https://bugs.webkit.org/show_bug.cgi?id=168577
2852
2853         causes crashes on AArch64 on linux, maybe it's causing crashes
2854         on iOS too (Requested by pizlo on #webkit).
2855
2856         Reverted changeset:
2857
2858         "The collector thread should only start when the mutator
2859         doesn't have heap access"
2860         https://bugs.webkit.org/show_bug.cgi?id=167737
2861         http://trac.webkit.org/changeset/212466
2862
2863 2017-02-10  Filip Pizlo  <fpizlo@apple.com>
2864
2865         The collector thread should only start when the mutator doesn't have heap access
2866         https://bugs.webkit.org/show_bug.cgi?id=167737
2867
2868         Reviewed by Keith Miller.
2869         
2870         Add versions of splay that flash heap access, to simulate what might happen if a third-party app
2871         was running concurrent GC. In this case, we might actually start the collector thread.
2872
2873         * stress/splay-flash-access-1ms.js: Added.
2874         (performance.now):
2875         (this.Setup.setup.setup):
2876         (this.TearDown.tearDown.tearDown):
2877         (Benchmark):
2878         (BenchmarkResult):
2879         (BenchmarkResult.prototype.valueOf):
2880         (BenchmarkSuite):
2881         (alert):
2882         (Math.random):
2883         (BenchmarkSuite.ResetRNG):
2884         (RunStep):
2885         (BenchmarkSuite.RunSuites):
2886         (BenchmarkSuite.CountBenchmarks):
2887         (BenchmarkSuite.GeometricMean):
2888         (BenchmarkSuite.GeometricMeanTime):
2889         (BenchmarkSuite.AverageAbovePercentile):
2890         (BenchmarkSuite.GeometricMeanLatency):
2891         (BenchmarkSuite.FormatScore):
2892         (BenchmarkSuite.prototype.NotifyStep):
2893         (BenchmarkSuite.prototype.NotifyResult):
2894         (BenchmarkSuite.prototype.NotifyError):
2895         (BenchmarkSuite.prototype.RunSingleBenchmark):
2896         (RunNextSetup):
2897         (RunNextBenchmark):
2898         (RunNextTearDown):
2899         (BenchmarkSuite.prototype.RunStep):
2900         (GeneratePayloadTree):
2901         (GenerateKey):
2902         (SplayUpdateStats):
2903         (InsertNewNode):
2904         (SplaySetup):
2905         (SplayTearDown):
2906         (SplayRun):
2907         (SplayTree):
2908         (SplayTree.prototype.isEmpty):
2909         (SplayTree.prototype.insert):
2910         (SplayTree.prototype.remove):
2911         (SplayTree.prototype.find):
2912         (SplayTree.prototype.findMax):
2913         (SplayTree.prototype.findGreatestLessThan):
2914         (SplayTree.prototype.exportKeys):
2915         (SplayTree.prototype.splay_):
2916         (SplayTree.Node):
2917         (SplayTree.Node.prototype.traverse_):
2918         (jscSetUp):
2919         (jscTearDown):
2920         (jscRun):
2921         (averageAbovePercentile):
2922         (printPercentile):
2923         * stress/splay-flash-access.js: Added.
2924         (performance.now):
2925         (this.Setup.setup.setup):
2926         (this.TearDown.tearDown.tearDown):
2927         (Benchmark):
2928         (BenchmarkResult):
2929         (BenchmarkResult.prototype.valueOf):
2930         (BenchmarkSuite):
2931         (alert):
2932         (Math.random):
2933         (BenchmarkSuite.ResetRNG):
2934         (RunStep):
2935         (BenchmarkSuite.RunSuites):
2936         (BenchmarkSuite.CountBenchmarks):
2937         (BenchmarkSuite.GeometricMean):
2938         (BenchmarkSuite.GeometricMeanTime):
2939         (BenchmarkSuite.AverageAbovePercentile):
2940         (BenchmarkSuite.GeometricMeanLatency):
2941         (BenchmarkSuite.FormatScore):
2942         (BenchmarkSuite.prototype.NotifyStep):
2943         (BenchmarkSuite.prototype.NotifyResult):
2944         (BenchmarkSuite.prototype.NotifyError):
2945         (BenchmarkSuite.prototype.RunSingleBenchmark):
2946         (RunNextSetup):
2947         (RunNextBenchmark):
2948         (RunNextTearDown):
2949         (BenchmarkSuite.prototype.RunStep):
2950         (GeneratePayloadTree):
2951         (GenerateKey):
2952         (SplayUpdateStats):
2953         (InsertNewNode):
2954         (SplaySetup):
2955         (SplayTearDown):
2956         (SplayRun):
2957         (SplayTree):
2958         (SplayTree.prototype.isEmpty):
2959         (SplayTree.prototype.insert):
2960         (SplayTree.prototype.remove):
2961         (SplayTree.prototype.find):
2962         (SplayTree.prototype.findMax):
2963         (SplayTree.prototype.findGreatestLessThan):
2964         (SplayTree.prototype.exportKeys):
2965         (SplayTree.prototype.splay_):
2966         (SplayTree.Node):
2967         (SplayTree.Node.prototype.traverse_):
2968         (jscSetUp):
2969         (jscTearDown):
2970         (jscRun):
2971         (averageAbovePercentile):
2972         (printPercentile):
2973
2974 2017-02-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2975
2976         [JSC] Update module namespace object according to the latest ECMA262
2977         https://bugs.webkit.org/show_bug.cgi?id=168280
2978
2979         Reviewed by Saam Barati.
2980
2981         * modules/namespace-object-symbol-iterator-name.js:
2982         * modules/namespace-object-typed-array-fast-path.js:
2983         * modules/namespace.js:
2984         (shouldBe.JSON.stringify.Reflect.getOwnPropertyDescriptor):
2985         (shouldThrow):
2986
2987 2017-02-11  Yusuke Suzuki  <utatane.tea@gmail.com>
2988
2989         [JSC] Implement (Shared)ArrayBuffer.prototype.byteLength
2990         https://bugs.webkit.org/show_bug.cgi?id=166476
2991
2992         Reviewed by Saam Barati.
2993
2994         * ChakraCore/test/typedarray/arraybufferType.baseline-jsc:
2995         * stress/array-buffer-byte-length.js: Added.
2996         (shouldBe):
2997         (shouldThrow):
2998         (Symbol):
2999         * stress/reflect-set.js:
3000
3001 2017-02-10  Saam Barati  <sbarati@apple.com>
3002
3003         Object allocation sinking phase doesn't properly handle control flow when emitting a PutHint of a materialized object into a PromotedHeapLocation of a still sunken object
3004         https://bugs.webkit.org/show_bug.cgi?id=168140
3005         <rdar://problem/30205880>
3006
3007         Reviewed by Filip Pizlo.
3008
3009         * stress/allocation-sinking-puthint-control-flow.js: Added.
3010         (e):
3011         (bar):
3012         (let.y):
3013         (else.let.y):
3014         (baz):
3015         (foo):
3016         (catch):
3017
3018 2017-02-09  Mark Lam  <mark.lam@apple.com>
3019
3020         B3::Procedure::deleteOrphans() should neutralize upsilons with dead phis.
3021         https://bugs.webkit.org/show_bug.cgi?id=167437
3022         <rdar://problem/30198083>
3023
3024         Reviewed by Filip Pizlo.
3025
3026         * stress/b3-delete-orphans-should-neutralize-upsilons-with-dead-phis.js: Added.
3027
3028 2017-02-09  Saam Barati  <sbarati@apple.com>
3029
3030         Sloppy mode: We don't properly hoist functions names "arguments" when we have a non-simple parameter list
3031         https://bugs.webkit.org/show_bug.cgi?id=167319
3032         <rdar://problem/30149432>
3033
3034         Reviewed by Mark Lam.
3035
3036         * stress/sloppy-mode-hoist-arguments-function-non-simple-parameter-list.js: Added.
3037         (assert):
3038         (assert.arguments):
3039         (assert.b):
3040         (x.arguments):
3041         (x.b):
3042         (x):
3043
3044 2017-02-09  Mark Lam  <mark.lam@apple.com>
3045
3046         Fix max length check in ArrayPrototype.js' concatSlowPath().
3047         https://bugs.webkit.org/show_bug.cgi?id=167270
3048         <rdar://problem/30128133>
3049
3050         Reviewed by Filip Pizlo.
3051
3052         * stress/array-prototype-concat-of-long-spliced-arrays.js: Added.
3053         * stress/array-prototype-concat-of-long-spliced-arrays2.js: Added.
3054
3055 2017-02-09  Keith Miller  <keith_miller@apple.com>
3056
3057         We should not allow Function.caller to be used on native functions
3058         https://bugs.webkit.org/show_bug.cgi?id=165628
3059
3060         Reviewed by Mark Lam.
3061
3062         * stress/caller-native-code.js: Added.
3063         (f):
3064
3065 2017-02-04  Yusuke Suzuki  <utatane.tea@gmail.com>
3066
3067         [JSC] Add operationToInt32SensibleSlow to optimize kraken pbkdf2 and sha256
3068         https://bugs.webkit.org/show_bug.cgi?id=167736
3069
3070         Reviewed by Saam Barati.
3071
3072         * stress/to-int32-sensible.js: Added.
3073         (shouldBe):
3074         (toInt32):
3075         (test):
3076
3077 2017-02-01  Yusuke Suzuki  <utatane.tea@gmail.com>
3078
3079         Unreviewed, remove loop
3080         https://bugs.webkit.org/show_bug.cgi?id=167694
3081
3082         It causes timeout.
3083         Original bug can be tested even without this loop.
3084
3085         * stress/arity-fixup-should-not-touch-stack-area-below-sp.js:
3086
3087 2017-02-01  Yusuke Suzuki  <utatane.tea@gmail.com>
3088
3089         ArityFixup should adjust SP first
3090         https://bugs.webkit.org/show_bug.cgi?id=167239
3091
3092         Reviewed by Michael Saboff.
3093
3094         Significantly large arity fixup reliably causes this crash.
3095
3096         * stress/arity-fixup-should-not-touch-stack-area-below-sp.js: Added.
3097
3098 2017-01-31  Filip Pizlo  <fpizlo@apple.com>
3099
3100         Move slow-running microbenchmarks out of JSTests/microbenchmarks
3101         https://bugs.webkit.org/show_bug.cgi?id=167676
3102
3103         Reviewed by Saam Barati.
3104         
3105         The microbenchmarks directory is profitable when it's cheap to run. This change moves very slow
3106         tests (>=200ms running time on my machine) and puts them in JSTests/slowMicrobenchmarks instead.
3107         That directory is run only through `slow!; defaultQuickRun` and is not run by run-jsc-benchmarks.
3108         This is a big progression in test running time. But because it frontloads more slow tests, the
3109         tests will seem to run more slowly when you first start the test runner.
3110
3111         * microbenchmarks/default-derived-constructor.js: Removed.
3112         * microbenchmarks/dense-set.js: Removed.
3113         * microbenchmarks/ftl-polymorphic-div.js: Removed.
3114         * microbenchmarks/ftl-polymorphic-mul.js: Removed.
3115         * microbenchmarks/function-bind-inlining.js: Removed.
3116         * microbenchmarks/function-bind-no-inlining.js: Removed.
3117         * microbenchmarks/large-map-iteration-with-additions.js: Removed.
3118         * microbenchmarks/large-map-iteration-with-mutation.js: Removed.
3119         * microbenchmarks/map-get-get-cse.js: Removed.
3120         * microbenchmarks/misc-bugs-847389-jpeg2000.js: Removed.
3121         * microbenchmarks/spread-small-array.js: Removed.
3122         * microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Removed.
3123         * slowMicrobenchmarks: Added.
3124         * slowMicrobenchmarks.yaml: Added.
3125         * slowMicrobenchmarks/README: Added.
3126         * slowMicrobenchmarks/default-derived-constructor.js: Copied from JSTests/microbenchmarks/default-derived-constructor.js.
3127         * slowMicrobenchmarks/dense-set.js: Copied from JSTests/microbenchmarks/dense-set.js.
3128         * slowMicrobenchmarks/ftl-polymorphic-div.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-div.js.
3129         * slowMicrobenchmarks/ftl-polymorphic-mul.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-mul.js.
3130         * slowMicrobenchmarks/function-bind-inlining.js: Copied from JSTests/microbenchmarks/function-bind-inlining.js.
3131         * slowMicrobenchmarks/function-bind-no-inlining.js: Copied from JSTests/microbenchmarks/function-bind-no-inlining.js.
3132         * slowMicrobenchmarks/large-map-iteration-with-additions.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-additions.js.
3133         * slowMicrobenchmarks/large-map-iteration-with-mutation.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-mutation.js.
3134         * slowMicrobenchmarks/map-get-get-cse.js: Copied from JSTests/microbenchmarks/map-get-get-cse.js.
3135         * slowMicrobenchmarks/misc-bugs-847389-jpeg2000.js: Copied from JSTests/microbenchmarks/misc-bugs-847389-jpeg2000.js.
3136         * slowMicrobenchmarks/spread-small-array.js: Copied from JSTests/microbenchmarks/spread-small-array.js.
3137         * slowMicrobenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Copied from JSTests/microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js.
3138
3139 2017-01-30  Yusuke Suzuki  <utatane.tea@gmail.com>
3140
3141         [JSC] Do not reject WebAssembly.compile() with Exception
3142         https://bugs.webkit.org/show_bug.cgi?id=167585
3143
3144         Reviewed by Mark Lam.
3145
3146         * wasm/js-api/Module-compile.js:
3147         (async.testPromiseAPI):
3148
3149 2017-01-27  Yusuke Suzuki  <utatane.tea@gmail.com>
3150
3151         Lift template escape sequence restrictions in tagged templates
3152         https://bugs.webkit.org/show_bug.cgi?id=166871
3153
3154         Reviewed by Saam Barati.
3155
3156         Update the error messages and add new tests.
3157
3158         * ChakraCore/test/es6/unicode_6_identifier_Blue524737.baseline-jsc:
3159         * stress/lift-template-literal.js: Added.
3160         (dump):
3161         (testTag.return.tag):
3162         (testTag):
3163         * stress/template-literal-syntax.js:
3164
3165 2017-01-26  Mark Lam  <mark.lam@apple.com>
3166
3167         Fix missing exception check in genericTypedArrayViewProtoFuncSet().
3168         https://bugs.webkit.org/show_bug.cgi?id=166812
3169         <rdar://problem/29916672>
3170
3171         Reviewed by Saam Barati.
3172
3173         * stress/regress-166812.js: Added.
3174
3175 2017-01-26  Commit Queue  <commit-queue@webkit.org>
3176
3177         Unreviewed, rolling out r211224.
3178         https://bugs.webkit.org/show_bug.cgi?id=167479
3179
3180         "It was a Kraken performance regression" (Requested by
3181         saamyjoon on #webkit).
3182
3183         Reverted changeset:
3184
3185         "OSR entry: delay outer-loop compilation when at inner-loop"
3186         https://bugs.webkit.org/show_bug.cgi?id=167149
3187         http://trac.webkit.org/changeset/211224
3188
3189 2017-01-26  JF Bastien  <jfbastien@apple.com>
3190
3191         OSR entry: delay outer-loop compilation when at inner-loop
3192         https://bugs.webkit.org/show_bug.cgi?id=167149
3193
3194         Reviewed by Filip Pizlo.
3195
3196         Try to be mean to OSR entry by using nested loops, and having
3197         non-int32 types or truly varying types.
3198
3199         Mandelbrot currently never tiers up to FTL because it exits too
3200         many times before this. That shouldn't happen because it's just
3201         numbers and int32s. I'll file a bug to fix this.
3202
3203         * microbenchmarks/mandelbrot.js: Added.
3204         (mandelbrot):
3205         (printable):
3206         * microbenchmarks/nonude.js: Added.
3207         (Array.prototype.remove):
3208         (const.u):
3209         (const.load):
3210         (const.scan):
3211         (const.main):
3212
3213 2017-01-25  Saam Barati  <sbarati@apple.com>
3214
3215         WebAssembly JS API: coerce return values from imports
3216         https://bugs.webkit.org/show_bug.cgi?id=165480
3217         <rdar://problem/29760318>
3218
3219         Reviewed by Yusuke Suzuki.
3220
3221         * wasm/function-tests/function-import-return-value.js: Added.
3222         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.x.assert.eq):
3223         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.Math.fround):
3224         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.type.of.Reflect.ownKeys):
3225         (test.1):
3226         (assert.truthy):
3227         (assert.throws):
3228
3229 2017-01-25  Filip Pizlo  <fpizlo@apple.com>
3230
3231         jsc.cpp should have the $.agent stuff for testing SAB
3232         https://bugs.webkit.org/show_bug.cgi?id=167431
3233
3234         Reviewed by Saam Barati.
3235         
3236         Add a very basic test of Atomics using $.agent. This is based on
3237         LayoutTests/workers/sab/simple.html.
3238
3239         * stress/lars-sab-workers.js: Added.
3240         (startWorker):
3241         (resources):
3242         (wake):
3243         (else):
3244
3245 2017-01-24  Filip Pizlo  <fpizlo@apple.com>
3246
3247         Atomics.store should return the int-converted value according to toInteger
3248         https://bugs.webkit.org/show_bug.cgi?id=167399
3249
3250         Reviewed by Saam Barati.
3251
3252         * stress/atomics-add-uint32.js: Added.
3253         * stress/atomics-store-return.js: Fix the test to match what the spec wants.
3254
3255 2017-01-24  Yusuke Suzuki  <utatane.tea@gmail.com>
3256
3257         [JSC] Optimize Number#toString with Int52
3258         https://bugs.webkit.org/show_bug.cgi?id=167303
3259
3260         Reviewed by Sam Weinig.
3261
3262         * stress/to-string-with-int52.js: Added.
3263         (shouldBe):
3264
3265 2017-01-24  Filip Pizlo  <fpizlo@apple.com>
3266
3267         Atomics.store should return the int-converted value, not the value that it stored
3268         https://bugs.webkit.org/show_bug.cgi?id=167395
3269
3270         Reviewed by Saam Barati.
3271
3272         * stress/atomics-store-return.js: Added.
3273
3274 2017-01-24  Filip Pizlo  <fpizlo@apple.com>
3275
3276         -0 is a valid array index and AtomicsObject should know this
3277         https://bugs.webkit.org/show_bug.cgi?id=167386
3278
3279         Reviewed by Mark Lam.
3280
3281         * stress/atomics-neg-zero.js: Added.
3282
3283 2017-01-23  Saam Barati  <sbarati@apple.com>
3284
3285         https://bugs.webkit.org/show_bug.cgi?id=167247
3286         JSC: operationSpreadGeneric uses the wrong global object for the builtin function and slow_path_spread consults the wrong global object to prove if the iterator protocol is unobservable
3287         <rdar://problem/30121809>
3288
3289         Reviewed by Filip Pizlo.
3290
3291         * stress/spread-consults-correct-global-object.js: Added.
3292         (assert):
3293         (spread):
3294         * stress/spread-correct-global-object-on-exception.js: Added.
3295         (assert):
3296         (spread):
3297         (const.objectText.let.o.Symbol.iterator):
3298         (catch):
3299
3300 2017-01-21  Yusuke Suzuki  <utatane.tea@gmail.com>
3301
3302         dynamic import is ambiguous with import declaration at module code
3303         https://bugs.webkit.org/show_bug.cgi?id=167098
3304
3305         Reviewed by Darin Adler.
3306
3307         * modules/import-call.js: Added.
3308         (from.string_appeared_here.import.string_appeared_here.then):
3309         * modules/import-call/main.js: Added.
3310         * stress/import-syntax.js:
3311         (async):
3312
3313 2017-01-19  Skachkov Oleksandr  <gskachkov@gmail.com>
3314
3315         "this" missing after await in async arrow function
3316         https://bugs.webkit.org/show_bug.cgi?id=166919
3317
3318         Reviewed by Saam Barati.
3319
3320         * stress/async-arrow-functions-lexical-binding-in-class.js:
3321         (ChildClass.prototype.asyncThisPropWithAwaitBody):
3322         (ChildClass.prototype.asyncThisPropInEvalWithAwaitBody):
3323         (ChildClass.prototype.asyncThisValueBodyWithAwait):
3324         (ChildClass.prototype.asyncThisValueInEvalWithAwaitBody):
3325         (ChildClass):
3326         (ChildClass3):
3327         (ChildClass3.prototype.classValue):
3328         (ChildClass3.prototype.get classProperty):
3329         * stress/async-arrow-functions-lexical-new.target-binding.js:
3330         (C2WithAwait):
3331
3332 2017-01-16  Filip Pizlo  <fpizlo@apple.com>
3333
3334         Make opaque root scanning truly constraint-based
3335         https://bugs.webkit.org/show_bug.cgi?id=165760
3336
3337         Reviewed by Geoffrey Garen.
3338         
3339         Added this test, which demonstrates the benefit of having a dedicated string subspace.
3340
3341         * microbenchmarks/stringalloc.js: Added.
3342
3343 2017-01-17  Michael Saboff  <msaboff@apple.com>
3344
3345         Nested parenthesized regular expressions with non-zero minimum counts appear to hang and use lots of memory
3346         https://bugs.webkit.org/show_bug.cgi?id=167125
3347
3348         Reviewed by Filip Pizlo.
3349
3350         * microbenchmarks/regexp-nested-nonzero-min-counted-parens.js: Added.
3351         New test with limits that run slow and take a reasonable amount of memory
3352         before the change and run fast, using little memory with the change.
3353
3354 2017-01-14  Yusuke Suzuki  <utatane.tea@gmail.com>
3355
3356         Annotate large string tests with largeHeap
3357         https://bugs.webkit.org/show_bug.cgi?id=167054
3358
3359         Reviewed by Filip Pizlo.
3360
3361         * microbenchmarks/dense-set.js:
3362         * microbenchmarks/lots-of-fields.js:
3363         * stress/joined-strings-should-not-exceed-max-string-length.js:
3364         * stress/make-large-string-jit-strcat.js:
3365         * stress/make-large-string-jit.js:
3366         * stress/make-large-string-strcat.js:
3367         * stress/make-large-string.js:
3368         * stress/string-joining-long-strings-should-not-crash.js:
3369         * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
3370
3371 2017-01-14  Yusuke Suzuki  <utatane.tea@gmail.com>
3372
3373         Reserve capacity for StringBuilder in unescape
3374         https://bugs.webkit.org/show_bug.cgi?id=167008
3375
3376         Reviewed by Sam Weinig.
3377
3378         * stress/unescape.js: Added.
3379         (shouldBe):
3380
3381 2017-01-12  Saam Barati  <sbarati@apple.com>
3382
3383         Add a slice intrinsic to the DFG/FTL
3384         https://bugs.webkit.org/show_bug.cgi?id=166707
3385         <rdar://problem/29913445>
3386
3387         Reviewed by Filip Pizlo.
3388
3389         * stress/array-slice-intrinsic.js: Added.
3390         (assert):
3391         (shallowEq):
3392         (runTest1):
3393         (runTest2):
3394         * stress/array-slice-jettison-on-constructor-change.js: Added.
3395         (assert):
3396         (runTest1):
3397         (runTest2):
3398         (addRandomProperties):
3399         (runTests):
3400         * stress/array-slice-osr-exit-2.js: Added.
3401         (assert):
3402         (Foo):
3403         (shallowEq):
3404         (runTest1):
3405         (runTest2):
3406         (addRandomProperties):
3407         (runTests):
3408         * stress/array-slice-osr-exit.js: Added.
3409         (assert):
3410         (Foo):
3411         (shallowEq):
3412         (runTest1):
3413         (runTest2):
3414         (addRandomProperties):
3415         (runTests):
3416
3417 2017-01-11  Ryan Haddad  <ryanhaddad@apple.com>
3418
3419         Mark es6/typed_arrays_correct_prototype_chains.js as failing after r210570.
3420         https://bugs.webkit.org/show_bug.cgi?id=166931i
3421
3422         Unreviewed test gardening.
3423
3424         * es6.yaml:
3425
3426 2017-01-10  Commit Queue  <commit-queue@webkit.org>
3427
3428         Unreviewed, rolling out r210052.
3429         https://bugs.webkit.org/show_bug.cgi?id=166915
3430
3431         "breaks web compatability" (Requested by keith_miller on
3432         #webkit).
3433
3434         Reverted changeset:
3435
3436         "Add support for global"
3437         https://bugs.webkit.org/show_bug.cgi?id=165171
3438         http://trac.webkit.org/changeset/210052
3439
3440 2017-01-10  Mark Lam  <mark.lam@apple.com>
3441
3442         Property setters should not be called for bound arguments list entries.
3443         https://bugs.webkit.org/show_bug.cgi?id=165631
3444
3445         Reviewed by Filip Pizlo.
3446
3447         * stress/property-setters-should-not-be-called-for-bound-arguments-list-entries.js: Added.
3448
3449 2017-01-10  Skachkov Oleksandr  <gskachkov@gmail.com>
3450
3451         Calling async arrow function which is in a class's member function will cause error
3452         https://bugs.webkit.org/show_bug.cgi?id=166879
3453
3454         Reviewed by Saam Barati.
3455
3456         * stress/async-arrow-functions-lexical-binding-in-class.js: Added.
3457         (shouldBe):
3458         (shouldBeAsync):
3459         (BaseClass.prototype.baseClassValue):
3460         (BaseClass.prototype.get property):
3461         (BaseClass):
3462         (runSomething):
3463         (ChildClass.prototype.classValue):
3464         (ChildClass.prototype.get classProperty):
3465         (ChildClass.prototype.asyncValueExp):
3466         (ChildClass.prototype.asyncValueBody):
3467         (ChildClass.prototype.asyncThisPropExp):
3468         (ChildClass.prototype.asyncThisPropBody):
3469         (ChildClass.prototype.asyncThisPropInEvalExp):
3470         (ChildClass.prototype.asyncThisPropInEvalBody):
3471         (ChildClass.prototype.asyncThisValueExp):
3472         (ChildClass.prototype.asyncThisValueBody):
3473         (ChildClass.prototype.asyncThisValueInEvalExp):
3474         (ChildClass.prototype.asyncThisValueInEvalBody):
3475         (ChildClass):
3476         (ChildClass2):
3477         (ChildClass2.prototype.classValue):
3478         (ChildClass2.prototype.get classProperty):
3479         * stress/async-arrow-functions-lexical-super-binding.js:
3480
3481 2017-01-09  Yusuke Suzuki  <utatane.tea@gmail.com>
3482
3483         [JSC] Prototype dynamic-import
3484         https://bugs.webkit.org/show_bug.cgi?id=165724
3485
3486         Reviewed by Saam Barati.
3487
3488         * stress/import-basic.js: Added.
3489         (async.async.load):
3490         (async):
3491         (catch):
3492         * stress/import-from-eval.js: Added.
3493         (async):
3494         (catch):
3495         * stress/import-syntax.js: Added.
3496         (testSyntaxError):
3497         * stress/import-tests/cocoa.js: Added.
3498         (export.Cocoa):
3499         (export.hello):
3500         * stress/import-tests/multiple.js: Added.
3501         (export.result):
3502         * stress/import-tests/multiple2.js: Added.
3503         (export.ok):
3504         * stress/import-tests/should.js: Added.
3505         (export.shouldBe):
3506         (export.shouldThrow):
3507         * stress/modules-syntax-error.js:
3508
3509 2017-01-09  Commit Queue  <commit-queue@webkit.org>
3510
3511         Unreviewed, rolling out r210476.
3512         https://bugs.webkit.org/show_bug.cgi?id=166859
3513
3514         "4% JSBench regression" (Requested by keith_mi_ on #webkit).
3515
3516         Reverted changeset:
3517
3518         "Add a slice intrinsic to the DFG/FTL"
3519         https://bugs.webkit.org/show_bug.cgi?id=166707
3520         http://trac.webkit.org/changeset/210476
3521
3522 2017-01-06  Saam Barati  <sbarati@apple.com>
3523
3524         Add a slice intrinsic to the DFG/FTL
3525         https://bugs.webkit.org/show_bug.cgi?id=166707
3526
3527         Reviewed by Filip Pizlo.
3528
3529         * stress/array-slice-intrinsic.js: Added.
3530         (assert):
3531         (shallowEq):
3532         (runTest1):
3533         (runTest2):
3534         * stress/array-slice-jettison-on-constructor-change.js: Added.
3535         (assert):
3536         (runTest1):
3537         (runTest2):
3538         (addRandomProperties):
3539         (runTests):
3540         * stress/array-slice-osr-exit-2.js: Added.
3541         (assert):
3542         (Foo):
3543         (shallowEq):
3544         (runTest1):
3545         (runTest2):
3546         (addRandomProperties):
3547         (runTests):
3548         * stress/array-slice-osr-exit.js: Added.
3549         (assert):
3550         (Foo):
3551         (shallowEq):
3552         (runTest1):
3553         (runTest2):
3554         (addRandomProperties):
3555         (runTests):
3556
3557 2017-01-06  Michael Saboff  <msaboff@apple.com>
3558
3559         @putByValDirect in Array.of and Array.from overwrites non-writable/configurable properties
3560         https://bugs.webkit.org/show_bug.cgi?id=153486
3561
3562         Reviewed by Saam Barati.
3563
3564         New regression test.
3565
3566         * stress/regress-153486.js: Added.
3567         (shouldEqual):
3568         (makeUnwriteableUnconfigurableObject):
3569         (testArrayOf):
3570         (testArrayFrom):
3571         (runTest):
3572
3573 2016-12-30  Filip Pizlo  <fpizlo@apple.com>
3574
3575         DeferGC::~DeferGC should be super cheap
3576         https://bugs.webkit.org/show_bug.cgi?id=166626
3577
3578         Reviewed by Saam Barati.
3579
3580         * stress/slow-path-generator-updating-current-node-dfg.js:
3581         * stress/unshift-array-storage.js:
3582
3583 2017-01-04  JF Bastien  <jfbastien@apple.com>
3584
3585         WebAssembly: sections with the same name are allowed
3586         https://bugs.webkit.org/show_bug.cgi?id=166708
3587
3588         Reviewed by Saam Barati.
3589
3590         * wasm/self-test/test_BuilderJSON.js:
3591         (SectionsWithSameCustomName):
3592
3593 2017-01-04  Saam Barati  <sbarati@apple.com>
3594
3595         stress/spread-calling.js timing out on the bots
3596         https://bugs.webkit.org/show_bug.cgi?id=166689
3597         <rdar://problem/29779182>
3598
3599         Reviewed by Mark Lam.
3600
3601         * stress/spread-calling.js:
3602
3603 2017-01-04  JF Bastien  <jfbastien@apple.com>
3604
3605         WebAssembly JS API: add Module.sections
3606         https://bugs.webkit.org/show_bug.cgi?id=165159
3607         <rdar://problem/29760326>
3608
3609         Reviewed by Mark Lam.
3610
3611         As described here: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections
3612
3613         * wasm/Builder.js: allow custom sections to be duplicated
3614         * wasm/js-api/Module.customSection.js: Added.
3615         (assert.throws.WebAssembly.Module.prototype.customSections):
3616         (assert.eq):
3617
3618 2017-01-04  Saam Barati  <sbarati@apple.com>
3619
3620         We don't properly handle exceptions inside the nativeCallTrampoline macro in the LLInt
3621         https://bugs.webkit.org/show_bug.cgi?id=163720
3622
3623         Reviewed by Mark Lam.
3624
3625         * stress/bound-function-tail-call-with-exception.js: Added.
3626         (bar):
3627         (foo):
3628         (catch):
3629
3630 2017-01-03  JF Bastien  <jfbastien@apple.com>
3631
3632         WebAssembly JS API: check and test in-call / out-call values
3633         https://bugs.webkit.org/show_bug.cgi?id=164876
3634         <rdar://problem/29844107>
3635
3636         Reviewed by Saam Barati.
3637
3638         * wasm.yaml:
3639         * wasm/assert.js: add an assert for NaN comparison
3640         * wasm/fuzz/export-function.js: Added. Generate random wasm export
3641         signatures, and call them with random parameters.
3642         (const.paramExporter):
3643         (const.setBuffer):
3644         (const.types.generate):
3645         (generate):
3646         * wasm/js-api/export-arity.js: Added.
3647         (const.paramExporter): Test that mismatched arities when JS calls
3648         wasm follow the defined semantics: i32 is 0, f32 / f64 are NaN.
3649         https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects
3650         * wasm/js-api/export-void-is-undef.js: Added. Test that "void"
3651         wasm functions return "undefined" in JS.
3652
3653 2017-01-02  JF Bastien  <jfbastien@apple.com>
3654
3655         WebAssembly: handle and optimize wasm export → wasm import calls
3656         https://bugs.webkit.org/show_bug.cgi?id=165282
3657
3658         Reviewed by Saam Barati.
3659
3660         * wasm/Builder.js: Add a Proxy to Builder.js, which intercepts
3661         unknown property lookups. This creates way better error messages
3662         on typos than 'undefined is not a function', which happens
3663         semi-frequently as I typo opcode names (and which one is a typo is
3664         hard to find because we chain builders).
3665         (const._isValidValue):
3666         (get target):
3667         (const._importFunctionContinuation):
3668         (const._importMemoryContinuation):
3669         (const._importTableContinuation):
3670         (const._exportFunctionContinuation):
3671         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
3672         (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
3673         * wasm/LowLevelBinary.js: Add limited support for var{u}int64 (only the 32-bit values)
3674         (export.default.LowLevelBinary.prototype.varint32):
3675         (export.default.LowLevelBinary.prototype.varuint64):
3676         (export.default.LowLevelBinary.prototype.varint64):
3677         * wasm/function-tests/exceptions.js: update error message
3678         * wasm/function-tests/trap-load.js: update error message
3679         * wasm/function-tests/trap-store.js: update error message
3680         * wasm/js-api/wasm-to-wasm-bad-signature.js: Added. Test a bunch of bad wasm->wasm import signatures
3681         (const.makeImportee.signature.switch):
3682         (BadSignatureDropStartParams):
3683         * wasm/js-api/wasm-to-wasm.js: Added. Test 64-bit wasm->wasm import calls
3684         (const.callerModule):
3685         (const.calleeModule):
3686         (WasmToWasm):
3687
3688 2017-01-02  Saam Barati  <sbarati@apple.com>
3689
3690         WebAssembly: Some loads don't take into account the offset
3691         https://bugs.webkit.org/show_bug.cgi?id=166616
3692         <rdar://problem/29841541>
3693
3694         Reviewed by Keith Miller.
3695
3696         * wasm/function-tests/load-offset.js: Added.
3697
3698 2016-12-29  Saam Barati  <sbarati@apple.com>
3699
3700         WebAssembly: Rebase spec-tests now that wabt has been updated to produce certain kinds of invalid modules
3701         https://bugs.webkit.org/show_bug.cgi?id=166491
3702         <rdar://problem/29814999>
3703
3704         Reviewed by Yusuke Suzuki.
3705
3706         Based off these revisions:
3707         - spec: b055d01ea1dfdd7a5231ae779095435f836de97f
3708         - wabt: d0d44702c753f851b094615298a2f4d4e3c21035
3709
3710         The reason for the rebase is that wabt was updated to stop
3711         silently rejecting invalid modules. This was needed because
3712         some of the spec tests check to make sure that the module
3713         is invalid, but wabt was silently ignoring the errors and
3714         generating valid modules:
3715         https://github.com/WebAssembly/wabt/issues/256
3716
3717         * wasm.yaml:
3718         * wasm/spec-tests/address.wast.js:
3719         * wasm/spec-tests/binary.wast.js:
3720         * wasm/spec-tests/block.wast.js:
3721         * wasm/spec-tests/br.wast.js:
3722         * wasm/spec-tests/br_if.wast.js:
3723         * wasm/spec-tests/br_table.wast.js:
3724         * wasm/spec-tests/break-drop.wast.js:
3725         * wasm/spec-tests/call.wast.js:
3726         * wasm/spec-tests/call_indirect.wast.js:
3727         * wasm/spec-tests/comments.wast.js:
3728         * wasm/spec-tests/conversions.wast.js:
3729         * wasm/spec-tests/custom_section.wast.js:
3730         * wasm/spec-tests/endianness.wast.js:
3731         * wasm/spec-tests/exports.wast.js:
3732         * wasm/spec-tests/f32.wast.js:
3733       &nbs