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