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