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