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