Update test262 test expectation since r218082 makes new tests pass.
[WebKit.git] / JSTests / ChangeLog
1 2017-06-12  Saam Barati  <sbarati@apple.com>
2
3         Update test262 test expectation since r218082 makes new tests pass.
4
5         * test262.yaml:
6
7 2017-06-12  Saam Barati  <sbarati@apple.com>
8
9         We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms
10         https://bugs.webkit.org/show_bug.cgi?id=172957
11         <rdar://problem/32602704>
12
13         Reviewed by Filip Pizlo.
14
15         * stress/spec-empty-flows-through-cell-checks.js: Added.
16         (A):
17         (B):
18         (i.catch):
19
20 2017-06-12  Oleksandr Skachkov  <gskachkov@gmail.com>
21
22         We incorrectly allow escaped characters in keyword tokens
23         https://bugs.webkit.org/show_bug.cgi?id=171310
24
25         Reviewed by Yusuke Suzuki.
26
27         * stress/destructuring-assignment-syntax.js:
28         * stress/error-messages-for-in-operator-should-not-crash.js:
29         (catch):
30         * stress/reserved-word-with-escape.js:
31         (testSyntaxError.String.raw.v):
32         (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
33         (testSyntaxError.String.raw.a):
34         * JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc:
35
36 2017-06-09  Yusuke Suzuki  <utatane.tea@gmail.com>
37
38         [DFG] Add ArrayIndexOf intrinsic
39         https://bugs.webkit.org/show_bug.cgi?id=172421
40
41         Reviewed by Saam Barati.
42
43         * stress/array-indexof-array-prototype-change.js: Added.
44         (shouldBe):
45         (indexOfInt32):
46         * stress/array-indexof-have-a-bad-time-getter.js: Added.
47         (shouldBe):
48         (indexOfInt32):
49         * stress/array-indexof-have-a-bad-time.js: Added.
50         (shouldBe):
51         (indexOfInt32):
52         * stress/array-indexof-hole-with-prototype.js: Added.
53         (shouldBe):
54         (indexOf):
55         * stress/array-indexof-hole.js: Added.
56         (shouldBe):
57         (indexOf):
58         * stress/array-indexof-index.js: Added.
59         (shouldBe):
60         (indexOfInt32):
61         (indexOfDouble):
62         (indexOfString):
63         (indexOfObject):
64         (indexOfValue):
65         * stress/array-indexof-negative-index.js: Added.
66         (shouldBe):
67         (indexOfInt32):
68         (indexOfDouble):
69         (indexOfString):
70         (indexOfObject):
71         (indexOfValue):
72         * stress/array-indexof-non-int32-start-index.js: Added.
73         (shouldBe):
74         (indexOf):
75         (object.valueOf):
76         * stress/array-indexof-object-prototype-change.js: Added.
77         (shouldBe):
78         (indexOfInt32):
79         * stress/array-indexof-object.js: Added.
80         (shouldBe):
81         (indexOf):
82         * stress/array-indexof-original-array.js: Added.
83         (shouldBe):
84         (indexOfInt32):
85         * stress/array-indexof-string.js: Added.
86         (shouldBe):
87         (indexOf):
88         * stress/array-indexof-structure-change-convert.js: Added.
89         (shouldBe):
90         (indexOf):
91         * stress/array-indexof-structure-change.js: Added.
92         (shouldBe):
93         (indexOf):
94         * stress/array-indexof.js: Added.
95         (shouldBe):
96         (indexOf):
97
98 2017-06-11  Keith Miller  <keith_miller@apple.com>
99
100         TypedArray constructor with string shouldn't throw
101         https://bugs.webkit.org/show_bug.cgi?id=173181
102
103         Reviewed by JF Bastien.
104
105         We should be coercing primitive arguments to numbers in the various
106         TypedArray constructors.
107
108         * stress/typedarray-constructor.js:
109
110 2017-06-11  Yusuke Suzuki  <utatane.tea@gmail.com>
111
112         Unreviewed, update test results part 3
113         https://bugs.webkit.org/show_bug.cgi?id=173227
114
115         * microbenchmarks/regexp-prototype-search-observable-side-effects.js:
116
117 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
118
119         Unreviewed, update test results part 2
120         https://bugs.webkit.org/show_bug.cgi?id=173227
121
122         * test262.yaml:
123
124 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
125
126         Unreviewed, update test results
127         https://bugs.webkit.org/show_bug.cgi?id=173227
128
129         * microbenchmarks/string-prototype-search-observable-side-effects.js:
130         * test262.yaml:
131
132 2017-06-10  Yusuke Suzuki  <utatane.tea@gmail.com>
133
134         [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
135         https://bugs.webkit.org/show_bug.cgi?id=173227
136
137         Reviewed by Mark Lam.
138
139         Update the test.
140
141         * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
142
143 2017-06-08  Keith Miller  <keith_miller@apple.com>
144
145         WebAssembly: We should only create wrappers for functions that can be exported
146         https://bugs.webkit.org/show_bug.cgi?id=173088
147
148         Reviewed by Saam Barati.
149
150         Remove a bunch of old tests that are actually duplicates of the spec-tests and rely
151         on the old testWasmModuleFunctions api, which has been removed.
152
153         * wasm/function-tests/copysign.js: Removed.
154         * wasm/function-tests/ctz.js: Removed.
155         * wasm/function-tests/drop.js: Removed.
156         * wasm/function-tests/dumb-eq-if-then-else.js: Removed.
157         * wasm/function-tests/dumb-less-than-fallthrough.js: Removed.
158         * wasm/function-tests/dumb-less-than-ite.js: Removed.
159         * wasm/function-tests/eqz.js: Removed.
160         * wasm/function-tests/i32-trunc-s-f32.js: Removed.
161         * wasm/function-tests/i32-trunc-s-f64.js: Removed.
162         * wasm/function-tests/i32-trunc-u-f32.js: Removed.
163         * wasm/function-tests/i32-trunc-u-f64.js: Removed.
164         * wasm/function-tests/i64-trunc-s-f32.js: Removed.
165         * wasm/function-tests/i64-trunc-s-f64.js: Removed.
166         * wasm/function-tests/i64-trunc-u-f32.js: Removed.
167         * wasm/function-tests/i64-trunc-u-f64.js: Removed.
168         * wasm/function-tests/if-then-else-fallthrough.js: Removed.
169         * wasm/function-tests/if-then-fallthrough.js: Removed.
170         * wasm/function-tests/int-to-floating-point.js: Removed.
171         * wasm/function-tests/loop-mult.js:
172         * wasm/function-tests/loop-sum.js:
173         * wasm/function-tests/max.js: Removed.
174         * wasm/function-tests/min.js: Removed.
175         * wasm/function-tests/nearest.js: Removed.
176         * wasm/function-tests/nop.js: Removed.
177         * wasm/function-tests/popcnt.js: Removed.
178         * wasm/function-tests/ret5.js:
179         * wasm/function-tests/select.js: Removed.
180         * wasm/function-tests/tee-local.js: Removed.
181         * wasm/function-tests/trunc.js: Removed.
182
183 2017-06-07  JF Bastien  <jfbastien@apple.com>
184
185         WebAssembly: test imports and exports with 16-bit characters
186         https://bugs.webkit.org/show_bug.cgi?id=165977
187         <rdar://problem/29760130>
188
189         Reviewed by Saam Barati.
190
191         The output for import failure was improved, so many tests need to
192         be updated here. Only one has new tests as noted below.
193
194         * wasm/function-tests/memory-import-and-grow.js:
195         * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
196         (idxModule):
197         * wasm/js-api/global-error.js:
198         (new.Number):
199         (assert.throws):
200         * wasm/js-api/table.js:
201         (assert.throws):
202         (new.WebAssembly.Table):
203         * wasm/js-api/test_memory.js:
204         (test):
205         * wasm/js-api/wasm-to-wasm-bad-signature.js:
206         (BadSignatureDropStartParams.):
207         (BadSignatureDropStartParams):
208         (BadSignatureDropEndParams.):
209         (BadSignatureSwapParam.):
210         (BadSignatureRet.):
211         * wasm/js-api/web-assembly-instantiate.js:
212         (assert.asyncTest.async.test):
213         (assert.asyncTest):
214         * wasm/js-api/wrapper-function.js:
215         (return.new.WebAssembly.Module):
216
217 2017-06-07  Mark Lam  <mark.lam@apple.com>
218
219         Restrict the regress-173035.js test to only run on Darwin x86-64.
220         https://bugs.webkit.org/show_bug.cgi?id=173075
221
222         Reviewed by Saam Barati.
223
224         This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that
225         this test will require to succeed.  Here's an example of this failure:
226         https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio
227
228         Since the issue is due to allocation of a very large amount of memory, the test
229         will probably fail on iOS and other platforms as well.  Hence, we should just
230         skip this test for any platforms that is not Darwin x86-64.
231
232         * stress/regress-173035.js:
233
234 2017-06-07  Mark Lam  <mark.lam@apple.com>
235
236         ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
237         https://bugs.webkit.org/show_bug.cgi?id=168587
238
239         Not reviewed.
240
241         Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
242
243         * stress/test-finally.js:
244
245 2017-06-06  Mark Lam  <mark.lam@apple.com>
246
247         Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH.
248         https://bugs.webkit.org/show_bug.cgi?id=173035
249         <rdar://problem/32554593>
250
251         Reviewed by Geoffrey Garen and Filip Pizlo.
252
253         * stress/regress-173035.js: Added.
254
255 2017-06-06  Saam Barati  <sbarati@apple.com>
256
257         Make sure we restore SP when doing calls that could be to JS
258         https://bugs.webkit.org/show_bug.cgi?id=172946
259         <rdar://problem/32579026>
260
261         Reviewed by JF Bastien.
262
263         * wasm/function-tests/many-args-tail-call-sp-restored.js: Added.
264         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1):
265         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end):
266         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2):
267         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly):
268
269 2017-06-06  Joseph Pecoraro  <pecoraro@apple.com>
270
271         Unreviewed rollout r217807. Caused a test to crash.
272
273         * heapProfiler/class-names.js: Removed.
274         * heapProfiler/driver/driver.js:
275         (CheapHeapSnapshotNode):
276         (CheapHeapSnapshot):
277         (createCheapHeapSnapshot):
278         (HeapSnapshot):
279         (createHeapSnapshot):
280         * typeProfiler/inheritance.js:
281         (wrapper.A):
282         (wrapper.B):
283         (wrapper.C):
284         (wrapper):
285
286 2017-06-06  Filip Pizlo  <fpizlo@apple.com>
287
288         index out of bound in bytecodebasicblock
289         https://bugs.webkit.org/show_bug.cgi?id=172963
290
291         Reviewed by Saam Barati and Mark Lam.
292
293         * stress/dfg-call-class-constructor.js: Added.
294         (Foo):
295         (i.catch):
296
297 2017-06-05  Joseph Pecoraro  <pecoraro@apple.com>
298
299         Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
300         https://bugs.webkit.org/show_bug.cgi?id=172848
301         <rdar://problem/25709212>
302
303         Reviewed by Saam Barati.
304
305         * typeProfiler/inheritance.js:
306         Rewrite the test slightly for clarity. The hoisting was confusing.
307
308         * heapProfiler/class-names.js: Added.
309         (MyES5Class):
310         (MyES6Class):
311         (MyES6Subclass):
312         Test object types and improved class names.
313
314         * heapProfiler/driver/driver.js:
315         (CheapHeapSnapshotNode):
316         (CheapHeapSnapshot):
317         (createCheapHeapSnapshot):
318         (HeapSnapshot):
319         (createHeapSnapshot):
320         Update snapshot parsing from version 1 to version 2.
321
322 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
323
324         ASSERTION FAILED: "We should only declare a function as a lexically scoped variable in scopes where var declarations aren't allowed. ..." for function redeclaration with async function module export
325         https://bugs.webkit.org/show_bug.cgi?id=168844
326
327         Reviewed by Saam Barati.
328
329         * modules/async-function-export.js: Added.
330         (f):
331         (export.async.f):
332
333 2017-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>
334
335         ES2015 modules - Export default function hoisting
336         https://bugs.webkit.org/show_bug.cgi?id=170174
337
338         Reviewed by Saam Barati.
339
340         This issue itself is solved by fixing function declaration hoisting rules.
341         This patch just adds the specific test to modules tests to ensure the bug
342         is fixed.
343
344         * modules/export-default-function-hoisting.js: Added.
345         * modules/export-default-function-hoisting/cappuccino.js: Added.
346         (import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):
347         * modules/export-default-function-hoisting/cocoa.js: Added.
348         (export.default.drinkCocoa):
349
350 2017-06-01  Oleksandr Skachkov  <gskachkov@gmail.com>
351
352         Class Proxy can't be extended
353         https://bugs.webkit.org/show_bug.cgi?id=169040
354
355         Reviewed by Saam Barati.
356
357         Adding tests that check correctness of Proxy to ES6 `class`
358         Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849
359
360         * stress/proxy-class.js: Added.
361         (assert):
362         (throw.new.Error.SuperClass):
363         (throw.new.Error.A):
364         (throw.new.Error):
365
366 2017-05-31  Yusuke Suzuki  <utatane.tea@gmail.com>
367
368         [JSC] Implement String.prototype.concat in JS builtins
369         https://bugs.webkit.org/show_bug.cgi?id=172798
370
371         Reviewed by Sam Weinig.
372
373         * microbenchmarks/string-concat-convert.js: Added.
374         (test):
375         * microbenchmarks/string-concat-long-convert.js: Added.
376         (test):
377         * microbenchmarks/string-concat-long.js: Added.
378         (test):
379         * microbenchmarks/string-concat.js: Added.
380         (test):
381
382 2017-05-31  Oleksandr Skachkov  <gskachkov@gmail.com>
383
384         Rolling out: Prevent async methods named 'function'
385         https://bugs.webkit.org/show_bug.cgi?id=172776
386
387         Reviewed by Mark Lam.
388
389         * stress/async-await-syntax.js:
390         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
391         (testTopLevelAsyncAwaitSyntaxSloppyMode):
392         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
393         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
394         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
395
396 2017-05-31  Ryan Haddad  <ryanhaddad@apple.com>
397
398         Skip flaky JSC test stress/test-finally.js
399         https://bugs.webkit.org/show_bug.cgi?id=168587
400
401         Unreviewed test gardening.
402
403         * stress/test-finally.js:
404
405 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
406
407         Prevent async methods named 'function' in Object literal
408         https://bugs.webkit.org/show_bug.cgi?id=172660
409
410         Reviewed by Saam Barati.
411
412         * stress/async-await-syntax.js:
413         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
414
415 2017-05-30  Oleksandr Skachkov  <gskachkov@gmail.com>
416
417         ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
418         https://bugs.webkit.org/show_bug.cgi?id=171274
419
420         Reviewed by Saam Barati.
421
422         * stress/async-arrow-functions-lexical-binding-in-class.js:
423         (shouldBeAsync):
424         (shouldBeAsyncAndStoreBind):
425         (promise.new.Promise):
426         (ChildClass4):
427         (ChildClass4.prototype.classValue):
428         (ChildClass4.prototype.get classProperty):
429         * stress/async-arrow-functions-lexical-super-binding.js:
430         (A):
431         (const.childA1.new.prototype.var.f.async):
432         (const.childA1.new.var):
433         (const.childA1.new):
434         (const.childA2.new.prototype.var.f.async):
435         (const.childA2.new.var):
436         (const.childA2.new):
437         (const.childA3.new.prototype.var.f.async):
438         (const.childA3.new.var):
439         (const.childA3.new):
440         (try.childA4.new.prototype.var.f.async):
441         (try.childA4.new.var):
442         (try.childA4.new):
443         (catch):
444         (const.childA5.new.prototype.var.f.async):
445         (const.childA5.new.var):
446         (const.childA5.new):
447         (checkClass):
448         (checkClass.new.prototype.var.f.async):
449         (checkClass.new.var):
450         (checkClass.new):
451         (checkClass.new.prototype.method):
452         (checkClass.new.prototype.prop):
453
454 2017-05-27  Yusuke Suzuki  <utatane.tea@gmail.com>
455
456         [JSC] Map and Set constructors should have fast path for cloning
457         https://bugs.webkit.org/show_bug.cgi?id=172413
458
459         Reviewed by Saam Barati.
460
461         * stress/map-clone-instance-iterator-change.js: Added.
462         (shouldBe):
463         (map.Symbol.iterator):
464         * stress/map-clone-iterator-change.js: Added.
465         (shouldBe):
466         (Map.prototype.Symbol.iterator):
467         * stress/map-clone-next-change.js: Added.
468         (shouldBe):
469         (map.Symbol.iterator.__proto__.next):
470         * stress/map-clone.js: Added.
471         (shouldBe):
472         (Map.prototype):
473         * stress/map-inherit-set.js: Added.
474         (shouldBe):
475         (DerivedMap):
476         (set for):
477         * stress/set-clone-instance-iterator-change.js: Added.
478         (shouldBe):
479         (set Symbol.iterator):
480         * stress/set-clone-iterator-change.js: Added.
481         (shouldBe):
482         (set Set.prototype.Symbol.iterator):
483         * stress/set-clone-next-change.js: Added.
484         (shouldBe):
485         (set Symbol.iterator.__proto__.next):
486         * stress/set-clone.js: Added.
487         (shouldBe):
488         (set Set.prototype.add):
489         * stress/set-inherit-add.js: Added.
490         (shouldBe):
491         (DerivedSet.set add):
492
493 2017-05-26  Ryan Haddad  <ryanhaddad@apple.com>
494
495         Unreviewed, rolling out r217458.
496
497         This change caused 55 JSC test failures.
498
499         Reverted changeset:
500
501         "Date should use historical data if it's available."
502         https://bugs.webkit.org/show_bug.cgi?id=172592
503         http://trac.webkit.org/changeset/217458
504
505 2017-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>
506
507         Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
508         https://bugs.webkit.org/show_bug.cgi?id=167805
509
510         Reviewed by Saam Barati.
511
512         * modules/module-jit-reachability.js: Added.
513
514 2017-05-26  Oleksandr Skachkov  <gskachkov@gmail.com>
515
516         Prevent async methods named 'function'
517         https://bugs.webkit.org/show_bug.cgi?id=172598
518
519         Reviewed by Mark Lam.
520
521         * stress/async-await-syntax.js:
522         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
523         (testTopLevelAsyncAwaitSyntaxSloppyMode):
524         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
525         (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
526         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
527
528 2017-05-25  Keith Miller  <keith_miller@apple.com>
529
530         Date should use historical data if it's available.
531         https://bugs.webkit.org/show_bug.cgi?id=172592
532
533         Reviewed by Mark Lam.
534
535         Remove parts of the date tests that rely on the absence of
536         historical data in Date.
537
538         * mozilla/ecma/Date/15.9.5.31-1.js:
539         (getTestCases):
540         * mozilla/ecma/Date/15.9.5.35-1.js:
541         (getTestCases):
542
543 2017-05-25  Saam Barati  <sbarati@apple.com>
544
545         Our for-in optimization in the bytecode generator does its static analysis incorrectly
546         https://bugs.webkit.org/show_bug.cgi?id=172532
547         <rdar://problem/32369452>
548
549         Reviewed by Mark Lam.
550
551         * stress/for-in-invalidation-for-any-write.js: Added.
552         (assert):
553         (test):
554         (test.i):
555
556 2017-05-25  Mark Lam  <mark.lam@apple.com>
557
558         ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly.
559         https://bugs.webkit.org/show_bug.cgi?id=172548
560         <rdar://problem/31458393>
561
562         Reviewed by Filip Pizlo.
563
564         * stress/regress-172548.patch: Added.
565
566 2017-05-23  Saam Barati  <sbarati@apple.com>
567
568         We should not mmap zero bytes for a memory in Wasm
569         https://bugs.webkit.org/show_bug.cgi?id=172528
570         <rdar://problem/32257076>
571
572         Reviewed by Mark Lam.
573
574         * wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
575         (testMems):
576
577 2017-05-23  Saam Barati  <sbarati@apple.com>
578
579         CFGSimplificationPhase should not merge a block with itself
580         https://bugs.webkit.org/show_bug.cgi?id=172508
581         <rdar://problem/28424006>
582
583         Reviewed by Keith Miller.
584
585         * stress/dont-crash-in-cfg-simplification.js: Added.
586         (bar):
587         (baz):
588         (foo):
589
590 2017-05-20  Yusuke Suzuki  <utatane.tea@gmail.com>
591
592         [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
593         https://bugs.webkit.org/show_bug.cgi?id=172216
594
595         Reviewed by Saam Barati.
596
597         * stress/array-storage-get-by-val.js: Added.
598         (shouldBe):
599         (testOutOfBound):
600         (testInBound):
601         (testSlowPutOutOfBound):
602         (testSlowPutInBound):
603
604 2017-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>
605
606         Unreviewed, fix commented out tests
607         https://bugs.webkit.org/show_bug.cgi?id=172225
608
609         * stress/get-by-val-string.js:
610         (object.43):
611         (Hello):
612         (Hello.prototype.get 42):
613         (Hello.prototype.43):
614         (Derived):
615         (shouldBe):
616         (throw.new.Error): Deleted.
617
618 2017-05-21  Saam Barati  <sbarati@apple.com>
619
620         We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
621         https://bugs.webkit.org/show_bug.cgi?id=171041
622         <rdar://problem/32082516>
623
624         Reviewed by Yusuke Suzuki.
625
626         * stress/lexical-scoping-for-loop.js: Added.
627         (assert):
628         (test1):
629         (test2):
630         (test3):
631         (test4):
632         (test5):
633         (test6):
634         (let.test7):
635         (let.test8):
636         (let.test9):
637         (let.test10):
638         (let.test11):
639         (let.test12):
640
641 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
642
643         [JSC] Make get_by_val & string "499" to number 499
644         https://bugs.webkit.org/show_bug.cgi?id=172225
645
646         Reviewed by Saam Barati.
647
648         * stress/get-by-val-string.js: Added.
649         (shouldBe):
650         (shouldThrow):
651         (object.43):
652         (Hello):
653         (Hello.prototype.get 42):
654         (Hello.prototype.43):
655         (Derived):
656
657 2017-05-19  Mark Lam  <mark.lam@apple.com>
658
659         [Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
660         https://bugs.webkit.org/show_bug.cgi?id=172383
661         <rdar://problem/31418651>
662
663         Reviewed by Filip Pizlo.
664
665         * stress/regress-172383.js: Added.
666
667 2017-05-19  Ryan Haddad  <ryanhaddad@apple.com>
668
669         Unreviewed, rolling out r217156.
670
671         This change broke the iOS build.
672
673         Reverted changeset:
674
675         "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
676         result registers."
677         https://bugs.webkit.org/show_bug.cgi?id=172383
678         http://trac.webkit.org/changeset/217156
679
680 2017-05-19  Mark Lam  <mark.lam@apple.com>
681
682         Add missing exception check.
683         https://bugs.webkit.org/show_bug.cgi?id=172346
684         <rdar://problem/32289640>
685
686         Reviewed by Geoffrey Garen.
687
688         * stress/regress-172346.js: Added.
689
690 2017-05-19  Mark Lam  <mark.lam@apple.com>
691
692         DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
693         https://bugs.webkit.org/show_bug.cgi?id=172383
694         <rdar://problem/31418651>
695
696         Reviewed by Filip Pizlo.
697
698         * stress/regress-172383.js: Added.
699
700 2017-05-19  Filip Pizlo  <fpizlo@apple.com>
701
702         arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
703         https://bugs.webkit.org/show_bug.cgi?id=172369
704
705         Reviewed by Mark Lam.
706
707         * stress/undecided-concat.js: Added.
708
709 2017-05-19  Yusuke Suzuki  <utatane.tea@gmail.com>
710
711         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
712         https://bugs.webkit.org/show_bug.cgi?id=172098
713
714         Reviewed by Saam Barati.
715
716         * stress/check-sub-class.js: Added.
717         (shouldBe):
718         (shouldThrow):
719         (calling):
720         (array.forEach):
721         (i.array.forEach):
722
723 2017-05-18  JF Bastien  <jfbastien@apple.com>
724
725         WebAssembly: exports is a getter
726         https://bugs.webkit.org/show_bug.cgi?id=172129
727
728         Reviewed by Saam Barati.
729
730         Update test to reflect new semantics.
731
732         * wasm/js-api/test_basic_api.js:
733         (const.c.in.constructorProperties.switch):
734
735 2017-05-18  Saam Barati  <sbarati@apple.com>
736
737         Proxy's [[Get]] passes incorrect receiver
738         https://bugs.webkit.org/show_bug.cgi?id=164849
739         <rdar://problem/31767058>
740
741         Reviewed by Yusuke Suzuki.
742
743         * stress/proxy-get-set-correct-receiver.js: Added.
744         (assert):
745         (test):
746         (test.let.target.set prop):
747         (test.let.target.get prop):
748         (test.get let):
749         * stress/proxy-set.js:
750         (let.target.get x):
751         * stress/reflect-set-proxy-set.js:
752         (let.target.get x):
753         * stress/reflect-set-receiver-proxy-set.js:
754         (let.target.get x):
755
756 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
757
758         Constructor calls set this too early
759         https://bugs.webkit.org/show_bug.cgi?id=172302
760
761         Reviewed by Saam Barati.
762         
763         This tests all three kinds of constructs in BytecodeGenerator. All three were previously
764         wrong.
765
766         * stress/construct-overwritten-variable.js: Added.
767         (new.x.x):
768         * stress/construct-spread-overwritten-variable-2.js: Added.
769         (new.x.x):
770         * stress/construct-spread-overwritten-variable.js: Added.
771         (new.x.x):
772
773 2017-05-18  Saam Barati  <sbarati@apple.com>
774
775         WebAssembly: perform stack checks
776         https://bugs.webkit.org/show_bug.cgi?id=165546
777         <rdar://problem/29760307>
778
779         Reviewed by Filip Pizlo.
780
781         * wasm.yaml:
782         * wasm/function-tests/factorial.js:
783         * wasm/function-tests/float-sub.js:
784         * wasm/function-tests/stack-overflow.js: Added.
785         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
786         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
787         (assertOverflows.makeInstance):
788         (assertOverflows.makeInstance2):
789         (assertOverflows.assertThrows):
790         (assertOverflows):
791         (assertThrows.test.makeSignature):
792         (assertThrows.test.makeInstance):
793         (assertThrows.test):
794         (assertThrows):
795
796 2017-05-18  Keith Miller  <keith_miller@apple.com>
797
798         WebAssembly API: test with neutered inputs
799         https://bugs.webkit.org/show_bug.cgi?id=163899
800
801         Reviewed by JF Bastien.
802
803         * wasm/js-api/neutered-inputs.js: Added.
804         (const.testFunction):
805         (const.testConstructor):
806         * wasm/js-api/test_basic_api.js:
807         (const.c.in.constructorProperties.switch):
808
809 2017-05-18  Filip Pizlo  <fpizlo@apple.com>
810
811         DFG inlining should be hardened for the no-result case
812         https://bugs.webkit.org/show_bug.cgi?id=172290
813
814         Reviewed by Saam Barati.
815
816         * stress/array-constructor-no-result.js: Added.
817         (foo):
818         * stress/pow-no-result.js: Added.
819         (foo):
820
821 2017-05-18  Commit Queue  <commit-queue@webkit.org>
822
823         Unreviewed, rolling out r217031, r217032, and r217037.
824         https://bugs.webkit.org/show_bug.cgi?id=172293
825
826         cause linking errors in Windows (Requested by yusukesuzuki on
827         #webkit).
828
829         Reverted changesets:
830
831         "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
832         https://bugs.webkit.org/show_bug.cgi?id=172098
833         http://trac.webkit.org/changeset/217031
834
835         "Unreviewed, rebaseline for newly added ClassInfo"
836         https://bugs.webkit.org/show_bug.cgi?id=172098
837         http://trac.webkit.org/changeset/217032
838
839         "Unreviewed, fix debug and non-JIT build"
840         https://bugs.webkit.org/show_bug.cgi?id=172098
841         http://trac.webkit.org/changeset/217037
842
843 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
844
845         [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
846         https://bugs.webkit.org/show_bug.cgi?id=172098
847
848         Reviewed by Saam Barati.
849
850         * stress/check-sub-class.js: Added.
851         (shouldBe):
852         (shouldThrow):
853         (calling):
854         (array.forEach):
855         (i.array.forEach):
856
857 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
858
859         Unreviewed, address mlam's review feedback.
860
861         * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
862
863 2017-05-17  Saam Barati  <sbarati@apple.com>
864
865         We don't do context switches for Wasm->Wasm call indirect
866         https://bugs.webkit.org/show_bug.cgi?id=172188
867         <rdar://problem/32231828>
868
869         Reviewed by Keith Miller.
870
871         * wasm/function-tests/context-switch.js: Added.
872         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
873         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
874         (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
875         (makeInstance):
876         (makeInstance2):
877         (assert.eq.makeInstance):
878         (assert.eq.makeInstance2):
879         (assert.eq):
880
881 2017-05-17  Filip Pizlo  <fpizlo@apple.com>
882
883         JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
884         https://bugs.webkit.org/show_bug.cgi?id=172208
885
886         Reviewed by Saam Barati.
887
888         * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
889         (foo):
890         (bar):
891         (baz):
892
893 2017-05-16  Yusuke Suzuki  <utatane.tea@gmail.com>
894
895         [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
896         https://bugs.webkit.org/show_bug.cgi?id=172115
897
898         Reviewed by Saam Barati.
899
900         * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
901         (shouldBe):
902         (unknown):
903         (readWord1):
904         (readWord2):
905         (readWord3):
906         (readWord4):
907
908 2017-05-16  JF Bastien  <jfbastien@apple.com>
909
910         WebAssembly: add memory fuzzer
911         https://bugs.webkit.org/show_bug.cgi?id=169976
912         <rdar://problem/31965328>
913
914         Reviewed by Keith Miller.
915
916         * wasm/fuzz/memory.js: Added.
917         (const.insert):
918         (const.action.string_appeared_here):
919         (const.performAction):
920         (catch):
921
922 2017-05-16  JF Bastien  <jfbastien@apple.com>
923
924         WebAssembly: validate load / store alignment
925         https://bugs.webkit.org/show_bug.cgi?id=168836
926         <rdar://problem/31965349>
927
928         Reviewed by Keith Miller.
929
930         * wasm/WASM.js: fix regular expression greed
931         * wasm/function-tests/memory-alignment.js: Added.
932         (const.op.of.WASM.opcodes):
933         * wasm/wasm.json: fix formatting
934
935 2017-05-15  Mark Lam  <mark.lam@apple.com>
936
937         Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
938         https://bugs.webkit.org/show_bug.cgi?id=172147
939
940         Rubber-stamped by Saam Barati.
941
942         * stress/object-rest-deconstruct.js: Removed.
943         * stress/object-spread.js: Removed.
944
945 2017-05-11  JF Bastien  <jfbastien@apple.com>
946
947         WebAssembly: stop supporting 0xD
948         https://bugs.webkit.org/show_bug.cgi?id=168788
949         <rdar://problem/31880922>
950
951         Reviewed by Saam Barati.
952
953         Test that only version 1 is supported.
954
955         * wasm/js-api/version.js: Added.
956
957 2017-05-10  JF Bastien  <jfbastien@apple.com>
958
959         WebAssemby: builder doesn't do Memory section maximum correctly
960         https://bugs.webkit.org/show_bug.cgi?id=171931
961
962         Reviewed by Keith Miller.
963
964         * wasm/Builder.js:
965         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
966         * wasm/Builder_WebAssemblyBinary.js:
967         (const.emitters.Memory):
968         * wasm/function-tests/memory-grow-invalid.js: Added.
969
970 2017-05-10  JF Bastien  <jfbastien@apple.com>
971
972         WebAssembly: support name section
973         https://bugs.webkit.org/show_bug.cgi?id=171263
974
975         Reviewed by Keith Miller.
976
977         * wasm/function-tests/nameSection.js: Added.
978         (const.compile):
979         * wasm/function-tests/nameSection.wasm: Added.
980         * wasm/function-tests/stack-trace.js: Update format
981
982 2017-05-10  Filip Pizlo  <fpizlo@apple.com>
983
984         Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
985         https://bugs.webkit.org/show_bug.cgi?id=171801
986
987         Reviewed by Michael Saboff.
988         
989         These tests used to crash. The prefix and postfix tests cover different paths, except
990         postfix-ignored goes down the same path as prefix due to an optimization.
991
992         * stress/for-in-postfix-ignored-index.js: Added.
993         (foo):
994         * stress/for-in-postfix-index.js: Added.
995         (foo):
996         * stress/for-in-prefix-index.js: Added.
997         (foo):
998
999 2017-05-08  Mark Lam  <mark.lam@apple.com>
1000
1001         op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
1002         https://bugs.webkit.org/show_bug.cgi?id=171786
1003         <rdar://problem/32051023>
1004
1005         Reviewed by Saam Barati.
1006
1007         * stress/bug-171786.js: Added.
1008
1009 2017-05-06  Oleksandr Skachkov  <gskachkov@gmail.com>
1010
1011         [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
1012         https://bugs.webkit.org/show_bug.cgi?id=171543
1013
1014         Reviewed by Saam Barati.
1015
1016         * stress/arrowfunction-lexical-bind-supercall-4.js:
1017         (J):
1018         (K):
1019
1020 2017-05-05  Saam Barati  <sbarati@apple.com>
1021
1022         putDirectIndex does not properly do defineOwnProperty
1023         https://bugs.webkit.org/show_bug.cgi?id=171591
1024         <rdar://problem/31735695>
1025
1026         Reviewed by Geoffrey Garen.
1027
1028         * stress/array-prototype-splice-making-typed-array.js:
1029         (test):
1030         * stress/array-species-config-array-constructor.js:
1031         (shouldThrow):
1032         (test):
1033         * stress/put-direct-index-broken-2.js: Added.
1034         (assert):
1035         (test):
1036         (makeLengthWritable):
1037         (set get restoreOldDesc):
1038         * stress/put-direct-index-broken.js: Added.
1039         (whatToTest):
1040         (tryRunning):
1041         (tryItOut):
1042         * stress/put-indexed-getter-setter.js: Added.
1043         (foo.X.prototype.set 7):
1044         (foo.X.prototype.get 7):
1045         (foo.X):
1046         (foo):
1047
1048 2017-05-04  Yusuke Suzuki  <utatane.tea@gmail.com>
1049
1050         [JSC] Math unary functions should be handled by DFG
1051         https://bugs.webkit.org/show_bug.cgi?id=171269
1052
1053         Reviewed by Saam Barati.
1054
1055         * stress/arith-acos-on-various-types.js: Added.
1056         (let.validInputTypedTestCases.validInputTestCases.map):
1057         (isIdentical):
1058         (opaqueACosNoArgument):
1059         (testNoArgument):
1060         (opaqueAllTypesACos):
1061         (testAllTypesCall):
1062         (testSingleTypeCall):
1063         (testConstant):
1064         (opaqueACosForSideEffects):
1065         (testSideEffect.let.testObject.valueOf):
1066         (testSideEffect):
1067         (opaqueACosForCSE):
1068         (testCSE.let.testObject.valueOf):
1069         (testCSE):
1070         (opaqueACosForDCE):
1071         (testDCE.let.testObject.valueOf):
1072         (testDCE):
1073         (testException.opaqueACosWithException):
1074         (testException):
1075         * stress/arith-acosh-on-various-types.js: Added.
1076         (let.validInputTypedTestCases.validInputTestCases.map):
1077         (isIdentical):
1078         (opaqueACoshNoArgument):
1079         (testNoArgument):
1080         (opaqueAllTypesACosh):
1081         (testAllTypesCall):
1082         (testSingleTypeCall):
1083         (testConstant):
1084         (opaqueACoshForSideEffects):
1085         (testSideEffect.let.testObject.valueOf):
1086         (testSideEffect):
1087         (opaqueACoshForCSE):
1088         (testCSE.let.testObject.valueOf):
1089         (testCSE):
1090         (opaqueACoshForDCE):
1091         (testDCE.let.testObject.valueOf):
1092         (testDCE):
1093         (testException.opaqueACoshWithException):
1094         (testException):
1095         * stress/arith-asin-on-various-types.js: Added.
1096         (let.validInputTypedTestCases.validInputTestCases.map):
1097         (isIdentical):
1098         (opaqueASinNoArgument):
1099         (testNoArgument):
1100         (opaqueAllTypesASin):
1101         (testAllTypesCall):
1102         (testSingleTypeCall):
1103         (testConstant):
1104         (opaqueASinForSideEffects):
1105         (testSideEffect.let.testObject.valueOf):
1106         (testSideEffect):
1107         (opaqueASinForCSE):
1108         (testCSE.let.testObject.valueOf):
1109         (testCSE):
1110         (opaqueASinForDCE):
1111         (testDCE.let.testObject.valueOf):
1112         (testDCE):
1113         (testException.opaqueASinWithException):
1114         (testException):
1115         * stress/arith-asinh-on-various-types.js: Added.
1116         (let.validInputTypedTestCases.validInputTestCases.map):
1117         (isIdentical):
1118         (opaqueASinhNoArgument):
1119         (testNoArgument):
1120         (opaqueAllTypesASinh):
1121         (testAllTypesCall):
1122         (testSingleTypeCall):
1123         (testConstant):
1124         (opaqueASinhForSideEffects):
1125         (testSideEffect.let.testObject.valueOf):
1126         (testSideEffect):
1127         (opaqueASinhForCSE):
1128         (testCSE.let.testObject.valueOf):
1129         (testCSE):
1130         (opaqueASinhForDCE):
1131         (testDCE.let.testObject.valueOf):
1132         (testDCE):
1133         (testException.opaqueASinhWithException):
1134         (testException):
1135         * stress/arith-atan-on-various-types.js: Added.
1136         (let.validInputTypedTestCases.validInputTestCases.map):
1137         (isIdentical):
1138         (opaqueATanNoArgument):
1139         (testNoArgument):
1140         (opaqueAllTypesATan):
1141         (testAllTypesCall):
1142         (testSingleTypeCall):
1143         (testConstant):
1144         (opaqueATanForSideEffects):
1145         (testSideEffect.let.testObject.valueOf):
1146         (testSideEffect):
1147         (opaqueATanForCSE):
1148         (testCSE.let.testObject.valueOf):
1149         (testCSE):
1150         (opaqueATanForDCE):
1151         (testDCE.let.testObject.valueOf):
1152         (testDCE):
1153         (testException.opaqueATanWithException):
1154         (testException):
1155         * stress/arith-atanh-on-various-types.js: Added.
1156         (let.validInputTypedTestCases.validInputTestCases.map):
1157         (isIdentical):
1158         (opaqueATanhNoArgument):
1159         (testNoArgument):
1160         (opaqueAllTypesATanh):
1161         (testAllTypesCall):
1162         (testSingleTypeCall):
1163         (testConstant):
1164         (opaqueATanhForSideEffects):
1165         (testSideEffect.let.testObject.valueOf):
1166         (testSideEffect):
1167         (opaqueATanhForCSE):
1168         (testCSE.let.testObject.valueOf):
1169         (testCSE):
1170         (opaqueATanhForDCE):
1171         (testDCE.let.testObject.valueOf):
1172         (testDCE):
1173         (testException.opaqueATanhWithException):
1174         (testException):
1175         * stress/arith-cbrt-on-various-types.js: Added.
1176         (let.validInputTypedTestCases.validInputTestCases.map):
1177         (isIdentical):
1178         (opaqueCbrtNoArgument):
1179         (testNoArgument):
1180         (opaqueAllTypesCbrt):
1181         (testAllTypesCall):
1182         (testSingleTypeCall):
1183         (testConstant):
1184         (opaqueCbrtForSideEffects):
1185         (testSideEffect.let.testObject.valueOf):
1186         (testSideEffect):
1187         (opaqueCbrtForCSE):
1188         (testCSE.let.testObject.valueOf):
1189         (testCSE):
1190         (opaqueCbrtForDCE):
1191         (testDCE.let.testObject.valueOf):
1192         (testDCE):
1193         (testException.opaqueCbrtWithException):
1194         (testException):
1195         * stress/arith-cosh-on-various-types.js: Added.
1196         (let.validInputTypedTestCases.validInputTestCases.map):
1197         (isIdentical):
1198         (opaqueCoshNoArgument):
1199         (testNoArgument):
1200         (opaqueAllTypesCosh):
1201         (testAllTypesCall):
1202         (testSingleTypeCall):
1203         (testConstant):
1204         (opaqueCoshForSideEffects):
1205         (testSideEffect.let.testObject.valueOf):
1206         (testSideEffect):
1207         (opaqueCoshForCSE):
1208         (testCSE.let.testObject.valueOf):
1209         (testCSE):
1210         (opaqueCoshForDCE):
1211         (testDCE.let.testObject.valueOf):
1212         (testDCE):
1213         (testException.opaqueCoshWithException):
1214         (testException):
1215         * stress/arith-expm1-on-various-types.js: Added.
1216         (let.validInputTypedTestCases.validInputTestCases.map):
1217         (isIdentical):
1218         (opaqueExpm1NoArgument):
1219         (testNoArgument):
1220         (opaqueAllTypesExpm1):
1221         (testAllTypesCall):
1222         (testSingleTypeCall):
1223         (testConstant):
1224         (opaqueExpm1ForSideEffects):
1225         (testSideEffect.let.testObject.valueOf):
1226         (testSideEffect):
1227         (opaqueExpm1ForCSE):
1228         (testCSE.let.testObject.valueOf):
1229         (testCSE):
1230         (opaqueExpm1ForDCE):
1231         (testDCE.let.testObject.valueOf):
1232         (testDCE):
1233         (testException.opaqueExpm1WithException):
1234         (testException):
1235         * stress/arith-log10-on-various-types.js: Added.
1236         (let.validInputTypedTestCases.validInputTestCases.map):
1237         (isIdentical):
1238         (opaqueLog10NoArgument):
1239         (testNoArgument):
1240         (opaqueAllTypesLog10):
1241         (testAllTypesCall):
1242         (testSingleTypeCall):
1243         (testConstant):
1244         (opaqueLog10ForSideEffects):
1245         (testSideEffect.let.testObject.valueOf):
1246         (testSideEffect):
1247         (opaqueLog10ForCSE):
1248         (testCSE.let.testObject.valueOf):
1249         (testCSE):
1250         (opaqueLog10ForDCE):
1251         (testDCE.let.testObject.valueOf):
1252         (testDCE):
1253         (testException.opaqueLog10WithException):
1254         (testException):
1255         * stress/arith-log2-on-various-types.js: Added.
1256         (let.validInputTypedTestCases.validInputTestCases.map):
1257         (isIdentical):
1258         (opaqueLog2NoArgument):
1259         (testNoArgument):
1260         (opaqueAllTypesLog2):
1261         (testAllTypesCall):
1262         (testSingleTypeCall):
1263         (testConstant):
1264         (opaqueLog2ForSideEffects):
1265         (testSideEffect.let.testObject.valueOf):
1266         (testSideEffect):
1267         (opaqueLog2ForCSE):
1268         (testCSE.let.testObject.valueOf):
1269         (testCSE):
1270         (opaqueLog2ForDCE):
1271         (testDCE.let.testObject.valueOf):
1272         (testDCE):
1273         (testException.opaqueLog2WithException):
1274         (testException):
1275         * stress/arith-sinh-on-various-types.js: Added.
1276         (let.validInputTypedTestCases.validInputTestCases.map):
1277         (isIdentical):
1278         (opaqueSinhNoArgument):
1279         (testNoArgument):
1280         (opaqueAllTypesSinh):
1281         (testAllTypesCall):
1282         (testSingleTypeCall):
1283         (testConstant):
1284         (opaqueSinhForSideEffects):
1285         (testSideEffect.let.testObject.valueOf):
1286         (testSideEffect):
1287         (opaqueSinhForCSE):
1288         (testCSE.let.testObject.valueOf):
1289         (testCSE):
1290         (opaqueSinhForDCE):
1291         (testDCE.let.testObject.valueOf):
1292         (testDCE):
1293         (testException.opaqueSinhWithException):
1294         (testException):
1295         * stress/arith-tan-on-various-types.js:
1296         (isIdentical):
1297         * stress/arith-tanh-on-various-types.js: Added.
1298         (let.validInputTypedTestCases.validInputTestCases.map):
1299         (isIdentical):
1300         (opaqueTanhNoArgument):
1301         (testNoArgument):
1302         (opaqueAllTypesTanh):
1303         (testAllTypesCall):
1304         (testSingleTypeCall):
1305         (testConstant):
1306         (opaqueTanhForSideEffects):
1307         (testSideEffect.let.testObject.valueOf):
1308         (testSideEffect):
1309         (opaqueTanhForCSE):
1310         (testCSE.let.testObject.valueOf):
1311         (testCSE):
1312         (opaqueTanhForDCE):
1313         (testDCE.let.testObject.valueOf):
1314         (testDCE):
1315         (testException.opaqueTanhWithException):
1316         (testException):
1317
1318 2017-05-03  Keith Miller  <keith_miller@apple.com>
1319
1320         Array.prototype.sort should also allow a null comparator
1321         https://bugs.webkit.org/show_bug.cgi?id=171621
1322
1323         Reviewed by Michael Saboff.
1324
1325         Add test to make it less likely we revert to the incompatable behavior.
1326         Also, fix now incorrect tests.
1327
1328         * ChakraCore/test/Array/array_sort.baseline-jsc:
1329         * stress/array-sort-bad-comparator.js:
1330         (test):
1331         * stress/sort-null-comparator.js: Added.
1332         (assertEq):
1333
1334 2017-05-03  Caitlin Potter  <caitp@igalia.com>
1335
1336         [JSC] remove unneeded asyncFunctionTests.yaml
1337         https://bugs.webkit.org/show_bug.cgi?id=171611
1338
1339         Reviewed by Yusuke Suzuki.
1340
1341         Async functions have shipped, and those tests are run as part of
1342         JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
1343
1344         * asyncFunctionTests.yaml: Removed.
1345         * stress/async-await-long-loop.js:
1346         * stress/async-await-throw-loop.js:
1347
1348 2017-05-03  Keith Miller  <keith_miller@apple.com>
1349
1350         Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
1351         https://bugs.webkit.org/show_bug.cgi?id=47825
1352
1353         Reviewed by Saam Barati.
1354
1355         * stress/sorting-boolean-result-comparator.js: Added.
1356         (checkArray):
1357
1358 2017-05-02  David Kilzer  <ddkilzer@apple.com>
1359
1360         check-webkit-style should keep JavaScript test functions in sync
1361         <https://webkit.org/b/171424>
1362
1363         Reviewed by Joseph Pecoraro.
1364
1365         This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
1366         and shouldThrow() in sync with other copies of these methods.
1367
1368         * stress/resources/standalone-pre.js:
1369         (shouldBe): Fix whitespace.  Prefix 'exception' and 'quiet'
1370         variables with underscore.
1371         (shouldThrow): Fix whitespace.
1372
1373 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1374
1375         We initialize functions too early in an eval
1376         https://bugs.webkit.org/show_bug.cgi?id=161099
1377
1378         Reviewed by Saam Barati.
1379
1380         * stress/eval-func-decl-with-let-const-class.js: Added.
1381
1382 2017-04-30  Oleksandr Skachkov  <gskachkov@gmail.com>
1383
1384         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
1385         https://bugs.webkit.org/show_bug.cgi?id=163208
1386
1387         Reviewed by Saam Barati.
1388
1389         * stress/eval-func-decl-block-scoping-reassign.js: Added.
1390         (assert):
1391         (throw.new.Error.f):
1392         (throw.new.Error):
1393         * stress/eval-func-decl-block-with-remove.js: Added.
1394         (assert):
1395         (foo.boo):
1396         (foo):
1397         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
1398         (assert):
1399         (assertThrow):
1400         (foo):
1401         (boo):
1402         (joo):
1403         (koo):
1404         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
1405         (assert):
1406         (assertThrow):
1407         (foo):
1408         (boo):
1409         (hoo):
1410         (joo):
1411         (koo):
1412         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
1413         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
1414         (assert):
1415         (assertThrow):
1416         (foo):
1417         (boo):
1418         (goo):
1419         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
1420         (assert):
1421         (assertThrow):
1422         (foo):
1423         (boo):
1424         (boo.let.val2):
1425         (boo.let.val3):
1426         * stress/eval-func-decl-in-frozen-global.js: Added.
1427         (assert):
1428         (assertThrow):
1429         (throw.new.Error):
1430         (Object.freeze):
1431         * stress/eval-func-decl-in-global-of-eval.js: Added.
1432         (assert):
1433         (assertThrow):
1434         (bar):
1435         (baz):
1436         (foobar):
1437         * stress/eval-func-decl-in-global.js: Added.
1438         (assert):
1439         (assertThrow):
1440         * stress/eval-func-decl-in-if.js: Added.
1441         (assert):
1442         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
1443         (assert):
1444         (assertThrow):
1445         (foo):
1446         (boo):
1447         (foobar):
1448         (hoo):
1449         (joo):
1450         (koo):
1451         (loo):
1452         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
1453         (assert):
1454         (assertThrow):
1455         (foo):
1456         (boo):
1457         (goo):
1458         * stress/variable-under-tdz-eval-tricky.js:
1459         (assert):
1460         * test262.yaml:
1461
1462 2017-04-27  Mark Lam  <mark.lam@apple.com>
1463
1464         Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
1465         https://bugs.webkit.org/show_bug.cgi?id=171404
1466         <rdar://problem/31876178>
1467
1468         Reviewed by Saam Barati.
1469
1470         * stress/js-fixed-array-out-of-memory.js: Added.
1471
1472 2017-04-27  David Kilzer  <ddkilzer@apple.com>
1473
1474         Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
1475         <https://webkit.org/b/171362>
1476         <rdar://problem/31867686>
1477
1478         Reviewed by Joseph Pecoraro.
1479
1480         * stress/resources/standalone-pre.js:
1481         (shouldBe):
1482         (shouldNotThrow):
1483         (shouldThrow):
1484         - Update shouldBe() to accept anonymous function arguments.
1485           (The shouldNotBe() function was never copied over.)
1486         - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
1487           function arguments (which were missed in r202609 for Bug
1488           159232).
1489
1490 2017-04-27  Yusuke Suzuki  <utatane.tea@gmail.com>
1491
1492         [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
1493         https://bugs.webkit.org/show_bug.cgi?id=171262
1494
1495         Reviewed by Saam Barati.
1496
1497         * stress/spread-outer-create-rest.js: Added.
1498         (assert):
1499         (foo):
1500         (bar):
1501         (baz):
1502
1503 2017-04-26  Saam Barati  <sbarati@apple.com>
1504
1505         Print Wasm function index in stack trace
1506         https://bugs.webkit.org/show_bug.cgi?id=171349
1507
1508         Reviewed by JF Bastien.
1509
1510         * wasm/function-tests/stack-trace.js: Added.
1511         (import.Builder.from.string_appeared_here.assert):
1512         (let.imp):
1513         * wasm/function-tests/trap-after-cross-instance-call.js:
1514         (wasmFrameCountFromError):
1515         * wasm/function-tests/trap-load-2.js:
1516         (wasmFrameCountFromError):
1517         * wasm/function-tests/trap-load.js:
1518         (wasmFrameCountFromError):
1519
1520 2017-04-26  Saam Barati  <sbarati@apple.com>
1521
1522         ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
1523         https://bugs.webkit.org/show_bug.cgi?id=170924
1524         <rdar://problem/31721052>
1525
1526         Reviewed by Mark Lam.
1527
1528         * stress/error-message-for-function-base-not-found.js: Added.
1529         (assert):
1530         (throw.new.Error):
1531         * stress/error-messages-for-in-operator-should-not-crash.js: Added.
1532         (catch):
1533
1534 2017-04-26  Keith Miller  <keith_miller@apple.com>
1535
1536         WebAssembly: Implement tier up
1537         https://bugs.webkit.org/show_bug.cgi?id=170134
1538
1539         Reviewed by Filip Pizlo.
1540
1541         * wasm/function-tests/trap-after-cross-instance-call.js:
1542         * wasm/tier-up/js-to-wasm.js: Added.
1543         (async.test):
1544         * wasm/tier-up/wasm-to-wasm.js: Added.
1545         (async.test):
1546
1547 2017-04-26  Caitlin Potter  <caitp@igalia.com>
1548
1549         [JSC] Object.keys() must discard property names with no PropertyDescriptor
1550         https://bugs.webkit.org/show_bug.cgi?id=171291
1551
1552         Reviewed by Yusuke Suzuki.
1553
1554         * es6/Proxy_ownKeys_duplicates.js:
1555         * stress/proxy-own-keys.js:
1556         (let.handler.getOwnPropertyDescriptor):
1557         (let.handler.ownKeys):
1558
1559 2017-04-25  Commit Queue  <commit-queue@webkit.org>
1560
1561         Unreviewed, rolling out r215476.
1562         https://bugs.webkit.org/show_bug.cgi?id=171304
1563
1564         "It broke JSBench" (Requested by saamyjoon on #webkit).
1565
1566         Reverted changeset:
1567
1568         "[ES6]. Implement Annex B.3.3 function hoisting rules for
1569         eval"
1570         https://bugs.webkit.org/show_bug.cgi?id=163208
1571         http://trac.webkit.org/changeset/215476
1572
1573 2017-04-25  Saam Barati  <sbarati@apple.com>
1574
1575         JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
1576         https://bugs.webkit.org/show_bug.cgi?id=171150
1577         <rdar://problem/31771880>
1578
1579         Reviewed by Sam Weinig.
1580
1581         * stress/spread-optimized-properly.js: Added.
1582         (assert):
1583         (test):
1584         (shallowEq):
1585         (makeArrayIterator):
1586         (test.bar):
1587         (test.callback):
1588         (test.arr.__proto__.Symbol.iterator):
1589         (test.arr.Symbol.iterator):
1590         (test.get bar):
1591         (test.hackedNext):
1592         (test.test):
1593         (test.):
1594
1595 2017-04-25  Mark Lam  <mark.lam@apple.com>
1596
1597         [Follow up] Array.prototype.slice() should ensure that end >= begin.
1598         https://bugs.webkit.org/show_bug.cgi?id=170989
1599         <rdar://problem/31705652>
1600
1601         Not reviewed.
1602
1603         Follow up to rename a test file that was accidentally named wrongly.
1604
1605         * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
1606         * stress/regress-170989.patch: Removed.
1607
1608 2017-04-25  Mark Lam  <mark.lam@apple.com>
1609
1610         Array.prototype.slice() should ensure that end >= begin.
1611         https://bugs.webkit.org/show_bug.cgi?id=170989
1612         <rdar://problem/31705652>
1613
1614         Reviewed by Saam Barati.
1615
1616         * stress/regress-170989.patch: Added.
1617
1618 2017-04-25  Mark Lam  <mark.lam@apple.com>
1619
1620         Local CSE wrongly CSEs array accesses with different result types.
1621         https://bugs.webkit.org/show_bug.cgi?id=170990
1622         <rdar://problem/31705945>
1623
1624         Reviewed by Saam Barati.
1625
1626         * stress/regress-170990.js: Added.
1627
1628 2017-04-25  Yusuke Suzuki  <utatane.tea@gmail.com>
1629
1630         WebAssembly: exporting a property with a name that's a number doesn't work
1631         https://bugs.webkit.org/show_bug.cgi?id=168857
1632
1633         Reviewed by JF Bastien.
1634
1635         r213453 allows Wasm instances to expose indexed properties. We activate the tests.
1636
1637         * wasm/js-api/test_Instance.js:
1638         (ExportedNumber):
1639
1640 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
1641
1642         test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
1643         https://bugs.webkit.org/show_bug.cgi?id=171190
1644
1645         Reviewed by Saam Barati.
1646
1647         * stress/async-await-syntax.js:
1648         * test262.yaml:
1649
1650 2017-04-24  Yusuke Suzuki  <utatane.tea@gmail.com>
1651
1652         [JSC] Use JSFixedArray directly when using call_varargs
1653         https://bugs.webkit.org/show_bug.cgi?id=171057
1654
1655         Reviewed by Saam Barati.
1656
1657         * stress/spread-capture-rest.js: Added.
1658         (shouldBe):
1659         (capture):
1660         (a):
1661         (b):
1662         * stress/spread-multi-layers.js: Added.
1663         (shouldBe):
1664         (a):
1665         (b):
1666         (c):
1667         (d):
1668         * stress/spread-non-varargs.js: Added.
1669         (shouldBe):
1670         (a):
1671         (b):
1672
1673 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
1674
1675         test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
1676         https://bugs.webkit.org/show_bug.cgi?id=170897
1677
1678         Reviewed by Saam Barati.
1679
1680         * test262.yaml:
1681
1682 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
1683
1684         Address some FIXMEs in JavaScript tests for bugs that have been fixed
1685         https://bugs.webkit.org/show_bug.cgi?id=171191
1686
1687         Reviewed by JF Bastien.
1688
1689         * stress/proxy-is-extensible.js:
1690
1691 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
1692
1693         test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
1694         https://bugs.webkit.org/show_bug.cgi?id=171160
1695
1696         Reviewed by JF Bastien.
1697
1698         * stress/inferred-names.js:
1699         * test262.yaml:
1700
1701 2017-04-24  Joseph Pecoraro  <pecoraro@apple.com>
1702
1703         test262: test262/test/language/expressions/generators/yield-as-label.js
1704         https://bugs.webkit.org/show_bug.cgi?id=170979
1705
1706         Reviewed by Saam Barati.
1707
1708         * stress/async-await-module-reserved-word.js:
1709         * stress/async-await-reserved-word.js:
1710         Converge on "Cannot" instead of "Can't".
1711
1712         * catch-parameter-syntax.js:
1713         * yield-named-variable-generator.js:
1714         * yield-named-variable.js:
1715         * stress/yield-label-generator.js:
1716         * stress/yield-label.js:
1717         * stress/yield-reserved-word.js: Added.
1718         More complete list of when 'yield' is allowed.
1719
1720         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
1721         * test262.yaml:
1722
1723 2017-04-23  Commit Queue  <commit-queue@webkit.org>
1724
1725         Unreviewed, rolling out r215674.
1726         https://bugs.webkit.org/show_bug.cgi?id=171212
1727
1728         Possible unintended commit. This patch was on the wrong bug.
1729         (Requested by JoePeck on #webkit).
1730
1731         Reverted changeset:
1732
1733         "test262: test262/test/language/expressions/generators/yield-
1734         as-label.js"
1735         https://bugs.webkit.org/show_bug.cgi?id=170979
1736         http://trac.webkit.org/changeset/215674
1737
1738 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
1739
1740         test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
1741         https://bugs.webkit.org/show_bug.cgi?id=171197
1742
1743         Reviewed by Saam Barati.
1744
1745         * test262.yaml:
1746
1747 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
1748
1749         test262: test262/test/language/expressions/generators/yield-as-label.js
1750         https://bugs.webkit.org/show_bug.cgi?id=170979
1751
1752         Reviewed by Saam Barati.
1753
1754         * stress/async-await-module-reserved-word.js:
1755         * stress/async-await-reserved-word.js:
1756         Converge on "Cannot" instead of "Can't".
1757
1758         * catch-parameter-syntax.js:
1759         * yield-named-variable-generator.js:
1760         * yield-named-variable.js:
1761         * stress/yield-label-generator.js:
1762         * stress/yield-label.js:
1763         * stress/yield-reserved-word.js: Added.
1764         More complete list of when 'yield' is allowed.
1765
1766         * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
1767         * test262.yaml:
1768
1769 2017-04-23  Joseph Pecoraro  <pecoraro@apple.com>
1770
1771         test262: test262/test/built-ins/Number/parseFloat.js
1772         https://bugs.webkit.org/show_bug.cgi?id=171193
1773
1774         Reviewed by Yusuke Suzuki.
1775
1776         * test262.yaml:
1777
1778 2017-04-22  JF Bastien  <jfbastien@apple.com>
1779
1780         WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
1781         https://bugs.webkit.org/show_bug.cgi?id=171078
1782
1783         Reviewed by Saam Barati.
1784
1785         They're static properties of Module, not instance properties of a module.
1786         https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
1787
1788         * wasm/js-api/Module.customSection.js:
1789         (assert.throws.WebAssembly.Module.customSections):
1790         (assert.eq):
1791         (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
1792         * wasm/js-api/Module.exports.js:
1793         (assert.throws.WebAssembly.Module.exports):
1794         (assert.truthy):
1795         (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
1796         * wasm/js-api/Module.imports.js:
1797         (assert.throws.WebAssembly.Module.imports):
1798         (assert.truthy):
1799         (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
1800
1801 2017-04-21  JF Bastien  <jfbastien@apple.com>
1802
1803         Silence noisy test
1804
1805         Unreviewed, Fil / Michael and I talked about it in the corridor. I
1806         just forgot to set verbose to false before commit.
1807
1808         * wasm/stress/oom.js:
1809
1810 2017-04-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1811
1812         [JSC][FTL] FTL should support Arrayify
1813         https://bugs.webkit.org/show_bug.cgi?id=169596
1814
1815         Reviewed by Saam Barati.
1816
1817         * stress/arrayify.js: Added.
1818         (arrayifyInt32):
1819         (arrayifyDouble):
1820         (arrayifyContiguous):
1821
1822 2017-04-20  Mark Lam  <mark.lam@apple.com>
1823
1824         virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
1825         https://bugs.webkit.org/show_bug.cgi?id=171079
1826         <rdar://problem/31684756>
1827
1828         Reviewed by Saam Barati.
1829
1830         * stress/regress-171079.js: Added.
1831
1832 2017-04-15  Filip Pizlo  <fpizlo@apple.com>
1833
1834         Optimize SharedArrayBuffer in the DFG+FTL
1835         https://bugs.webkit.org/show_bug.cgi?id=164108
1836
1837         Reviewed by Saam Barati.
1838         
1839         Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
1840         combination of type and operation, and then first uses it nicely and then tries a bunch of
1841         erroneous conditions like OOB.
1842
1843         * stress/SharedArrayBuffer-opt.js: Added.
1844         (string_appeared_here.switch):
1845         (string_appeared_here.str):
1846         (runAtomic):
1847         (shouldFail):
1848         (Symbol):
1849         (string_appeared_here.a.of.arrays.m.of.atomics):
1850         * stress/SharedArrayBuffer.js:
1851
1852 2017-04-19  Mark Lam  <mark.lam@apple.com>
1853
1854         B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
1855         https://bugs.webkit.org/show_bug.cgi?id=170973
1856         <rdar://problem/30318657>
1857
1858         Reviewed by Filip Pizlo.
1859
1860         * stress/regress-170973.js: Added.
1861
1862 2017-04-19  JF Bastien  <jfbastien@apple.com>
1863
1864         WebAssembly: limit slow memories
1865         https://bugs.webkit.org/show_bug.cgi?id=170825
1866
1867         Reviewed by Saam Barati.
1868
1869         * wasm.yaml:
1870         * wasm/stress/oom.js: Added.
1871         (try.true.WebAssemblyMemoryMode):
1872         (catch):
1873
1874 2017-04-19  JF Bastien  <jfbastien@apple.com>
1875
1876         WebAssembly: don't expose any WebAssembly JS object if JIT is off
1877         https://bugs.webkit.org/show_bug.cgi?id=170782
1878
1879         Reviewed by Saam Barati.
1880
1881         * wasm.yaml:
1882         * wasm/noJIT/noJIT.js: Added.
1883
1884 2017-04-18  Mark Lam  <mark.lam@apple.com>
1885
1886         r211670 broke double to int conversion.
1887         https://bugs.webkit.org/show_bug.cgi?id=170961
1888         <rdar://problem/31687696>
1889
1890         Reviewed by Yusuke Suzuki.
1891
1892         * microbenchmarks/double-to-int32.js: Added.
1893         * stress/to-int32-sensible2.js: Added.
1894
1895 2017-04-18  Oleksandr Skachkov  <gskachkov@gmail.com>
1896
1897         [ES6]. Implement Annex B.3.3 function hoisting rules for eval
1898         https://bugs.webkit.org/show_bug.cgi?id=163208
1899
1900         Reviewed by Saam Barati.
1901
1902         * stress/eval-func-decl-block-scoping-reassign.js: Added.
1903         (assert):
1904         (throw.new.Error.f):
1905         (throw.new.Error):
1906         * stress/eval-func-decl-block-with-remove.js: Added.
1907         (assert):
1908         (foo.boo):
1909         (foo):
1910         * stress/eval-func-decl-block-with-var-and-remove.js: Added.
1911         (assert):
1912         (assertThrow):
1913         (foo):
1914         (boo):
1915         (joo):
1916         (koo):
1917         * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
1918         (assert):
1919         (assertThrow):
1920         (foo):
1921         (boo):
1922         (hoo):
1923         (joo):
1924         (koo):
1925         * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
1926         * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
1927         (assert):
1928         (assertThrow):
1929         (foo):
1930         (boo):
1931         (goo):
1932         * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
1933         (assert):
1934         (assertThrow):
1935         (foo):
1936         (boo):
1937         (boo.let.val2):
1938         (boo.let.val3):
1939         * stress/eval-func-decl-in-frozen-global.js: Added.
1940         (assert):
1941         (assertThrow):
1942         (throw.new.Error):
1943         (Object.freeze):
1944         * stress/eval-func-decl-in-global-of-eval.js: Added.
1945         (assert):
1946         (assertThrow):
1947         (bar):
1948         (baz):
1949         (foobar):
1950         * stress/eval-func-decl-in-global.js: Added.
1951         (assert):
1952         (assertThrow):
1953         * stress/eval-func-decl-in-if.js: Added.
1954         (assert):
1955         * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
1956         (assert):
1957         (assertThrow):
1958         (foo):
1959         (boo):
1960         (foobar):
1961         (hoo):
1962         (joo):
1963         (koo):
1964         (loo):
1965         * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
1966         (assert):
1967         (assertThrow):
1968         (foo):
1969         (boo):
1970         (goo):
1971         * stress/variable-under-tdz-eval-tricky.js:
1972         (assert):
1973         * test262.yaml:
1974
1975 2017-04-18  Filip Pizlo  <fpizlo@apple.com>
1976
1977         wasm/function-tests/memory-multiagent times out sometimes
1978         https://bugs.webkit.org/show_bug.cgi?id=170958
1979
1980         Reviewed by Keith Miller.
1981         
1982         Add the ability to skip tests easily. Skip the test.
1983
1984         * wasm.yaml:
1985         * wasm/function-tests/memory-multiagent.js:
1986
1987 2017-04-18  Saam Barati  <sbarati@apple.com>
1988
1989         Follow up to debug build stack overflow in test after r215453
1990
1991         Rubber stamped by Mark Lam.
1992
1993         * stress/call-apply-exponential-bytecode-size.js: Decrease the call
1994         size to prevent stack overflow errors on debug builds.
1995
1996 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
1997
1998         [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
1999         https://bugs.webkit.org/show_bug.cgi?id=170943
2000
2001         Reviewed by Geoffrey Garen.
2002
2003         * microbenchmarks/number-to-string-with-add-empty.js: Added.
2004         (toStringLeft):
2005         (toStringRight):
2006         * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
2007         (toStringLeft):
2008         (toStringRight):
2009         * microbenchmarks/number-to-string-with-add.js: Added.
2010         (toStringLeft):
2011         (toStringRight):
2012         * stress/number-to-string-with-add.js: Added.
2013         (shouldBe):
2014         (toStringRight):
2015         (toStringLeftEmpty):
2016         (toStringRightEmpty):
2017
2018 2017-04-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2019
2020         [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
2021         https://bugs.webkit.org/show_bug.cgi?id=170940
2022
2023         Reviewed by Filip Pizlo.
2024
2025         * microbenchmarks/for-of-array.js: Added.
2026         (fn):
2027
2028 2017-04-17  Saam Barati  <sbarati@apple.com>
2029
2030         BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
2031         https://bugs.webkit.org/show_bug.cgi?id=139847
2032         <rdar://problem/19321122>
2033
2034         Reviewed by Oliver Hunt.
2035
2036         * stress/call-apply-exponential-bytecode-size.js: Added.
2037         (assert):
2038         (const.inc):
2039         (const.inc2):
2040         (bar):
2041         (randomApplyOrCall):
2042         (baz):
2043         (jaz):
2044         (haz):
2045         (foo):
2046
2047 2017-04-17  Mark Lam  <mark.lam@apple.com>
2048
2049         JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
2050         https://bugs.webkit.org/show_bug.cgi?id=170896
2051         <rdar://problem/31651319>
2052
2053         Reviewed by JF Bastien and Keith Miller.
2054
2055         * stress/regress-170896.js: Added.
2056
2057 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2058
2059         test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
2060         https://bugs.webkit.org/show_bug.cgi?id=170882
2061
2062         Reviewed by Saam Barati.
2063
2064         * test262.yaml:
2065
2066 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2067
2068         test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
2069         https://bugs.webkit.org/show_bug.cgi?id=170888
2070
2071         Reviewed by Saam Barati.
2072
2073         * stress/computed-accessor.js:
2074         * stress/eval-in-arrow-function.js:
2075         * stress/rest-elements.js:
2076         * stress/string-object-define-own-property.js:
2077         Remove unused shouldThrow.
2078
2079         * stress/symbol-toprimitive-errors.js: Added.
2080         Check for ToPrimitive TypeErrors.
2081
2082         * test262.yaml:
2083
2084 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2085
2086         test262: test262/test/language/expressions/tagged-template/template-object.js
2087         https://bugs.webkit.org/show_bug.cgi?id=170878
2088
2089         Reviewed by Saam Barati.
2090
2091         * stress/array-length-not-writable.js: Added.
2092         (assert):
2093         * test262.yaml:
2094
2095 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2096
2097         test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
2098         https://bugs.webkit.org/show_bug.cgi?id=170879
2099
2100         Reviewed by Saam Barati.
2101
2102         * ChakraCore/test/es5/enumerable.baseline-jsc:
2103         * test262.yaml:
2104
2105 2017-04-16  Joseph Pecoraro  <pecoraro@apple.com>
2106
2107         test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
2108         https://bugs.webkit.org/show_bug.cgi?id=170884
2109
2110         Reviewed by Yusuke Suzuki.
2111
2112         * test262.yaml:
2113
2114 2017-04-15  Joseph Pecoraro  <pecoraro@apple.com>
2115
2116         test262: test262/test/language/global-code/new.target-arrow.js
2117         https://bugs.webkit.org/show_bug.cgi?id=170872
2118
2119         Reviewed by Saam Barati.
2120
2121         * stress/async-arrow-functions-lexical-new.target-binding.js:
2122         (shouldThrowAsync): Deleted.
2123         (shouldThrowAsync.async): Deleted.
2124         This code should have thrown a SyntaxError. Instead it was throwing
2125         a ReferenceError for the internal @newTargetLocal variable.
2126
2127         * stress/new-target-syntax-errors.js:
2128         Cover the arrow function in global code cases.
2129
2130         * ChakraCore.yaml:
2131         * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
2132         We now pass with an expected SyntaxError. Our error message is different.
2133
2134         * test262.yaml:
2135
2136 2017-04-14  Saam Barati  <sbarati@apple.com>
2137
2138         ParseInt intrinsic in DFG backend doesn't properly flush its operands
2139         https://bugs.webkit.org/show_bug.cgi?id=170865
2140
2141         Reviewed by Mark Lam and Geoffrey Garen.
2142
2143         * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
2144         (assert):
2145         (foo):
2146
2147 2017-04-14  Caitlin Potter  <caitp@igalia.com>
2148
2149         [JSC] use ExpressionErrorClassifier for AwaitExpression operand
2150         https://bugs.webkit.org/show_bug.cgi?id=170844
2151
2152         Reviewed by Saam Barati.
2153
2154         * stress/regress-170732.js: Added.
2155
2156 2017-04-14  Oleksandr Skachkov  <gskachkov@gmail.com>
2157
2158         Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
2159         https://bugs.webkit.org/show_bug.cgi?id=170442
2160
2161         Reviewed by Yusuke Suzuki.
2162
2163         * stress/object-number-properties.js:
2164
2165 2017-04-13  Yusuke Suzuki  <utatane.tea@gmail.com>
2166
2167         [JSC] Date.parse should accept wider range of representation
2168         https://bugs.webkit.org/show_bug.cgi?id=170720
2169
2170         Reviewed by Darin Adler.
2171
2172         * stress/date-relaxed.js: Added.
2173         (shouldBe):
2174         (throw.new.Error):
2175
2176 2017-04-13  Mark Lam  <mark.lam@apple.com>
2177
2178         Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
2179         https://bugs.webkit.org/show_bug.cgi?id=170661
2180         <rdar://problem/31579046>
2181
2182         Reviewed by Filip Pizlo.
2183
2184         * stress/regress-170661.js: Added.
2185
2186 2017-04-13  JF Bastien  <jfbastien@apple.com>
2187
2188         WebAssembly: manage memory better
2189         https://bugs.webkit.org/show_bug.cgi?id=170628
2190
2191         Reviewed by Keith Miller, Michael Saboff.
2192
2193         * wasm/Builder.js: move a helper out so tests can use it
2194         (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
2195         * wasm/WASM.js: add utilities to classify opcodes
2196         (export.opcodes):
2197         (export.const.memoryAccessInfo.op.const.sign):
2198         * wasm/function-tests/memory-access-past-4gib.js: Added. This test
2199         fails before this patch.
2200         (const.op.of.WASM.opcodes):
2201         * wasm/function-tests/memory-many.js: Added. This simple tests
2202         just shouldn't crash. In verbose mode it's useful at determining
2203         if the GC falls behind or not.
2204         * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
2205         (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
2206         (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
2207         (const.broadcastToAgents):
2208         * wasm/js-api/extension-MemoryMode.js: verbose logging.
2209         (testMemoryNoMax):
2210         (testMemory):
2211         (testInstanceNoMemory):
2212         (testInstanceNoMax):
2213         (testInstance):
2214         * wasm/utilities.js: move a utility here.
2215
2216 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
2217
2218         test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
2219         https://bugs.webkit.org/show_bug.cgi?id=170668
2220
2221         Reviewed by Keith Miller.
2222
2223         * ChakraCore.yaml:
2224         * ChakraCore/test/Lib/error.baseline-jsc: Added.
2225         This test does not match the spec.
2226
2227         * test262.yaml:
2228
2229 2017-04-12  Joseph Pecoraro  <pecoraro@apple.com>
2230
2231         test262: test262/test/language/literals/regexp/u-dec-esc.js
2232         https://bugs.webkit.org/show_bug.cgi?id=170687
2233
2234         Reviewed by Michael Saboff.
2235
2236         * test262.yaml:
2237
2238 2017-04-11  Michael Saboff  <msaboff@apple.com>
2239
2240         Implement Object.isFrozen() and Object.isSealed() per ECMA spec
2241         https://bugs.webkit.org/show_bug.cgi?id=170753
2242
2243         Reviewed by Mark Lam.
2244
2245         Added JSC baseline and enabled defineIndexProperty test.
2246
2247         Note that JSC differs from Chakra in that a JSC doesn't use indexed
2248         properties placed on the Array prototype when sorting the indexed 
2249         properties of an Object.  This is behavior is considered undefined
2250         in the standard.
2251
2252         * ChakraCore.yaml:
2253         * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
2254
2255 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
2256
2257         test262: test262/test/annexB/language/comments/multi-line-html-close.js
2258         https://bugs.webkit.org/show_bug.cgi?id=170648
2259
2260         Reviewed by Keith Miller.
2261
2262         * test262.yaml:
2263
2264 2017-04-11  Joseph Pecoraro  <pecoraro@apple.com>
2265
2266         test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
2267         https://bugs.webkit.org/show_bug.cgi?id=170652
2268
2269         Reviewed by Michael Saboff.
2270
2271         * stress/native-constructors-length.js: Added.
2272         (assertLengthDescriptorAttributes):
2273         Add a quick test for the length properties of all native constructors.
2274
2275         * ChakraCore/test/es5/enumerable.baseline-jsc:
2276         Rebaseline expectations for this test.
2277
2278         * test262.yaml:
2279
2280 2017-04-10  Keith Miller  <keith_miller@apple.com>
2281
2282         WebAssembly: Update spec tests
2283         https://bugs.webkit.org/show_bug.cgi?id=170683
2284
2285         Rubber-stamped by JF Bastien.
2286
2287         * wasm.yaml:
2288         * wasm/spec-tests/br_table.wast.js:
2289         * wasm/spec-tests/conversions.wast.js: Removed.
2290         * wasm/spec-tests/f32_bitwise.wast.js: Added.
2291         * wasm/spec-tests/f32_cmp.wast.js:
2292         * wasm/spec-tests/f64_bitwise.wast.js: Added.
2293         * wasm/spec-tests/f64_cmp.wast.js:
2294         * wasm/spec-tests/i32.wast.js:
2295         * wasm/spec-tests/i64.wast.js:
2296         * wasm/spec-tests/int_exprs.wast.js:
2297         * wasm/spec-tests/memory.wast.js:
2298
2299 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
2300
2301         test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
2302         https://bugs.webkit.org/show_bug.cgi?id=170650
2303
2304         Reviewed by Saam Barati.
2305
2306         * stress/inferred-names.js:
2307         * test262.yaml:
2308
2309 2017-04-09  Joseph Pecoraro  <pecoraro@apple.com>
2310
2311         test262: test262/test/annexB/language/literals/regexp/identity-escape.js
2312         https://bugs.webkit.org/show_bug.cgi?id=170651
2313
2314         Reviewed by Saam Barati.
2315
2316         * test262.yaml:
2317
2318 2017-04-07  Michael Saboff  <msaboff@apple.com>
2319
2320         Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
2321         https://bugs.webkit.org/show_bug.cgi?id=170580
2322
2323         Reviewed by JF Bastien.
2324
2325         Commented out subtest that expects defineProperty("length") to a getter on a
2326         sealed function shouldn't throw.
2327
2328         * ChakraCore.yaml:
2329         * ChakraCore/test/es6/ES6Function_bugs.js:
2330
2331 2017-04-06  Michael Saboff  <msaboff@apple.com>
2332
2333         Cannot Object.seal() or Object.freeze() global "this"
2334         https://bugs.webkit.org/show_bug.cgi?id=170549
2335
2336         Reviewed by Mark Lam.
2337
2338         Enabled failing tests fixed by the corresponding code change:
2339             ChakraCore/test/LetConst/delete.js
2340             ChakraCore/test/LetConst/dop.js
2341             ChakraCore/test/LetConst/dop1.js
2342
2343         * ChakraCore.yaml:
2344         * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
2345         * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
2346
2347 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2348
2349         test262: ES2017 test progressions need updated expectations (arguments.caller removed)
2350         https://bugs.webkit.org/show_bug.cgi?id=170536
2351
2352         Reviewed by Mark Lam.
2353
2354         * test262.yaml:
2355         After r208867 the tests are out of date and are now expected to fail.
2356
2357 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2358
2359         test262: Final rebaseline of existing tests, a few tests have started failing
2360         https://bugs.webkit.org/show_bug.cgi?id=170538
2361
2362         Reviewed by Mark Lam.
2363
2364         * test262.yaml:
2365         These tests started failing a while ago. Mark them as legitmate failures.
2366
2367 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2368
2369         test262: Rebaseline expectations for now passing tests
2370         https://bugs.webkit.org/show_bug.cgi?id=170532
2371
2372         Reviewed by Ryosuke Niwa.
2373
2374         * test262.yaml:
2375         Update expectations for tests we are now passing.
2376
2377 2017-04-05  Joseph Pecoraro  <pecoraro@apple.com>
2378
2379         test262: module test progressions need updated expectations (@@iterator changes)
2380         https://bugs.webkit.org/show_bug.cgi?id=170535
2381
2382         Reviewed by Saam Barati.
2383
2384         * test262.yaml:
2385         After r212430 the tests are out of date and are now expected to fail.
2386
2387 2017-04-05  Michael Saboff  <msaboff@apple.com>
2388
2389         Unreviewed rollout of r214642 as the test still intermittently fails.
2390
2391         Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
2392
2393         * ChakraCore.yaml:
2394
2395 2017-04-05  Michael Saboff  <msaboff@apple.com>
2396
2397         REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
2398         https://bugs.webkit.org/show_bug.cgi?id=170264
2399         <rdar://problem/31375593>
2400
2401         Rubber-stamped by Saam Barati.
2402
2403         The original bug was fixed in: https://trac.webkit.org/changeset/214714
2404         I'm just adding another test for good measure.
2405
2406         * stress/double-array-to-array-storage.js: Added.
2407         (assert):
2408
2409 2017-04-05  Keith Miller  <keith_miller@apple.com>
2410
2411         WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
2412         https://bugs.webkit.org/show_bug.cgi?id=170504
2413
2414         Reviewed by Mark Lam.
2415
2416         * wasm/function-tests/trap-after-cross-instance-call.js: Added.
2417         (b.new.WebAssembly.Memory):
2418         (importObject.foo.bar):
2419         (wasmFrameCountFromError):
2420
2421 2017-03-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2422
2423         [JSC] Generate TemplateObjects at linking time
2424         https://bugs.webkit.org/show_bug.cgi?id=169743
2425
2426         Reviewed by Keith Miller.
2427
2428         * stress/template-string-tags-eval.js: Added.
2429         (shouldBe):
2430         (tag):
2431
2432 2017-04-04  Mark Lam  <mark.lam@apple.com>
2433
2434         On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
2435         https://bugs.webkit.org/show_bug.cgi?id=170473
2436         <rdar://problem/29912391>
2437
2438         Reviewed by Saam Barati.
2439
2440         * stress/regress-170473.js: Added.
2441
2442 2017-04-03  Mark Lam  <mark.lam@apple.com>
2443
2444         Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
2445         https://bugs.webkit.org/show_bug.cgi?id=170412
2446         <rdar://problem/29697336>
2447
2448         Reviewed by Filip Pizlo.
2449
2450         * stress/regress-170412.js: Added.
2451
2452 2017-04-03  Keith Miller  <keith_miller@apple.com>
2453
2454         WebAssembly: Update spec tests
2455         https://bugs.webkit.org/show_bug.cgi?id=170361
2456
2457         Rubber-stamped by Saam Barati.
2458
2459         Update the spec tests to run tests generated by the newer spec
2460         test builder wasm-spec/test/builder.py. This patch also adds the
2461         necessary harness code in spec-harness.js so we can run the tests.
2462
2463         * wasm.yaml:
2464         * wasm/import-spec-tests.rb:
2465         * wasm/spec-harness.js: Added.
2466         (import.string_appeared_here.then):
2467         (test):
2468         (promise_test):
2469         (let.assert_unreached):
2470         * wasm/spec-harness/index.js: Added.
2471         (let.testNum):
2472         (assertThrows):
2473         (_assert):
2474         (ValueResult):
2475         (ErrorResult):
2476         (Result.prototype.isError):
2477         (binary):
2478         (module):
2479         (uniqueTest):
2480         (assert_invalid):
2481         (assert_soft_invalid):
2482         (register):
2483         (call):
2484         (get instance):
2485         (exports):
2486         (run):
2487         (assert_unlinkable):
2488         (assert_uninstantiable):
2489         (assert_trap):
2490         (try.f):
2491         (catch):
2492         (assert_exhaustion):
2493         (assert_return):
2494         (assert_return_nan):
2495         * wasm/spec-harness/testharness.css: Added.
2496         (html):
2497         (#log .warning,):
2498         (#log .error,):
2499         (section#summary):
2500         (table#results):
2501         (table#results th:first-child,):
2502         (table#results th:last-child,):
2503         (table#results.assertions th:last-child,):
2504         (table#results th):
2505         (table#results td):
2506         (tr.pass > td:first-child):
2507         (tr.fail > td:first-child):
2508         (tr.timeout > td:first-child):
2509         (tr.notrun > td:first-child):
2510         (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
2511         (table#results span):
2512         (table#results span.expected):
2513         (table#results span.actual):
2514         (span.ok):
2515         (tr.error):
2516         (span.timeout):
2517         (span.ok, span.timeout, span.error):
2518         * wasm/spec-harness/testharness.js: Added.
2519         (WindowTestEnvironment):
2520         (WindowTestEnvironment.prototype._dispatch):
2521         (WindowTestEnvironment.prototype._forEach_windows):
2522         (WindowTestEnvironment.prototype.on_tests_ready):
2523         (WindowTestEnvironment.prototype.setup_messages):
2524         (WindowTestEnvironment.prototype.next_default_test_name):
2525         (WindowTestEnvironment.prototype.on_new_harness_properties):
2526         (WindowTestEnvironment.prototype.add_on_loaded_callback):
2527         (WindowTestEnvironment.prototype.test_timeout):
2528         (WindowTestEnvironment.prototype.global_scope):
2529         (WorkerTestEnvironment):
2530         (WorkerTestEnvironment.prototype._dispatch):
2531         (WorkerTestEnvironment.prototype._add_message_port):
2532         (WorkerTestEnvironment.prototype.next_default_test_name):
2533         (WorkerTestEnvironment.prototype.on_new_harness_properties):
2534         (WorkerTestEnvironment.prototype.on_tests_ready):
2535         (WorkerTestEnvironment.prototype.add_on_loaded_callback):
2536         (WorkerTestEnvironment.prototype.test_timeout):
2537         (WorkerTestEnvironment.prototype.global_scope):
2538         (DedicatedWorkerTestEnvironment):
2539         (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
2540         (SharedWorkerTestEnvironment):
2541         (SharedWorkerTestEnvironment.prototype.on_tests_ready):
2542         (ServiceWorkerTestEnvironment):
2543         (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
2544         (create_test_environment):
2545         (is_shared_worker):
2546         (is_service_worker):
2547         (test):
2548         (async_test):
2549         (promise_test):
2550         (this.wait_for):
2551         (EventWatcher):
2552         (setup):
2553         (done):
2554         (generate_tests):
2555         (step_timeout):
2556         (truncate):
2557         (is_node):
2558         (format_value):
2559         * wasm/spec-harness/testharnessreport.js: Added.
2560         * wasm/spec-harness/wasm-constants.js: Added.
2561         (bytes):
2562         (bytesWithHeader):
2563         (makeSig):
2564         (makeSig_v_x):
2565         (makeSig_v_xx):
2566         (makeSig_r_v):
2567         (makeSig_r_x):
2568         (makeSig_r_xx):
2569         (assertTraps):
2570         (assertWasmThrows):
2571         * wasm/spec-harness/wasm-module-builder.js: Added.
2572         (Binary.prototype.emit_u8):
2573         (Binary.prototype.emit_u16):
2574         (Binary.prototype.emit_u32):
2575         (Binary.prototype.emit_u32v):
2576         (Binary.prototype.emit_bytes):
2577         (Binary.prototype.emit_string):
2578         (Binary.prototype.emit_header):
2579         (Binary.prototype.emit_section):
2580         (Binary):
2581         (WasmFunctionBuilder):
2582         (WasmFunctionBuilder.prototype.exportAs):
2583         (WasmFunctionBuilder.prototype.exportFunc):
2584         (WasmFunctionBuilder.prototype.addBody):
2585         (WasmFunctionBuilder.prototype.addLocals):
2586         (WasmFunctionBuilder.prototype.end):
2587         (WasmGlobalBuilder):
2588         (WasmGlobalBuilder.prototype.exportAs):
2589         (WasmModuleBuilder):
2590         (WasmModuleBuilder.prototype.addStart):
2591         (WasmModuleBuilder.prototype.addMemory):
2592         (WasmModuleBuilder.prototype.addExplicitSection):
2593         (WasmModuleBuilder.prototype.addType):
2594         (WasmModuleBuilder.prototype.addGlobal):
2595         (WasmModuleBuilder.prototype.addFunction):
2596         (WasmModuleBuilder.prototype.addImport):
2597         (WasmModuleBuilder.prototype.addImportedGlobal):
2598         (WasmModuleBuilder.prototype.addImportedMemory):
2599         (WasmModuleBuilder.prototype.addImportedTable):
2600         (WasmModuleBuilder.prototype.addExport):
2601         (WasmModuleBuilder.prototype.addExportOfKind):
2602         (WasmModuleBuilder.prototype.addDataSegment):
2603         (WasmModuleBuilder.prototype.exportMemoryAs):
2604         (WasmModuleBuilder.prototype.addFunctionTableInit):
2605         (WasmModuleBuilder.prototype.appendToTable):
2606         (WasmModuleBuilder.prototype.setFunctionTableLength):
2607         (WasmModuleBuilder.prototype.toArray):
2608         (WasmModuleBuilder.prototype.toBuffer):
2609         (WasmModuleBuilder.prototype.instantiate):
2610         * wasm/spec-harness/wast.js: Added.
2611         (normalize):
2612         (require.else._registry.name):
2613         (require):
2614         (add_hex_char):
2615         (add_char):
2616         (string_with):
2617         (list_of_opt):
2618         (break_bytes.f):
2619         (break_bytes):
2620         (f):
2621         (decls):
2622         (func_type):
2623         (limits):
2624         (global_type):
2625         (testop):
2626         (relop):
2627         (unop):
2628         (binop):
2629         (cvtop):
2630         (oper):
2631         (mem_size):
2632         (extension):
2633         (memop):
2634         (storeop):
2635         (var):
2636         (constop):
2637         (instr.else.switch.case.0.f):
2638         (instr.else.switch.case.1.f.1):
2639         (instr.else.switch.case.2.f.2):
2640         (instr):
2641         (func_with_name):
2642         (func):
2643         (start):
2644         (table):
2645         (memory):
2646         (segment):
2647         (elems):
2648         (data):
2649         (typedef):
2650         (import_kind):
2651         (import):
2652         (export_kind):
2653         (export):
2654         (var_opt):
2655         (is_func_import):
2656         (is_table_import):
2657         (is_memory_import):
2658         (is_global_import):
2659         (f.1):
2660         (f.2):
2661         (f.3):
2662         (module_with_var_opt):
2663         (module_):
2664         (literal):
2665         (definition):
2666         (access):
2667         (action):
2668         (script):
2669         (_registry.string_appeared_here):
2670         (init):
2671         (make_matrix):
2672         (copy):
2673         (append):
2674         (sub):
2675         (fill):
2676         (blit):
2677         (iter):
2678         (map):
2679         (iteri):
2680         (mapi):
2681         (to_list):
2682         (list_length):
2683         (of_list):
2684         (fold_left):
2685         (fold_right):
2686         (maxson):
2687         (trickle):
2688         (bubble):
2689         (trickleup):
2690         (sort):
2691         (merge):
2692         (isortto):
2693         (sortto):
2694         (stable_sort):
2695         (import_type):
2696         (export_type):
2697         (dims.n):
2698         (dims.d.i):
2699         (dims):
2700         (map_file):
2701         (create):
2702         (of_array):
2703         (slice_left):
2704         (slice_right):
2705         (slice_left_1):
2706         (slice_right_1):
2707         (slice_left_2):
2708         (slice_right_2):
2709         (array1_of_genarray):
2710         (array2_of_genarray):
2711         (array3_of_genarray):
2712         (reshape_1):
2713         (reshape_2):
2714         (reshape_3):
2715         (reshape):
2716         (__):
2717         (contents):
2718         (to_bytes):
2719         (nth):
2720         (length):
2721         (clear):
2722         (reset):
2723         (resize):
2724         (add_substring):
2725         (add_subbytes):
2726         (add_string):
2727         (add_bytes):
2728         (add_buffer):
2729         (add_channel):
2730         (output_buffer):
2731         (closing):
2732         (advance_to_closing):
2733         (advance_to_non_alpha):
2734         (find_ident):
2735         (add_substitute):
2736         (make):
2737         (to_string):
2738         (of_string):
2739         (sub_string):
2740         (extend):
2741         (blit_string):
2742         (concat):
2743         (cat):
2744         (is_space):
2745         (trim):
2746         (escaped):
2747         (uppercase):
2748         (lowercase):
2749         (apply1):
2750         (capitalize):
2751         (uncapitalize):
2752         (index_rec):
2753         (index):
2754         (index_from):
2755         (rindex_rec):
2756         (rindex):
2757         (rindex_from):
2758         (contains_from):
2759         (contains):
2760         (rcontains_from):
2761         (caml_array_sub):
2762         (len):
2763         (caml_array_concat):
2764         (caml_make_vect):
2765         (caml_array_blit):
2766         (get if):
2767         (caml_set_oo_id):
2768         (get_id):
2769         (caml_int32_float_of_bits):
2770         (caml_int32_bits_of_float):
2771         (caml_classify_float):
2772         (caml_modf_float):
2773         (caml_ldexp_float):
2774         (caml_frexp_float):
2775         (caml_copysign_float):
2776         (caml_expm1_float):
2777         (caml_hypot_float):
2778         (caml_log10_float):
2779         (caml_failwith):
2780         (parse_digit):
2781         (int_of_string_base):
2782         (parse_sign_and_base):
2783         (caml_int_of_string.aux):
2784         (caml_int_of_string):
2785         (caml_int64_of_string.aux):
2786         (caml_int64_of_string):
2787         (int_of_base):
2788         (parse_format):
2789         (finish_formatting):
2790         (caml_format_int):
2791         (caml_int64_format):
2792         (caml_format_float):
2793         (float_of_string):
2794         (div):
2795         (mod_):
2796         (caml_bswap16):
2797         (caml_int32_bswap):
2798         (imul):
2799         (neg_signed):
2800         (not):
2801         (eq):
2802         (neg):
2803         (lsl_):
2804         (lsr_):
2805         (asr_):
2806         (is_zero):
2807         (mul):
2808         (swap):
2809         (xor):
2810         (or_):
2811         (and_):
2812         (ge):
2813         (lt):
2814         (gt):
2815         (le):
2816         (to_float):
2817         (of_float):
2818         (div_mod):
2819         (compare):
2820         (of_int32):
2821         (to_int32):
2822         (to_hex.aux):
2823         (to_hex):
2824         (discard_sign):
2825         (float_of_bits):
2826         (bits_of_float.to_nat):
2827         (bits_of_float):
2828         (get64):
2829         (erase_rel):
2830         (concat_fmtty):
2831         (concat_fmt):
2832         (create_char_set):
2833         (add_in_char_set):
2834         (rev_char_set):
2835         (is_in_char_set):
2836         (prec_of_prec_opt):
2837         (param_format_of_ignored_format):
2838         (buffer_check_size):
2839         (buffer_add_char):
2840         (buffer_add_string):
2841         (buffer_contents):
2842         (char_of_iconv):
2843         (char_of_fconv):
2844         (char_of_counter):
2845         (print_char):
2846         (set while.set var):
2847         (set while.set else):
2848         (set var):
2849         (set else):
2850         (set print_char):
2851         (set if):
2852         (bprint_padty):
2853         (bprint_ignored_flag):
2854         (bprint_pad_opt):
2855         (bprint_padding):
2856         (bprint_precision):
2857         (bprint_iconv_flag):
2858         (bprint_int_fmt):
2859         (bprint_altint_fmt):
2860         (bprint_fconv_flag):
2861         (bprint_float_fmt):
2862         (string_of_formatting_lit):
2863         (string_of_formatting_gen):
2864         (bprint_char_literal):
2865         (bprint_string_literal):
2866         (bprint_fmtty):
2867         (int_of_custom_arity):
2868         (bprint_fmt):
2869         (string_of_fmt):
2870         (symm):
2871         (fmtty_rel_det):
2872         (trans):
2873         (fmtty_of_formatting_gen):
2874         (fmtty_of_fmt):
2875         (fmtty_of_custom):
2876         (fmtty_of_padding_fmtty):
2877         (fmtty_of_precision_fmtty):
2878         (type_padding):
2879         (type_padprec):
2880         (type_ignored_param_one):
2881         (type_format_gen):
2882         (type_ignored_format_substitution):
2883         (type_format):
2884         (recast):
2885         (fix_padding):
2886         (fix_int_precision):
2887         (string_to_caml_string):
2888         (format_of_iconv):
2889         (format_of_aconv):
2890         (format_of_fconv):
2891         (convert_int):
2892         (convert_int32):
2893         (convert_nativeint):
2894         (convert_int64):
2895         (else.is_valid):
2896         (convert_float):
2897         (format_caml_char):
2898         (string_of_fmtty):
2899         (else.switch.):
2900         (else.switch.k.prime):
2901         (else.switch.else.):
2902         (else.switch.else.k.prime.1):
2903         (make_printf):
2904         (make_from_fmtty):
2905         (make_invalid_arg):
2906         (make_string_padding):
2907         (make_int_padding_precision):
2908         (make_custom):
2909         (output_acc):
2910         (bufput_acc):
2911         (strput_acc):
2912         (failwith_message.k):
2913         (failwith_message):
2914         (open_box_of_string.else.invalid_box):
2915         (open_box_of_string.else.parse_spaces):
2916         (open_box_of_string.else.parse_lword):
2917         (open_box_of_string.else.parse_int):
2918         (open_box_of_string):
2919         (make_padding_fmt_ebb):
2920         (make_precision_fmt_ebb):
2921         (make_padprec_fmt_ebb):
2922         (invalid_format_message):
2923         (invalid_format_without):
2924         (expected_character):
2925         (compute_int_conv):
2926         (incompatible_flag):
2927         (parse_positive):
2928         (parse_conv):
2929         (parse_after_precision):
2930         (else.parse_literal):
2931         (parse_after_padding):
2932         (parse_literal):
2933         (parse_after_at):
2934         (add_literal):
2935         (parse_spaces):
2936         (parse_integer):
2937         (compute_float_conv):
2938         (search_subformat_end):
2939         (check_no_0):
2940         (opt_of_pad):
2941         (get_prec_opt):
2942         (else.switch.case.99.char_format):
2943         (else.switch.scan_format):
2944         (parse_conversion):
2945         (set_flag):
2946         (parse_flags):
2947         (is_int_base):
2948         (counter_of_char):
2949         (add_range):
2950         (fail_single_percent):
2951         (parse_char_set_after_char):
2952         (parse_char_set_content):
2953         (parse_char_set_start):
2954         (parse_char_set):
2955         (check_open_box):
2956         (parse_tag):
2957         (fmt_ebb_of_string):
2958         (format_of_string_fmtty):
2959         (format_of_string_format):
2960         (caret):
2961         (caml_ml_open_descriptor_in):
2962         (caml_ml_open_descriptor_out):
2963         (caml_ml_flush):
2964         (node_std_output):
2965         (caml_ml_output_char):
2966         (caml_ml_input):
2967         (caml_ml_input_char):
2968         (caml_ml_out_channels_list):
2969         (fail):
2970         (caml_lex_array):
2971         (caml_lex_engine):
2972         (caml_lex_run_mem):
2973         (caml_lex_run_tag):
2974         (caml_new_lex_engine):
2975         (caml_obj_dup):
2976         (caml_obj_truncate):
2977         (caml_lazy_make_forward):
2978         (caml_update_dummy):
2979         (caml_int_compare):
2980         (caml_compare):
2981         (caml_equal):
2982         (caml_notequal):
2983         (caml_greaterequal):
2984         (caml_lessequal):
2985         (else.aux):
2986         (caml_get_public_method):
2987         (caml_parse_engine):
2988         (caml_set_parser_trace):
2989         (js_string_of_char):
2990         (caml_string_get):
2991         (caml_create_string):
2992         (caml_string_compare):
2993         (caml_fill_string):
2994         (caml_blit_string):
2995         (caml_blit_bytes):
2996         (bytes_of_string):
2997         (bytes_to_string):
2998         (caml_string_of_char_array):
2999         (caml_is_printable):
3000         (caml_string_get16):
3001         (caml_string_get32):
3002         (repeat):
3003         (chr):
3004         (app):
3005         (js):
3006         (curry_1):
3007         (_1):
3008         (js1):
3009         (__1):
3010         (curry_2):
3011         (_2):
3012         (js2):
3013         (__2):
3014         (curry_3):
3015         (_3):
3016         (js3):
3017         (__3):
3018         (curry_4):
3019         (_4):
3020         (js4):
3021         (__4):
3022         (curry_5):
3023         (_5):
3024         (js5):
3025         (__5):
3026         (curry_6):
3027         (_6):
3028         (js6):
3029         (__6):
3030         (curry_7):
3031         (_7):
3032         (js7):
3033         (__7):
3034         (curry_8):
3035         (_8):
3036         (js8):
3037         (__8):
3038         (stream):
3039         (eos):
3040         (skip):
3041         (read):
3042         (peek):
3043         (string_of_byte):
3044         (position):
3045         (region):
3046         (error):
3047         (guard):
3048         (get 1):
3049         (get expect):
3050         (get illegal):
3051         (at):
3052         (u32):
3053         (u64):
3054         (get require):
3055         (vuN):
3056         (get var):
3057         (vsN):
3058         (vu32):
3059         (vs32):
3060         (vs64):
3061         (f32):
3062         (f64):
3063         (len32):
3064         (string):
3065         (opt):
3066         (vec):
3067         (sized):
3068         (value_type):
3069         (elem_type):
3070         (stack_type):
3071         (table_type):
3072         (memory_type):
3073         (mutability.get if):
3074         (mutability):
3075         (instr.get if):
3076         (instr_block):
3077         (const):
3078         (id):
3079         (section):
3080         (type_section):
3081         (import_kind.get if):
3082         (import_section):
3083         (func_section):
3084         (table_section):
3085         (memory_section):
3086         (global):
3087         (global_section):
3088         (export_kind.get if):
3089         (export_section):
3090         (start_section):
3091         (local):
3092         (code):
3093         (code_section):
3094         (table_segment):
3095         (elem_section):
3096         (memory_segment):
3097         (data_section):
3098         (partial_arg.1):
3099         (custom):
3100         (custom_section):
3101         (iterate):
3102         (decode):
3103         (patch):
3104         (encode.u8):
3105         (encode.u16):
3106         (encode.u32):
3107         (encode.vu64):
3108         (encode.vs64):
3109         (encode.vu32):
3110         (encode.len):
3111         (encode.bool):
3112         (encode.string):
3113         (encode.vec):
3114         (encode.gap32):
3115         (encode.patch_gap32):
3116         (encode.value_type):
3117         (encode.stack_type):
3118         (encode.func_type):
3119         (encode.limits):
3120         (encode.table_type):
3121         (encode.memory_type):
3122         (encode.global_type):
3123         (encode.memop):
3124         (encode):
3125         (encode.instr):
3126         (encode.const):
3127         (encode.section):
3128         (encode.type_section):
3129         (encode.import):
3130         (encode.import_section):
3131         (encode.func):
3132         (encode.func_section):
3133         (encode.table):
3134         (encode.table_section):
3135         (encode.memory):
3136         (encode.memory_section):
3137         (encode.global):
3138         (encode.global_section):
3139         (encode.export_kind):
3140         (encode.export):
3141         (encode.export_section):
3142         (encode.start_section):
3143         (encode.combine):
3144         (encode.compress):
3145         (encode.local):
3146         (encode.code):
3147         (encode.code_section):
3148         (encode.segment):
3149         (encode.table_segment):
3150         (encode.elem_section):
3151         (encode.memory_segment):
3152         (encode.module_):
3153         (Make.warn):
3154         (Make.error):
3155         (Make):
3156         (print_nan_significand_digits):
3157         (Make.of_bits):
3158         (Make.to_bits):
3159         (Make.is_nan):
3160         (Make.canonicalize_nan):
3161         (Make.determine_binary_nan):
3162         (Make.determine_unary_nan):
3163         (Make.binary):
3164         (Make.unary):
3165         (Make.add):
3166         (Make.sub):
3167         (Make.mul):
3168         (Make.div):
3169         (Make.sqrt):
3170         (Make.ceil):
3171         (Make.floor):
3172         (Make.trunc):
3173         (Make.nearest):
3174         (Make.min):
3175         (Make.max):
3176         (Make.abs):
3177         (Make.neg):
3178         (Make.copysign):
3179         (Make.eq):
3180         (Make.ne):
3181         (Make.lt):
3182         (Make.gt):
3183         (Make.le):
3184         (Make.ge):
3185         (Make.of_signless_string):
3186         (Make.of_string):
3187         (Make.to_string):
3188         (add_queue):
3189         (peek_queue):
3190         (take_queue):
3191         (pp_enqueue):
3192         (pp_clear_queue):
3193         (pp_output_string):
3194         (break_new_line):
3195         (break_same_line):
3196         (pp_force_break_line):
3197         (switch.add_tab):
3198         (else.switch.find):
3199         (format_pp_token):
3200         (advance_left):
3201         (enqueue_advance):
3202         (enqueue_string_as):
3203         (set_size):
3204         (scan_push):
3205         (pp_open_box_gen):
3206         (pp_close_box):
3207         (pp_open_tag):
3208         (pp_close_tag):
3209         (pp_set_print_tags):
3210         (pp_set_mark_tags):
3211         (pp_get_print_tags):
3212         (pp_get_mark_tags):
3213         (pp_set_tags):
3214         (pp_get_formatter_tag_functions):
3215         (pp_set_formatter_tag_functions):
3216         (pp_rinit):
3217         (pp_flush_queue):
3218         (pp_print_as_size):
3219         (pp_print_string):
3220         (pp_print_int):
3221         (pp_print_float):
3222         (pp_print_bool):
3223         (pp_open_hbox):
3224         (pp_open_vbox):
3225         (pp_open_hvbox):
3226         (pp_open_hovbox):
3227         (pp_open_box):
3228         (pp_print_newline):
3229         (pp_print_flush):
3230         (pp_force_newline):
3231         (pp_print_if_newline):
3232         (pp_print_break):
3233         (pp_print_space):
3234         (pp_print_cut):
3235         (pp_open_tbox):
3236         (pp_close_tbox):
3237         (pp_print_tbreak):
3238         (pp_print_tab):
3239         (pp_set_tab):
3240         (pp_print_list):
3241         (flush):
3242         (pp_print_text):
3243         (pp_set_max_boxes):
3244         (pp_get_max_boxes):
3245         (pp_over_max_boxes):
3246         (pp_get_ellipsis_text):
3247         (pp_limit):
3248         (pp_set_max_indent):
3249         (pp_get_max_indent):
3250         (pp_set_margin):
3251         (pp_get_margin):
3252         (pp_set_formatter_out_functions):
3253         (pp_get_formatter_out_functions):
3254         (pp_set_formatter_output_functions):
3255         (pp_get_formatter_output_functions):
3256         (pp_set_all_formatter_output_functions):
3257         (pp_get_all_formatter_output_functions):
3258         (display_newline):
3259         (display_blanks):
3260         (state.16):
3261         (state.17):
3262         (state.18):
3263         (state.19):
3264         (pp_set_formatter_out_channel):
3265         (default_pp_mark_open_tag):
3266         (default_pp_mark_close_tag):
3267         (default_pp_print_open_tag):
3268         (default_pp_print_close_tag):
3269         (pp_make_formatter):
3270         (ppf.18):
3271         (ppf.19):
3272         (make_formatter):
3273         (formatter_of_out_channel):
3274         (formatter_of_buffer):
3275         (flush_str_formatter):
3276         (flush_buf_formatter):
3277         (open_hbox):
3278         (open_vbox):
3279         (open_hvbox):
3280         (open_hovbox):
3281         (open_box):
3282         (close_box):
3283         (open_tag):
3284         (close_tag):
3285         (print_as):
3286         (print_string):
3287         (print_int):
3288         (print_float):
3289         (print_bool):
3290         (print_cut):
3291         (print_space):
3292         (force_newline):
3293         (print_flush):
3294         (print_newline):
3295         (print_if_newline):
3296         (open_tbox):
3297         (close_tbox):
3298         (print_tbreak):
3299         (set_tab):
3300         (print_tab):
3301         (set_margin):
3302         (get_margin):
3303         (set_max_indent):
3304         (get_max_indent):
3305         (set_max_boxes):
3306         (get_max_boxes):
3307         (over_max_boxes):
3308         (set_ellipsis_text):
3309         (get_ellipsis_text):
3310         (set_formatter_out_channel):
3311         (set_formatter_out_functions):
3312         (get_formatter_out_functions):
3313         (set_formatter_output_functions):
3314         (get_formatter_output_functions):
3315         (set_all_formatter_output_functions):
3316         (get_all_formatter_output_functions):
3317         (set_formatter_tag_functions):
3318         (get_formatter_tag_functions):
3319         (set_print_tags):
3320         (get_print_tags):
3321         (set_mark_tags):
3322         (get_mark_tags):
3323         (set_tags):
3324         (compute_tag):
3325         (output_formatting_lit):
3326         (kfprintf):
3327         (ikfprintf):
3328         (fprintf):
3329         (ifprintf):
3330         (printf):
3331         (eprintf):
3332         (k.prime):
3333         (ksprintf):
3334         (sprintf):
3335         (asprintf.k.prime):
3336         (asprintf):
3337         (k):
3338         (bprintf):
3339         (succ):
3340         (pred):
3341         (abs):
3342         (lognot):
3343         (Make.cmp_u):
3344         (Make.divrem_u):
3345         (Make.div_s):
3346         (Make.div_u):
3347         (Make.rem_s):
3348         (Make.rem_u):
3349         (Make.shift):
3350         (Make.shl):
3351         (Make.shr_s):
3352         (Make.shr_u):
3353         (Make.clamp_rotate_count):
3354         (Make.rotl):
3355         (Make.rotr):
3356         (Make.loop):
3357         (Make.clz):
3358         (Make.ctz):
3359         (Make.popcnt):
3360         (Make.eqz):
3361         (Make.lt_u):
3362         (Make.le_u):
3363         (Make.gt_u):
3364         (Make.ge_u):
3365         (Make.of_int_u):
3366         (Make.to_string_u):
3367         (Make.require):
3368         (Make.dec_digit):
3369         (Make.hex_digit):
3370         (Make.parse_int):
3371         (Make.of_string_s):
3372         (Make.of_string_u):
3373         (convert_pos):
3374         (error_nest):
3375         (text):
3376         (intop):
3377         (floatop):
3378         (numop):
3379         (memsz):
3380         (ext):
3381         (token.else.switch):
3382         (token.else.switch.):
3383         (token):
3384         (__ocaml_lex_comment_rec):
3385         (engine):
3386         (new_engine):
3387         (from_function):
3388         (from_channel):
3389         (from_string):
3390         (lexeme):
3391         (sub_lexeme):
3392         (sub_lexeme_opt):
3393         (sub_lexeme_char):
3394         (sub_lexeme_char_opt):
3395         (lexeme_char):
3396         (lexeme_start):
3397         (lexeme_end):
3398         (lexeme_start_p):
3399         (lexeme_end_p):
3400         (new_line):
3401         (flush_input):
3402         (take):
3403         (drop):
3404         (last):
3405         (split_last):
3406         (index_of):
3407         (index_of_int32):
3408         (dim):
3409         (set 1):
3410         (get 2):
3411         (log2):
3412         (is_power_of_two):
3413         (loop):
3414         (breakup):
3415         (hd):
3416         (tl):
3417         (rev_append):
3418         (rev):
3419         (flatten):
3420         (rev_map):
3421         (map2):
3422         (rev_map2):
3423         (iter2):
3424         (fold_left2):
3425         (fold_right2):
3426         (for_all):
3427         (exists):
3428         (for_all2):
3429         (exists2):
3430         (mem):
3431         (memq):
3432         (assoc):
3433         (assq):
3434         (mem_assoc):
3435         (mem_assq):
3436         (remove_assoc):
3437         (remove_assq):
3438         (find):
3439         (find_all):
3440         (partition):
3441         (split):
3442         (combine):
3443         (chop):
3444         (rev_sort):
3445         (sort_uniq):
3446         (Make.height):
3447         (Make.create):
3448         (Make.singleton):
3449         (Make.bal):
3450         (Make.is_empty):
3451         (Make.find):
3452         (Make.mem):
3453         (Make.min_binding):
3454         (Make.max_binding):
3455         (Make.remove_min_binding):
3456         (Make.remove):
3457         (Make.iter):
3458         (Make.map):
3459         (Make.mapi):
3460         (Make.fold):
3461         (Make.for_all):
3462         (Make.exists):
3463         (Make.add_min_binding):
3464         (Make.add_max_binding):
3465         (Make.join):
3466         (Make.concat):
3467         (Make.concat_or_join):
3468         (Make.split):
3469         (Make.merge):
3470         (Make.filter):
3471         (Make.partition):
3472         (Make.cons_enum):
3473         (Make.compare):
3474         (Make.equal):
3475         (Make.cardinal):
3476         (Make.bindings_aux):
3477         (Make.bindings):
3478         (double_field):
3479         (set_double_field):
3480         (marshal):
3481         (unmarshal):
3482         (extension_slot):
3483         (extension_name):
3484         (extension_id):
3485         (i32_const):
3486         (i64_const):
3487         (f32_const):
3488         (f64_const):
3489         (block):
3490         (br):
3491         (br_if):
3492         (br_table):
3493         (if_):
3494         (call):
3495         (call_indirect):
3496         (get_local):
3497         (set_local):
3498         (tee_local):
3499         (get_global):
3500         (set_global):
3501         (i32_load):
3502         (i64_load):
3503         (f32_load):
3504         (f64_load):
3505         (i32_load8_s):
3506         (i32_load8_u):
3507         (i32_load16_s):
3508         (i32_load16_u):
3509         (i64_load8_s):
3510         (i64_load8_u):
3511         (i64_load16_s):
3512         (i64_load16_u):
3513         (i64_load32_s):
3514         (i64_load32_u):
3515         (i32_store):
3516         (i64_store):
3517         (f32_store):
3518         (f64_store):
3519         (i32_store8):
3520         (i32_store16):
3521         (i64_store8):
3522         (i64_store16):
3523         (i64_store32):
3524         (parse):
3525         (string_to):
3526         (string_to_script):
3527         (string_to_module):
3528         (parse_error):
3529         (position_to_pos):
3530         (positions_to_region):
3531         (ati):
3532         (nat):
3533         (nat32):
3534         (empty_context):
3535         (enter_func):
3536         (type_):
3537         (lookup):
3538         (label):
3539         (anon_type):
3540         (bind):
3541         (bind_func):
3542         (bind_local):
3543         (bind_global):
3544         (bind_table):
3545         (bind_memory):
3546         (anon):
3547         (anon_func):
3548         (anon_locals):
3549         (anon_global):
3550         (anon_table):
3551         (anon_memory):
3552         (anon_label):
3553         (explicit_sig):
3554         (inline_type):
3555         (yyact):
3556         (script1):
3557         (module1):
3558         (grow_stacks):
3559         (clear_parser):
3560         (current_lookahead_fun):
3561         (catch.else.current_lookahead_fun.0):
3562         (yyparse):
3563         (peek_val):
3564         (symbol_start_pos):
3565         (symbol_end_pos):
3566         (rhs_start_pos):
3567         (rhs_end_pos):
3568         (symbol_start):
3569         (symbol_end):
3570         (rhs_start):
3571         (rhs_end):
3572         (is_current_lookahead):
3573         (failwith):
3574         (invalid_arg):
3575         (min):
3576         (max):
3577         (lnot):
3578         (char_of_int):
3579         (string_of_bool):
3580         (bool_of_string):
3581         (string_of_int):
3582         (valid_float_lexem):
3583         (string_of_float):
3584         (open_out_gen):
3585         (open_out):
3586         (open_out_bin):
3587         (flush_all):
3588         (output_bytes):
3589         (output_string):
3590         (output):
3591         (output_substring):
3592         (output_value):
3593         (close_out):
3594         (close_out_noerr):
3595         (open_in_gen):
3596         (open_in):
3597         (open_in_bin):
3598         (input):
3599         (else.r):
3600         (unsafe_really_input):
3601         (really_input):
3602         (really_input_string):
3603         (input_line.build_result):
3604         (input_line.n):
3605         (input_line.scan):
3606         (input_line):
3607         (close_in_noerr):
3608         (print_bytes):
3609         (print_endline):
3610         (prerr_char):
3611         (prerr_string):
3612         (prerr_bytes):
3613         (prerr_int):
3614         (prerr_float):
3615         (prerr_endline):
3616         (prerr_newline):
3617         (read_line):
3618         (read_int):
3619         (read_float):
3620         (string_of_format):
3621         (at_exit.exit_function.0):
3622         (at_exit):
3623         (do_at_exit):
3624         (exit):
3625         (output_binary_int):
3626         (seek_out):
3627         (pos_out):
3628         (out_channel_length):
3629         (set_binary_mode_out):
3630         (input_binary_int):
3631         (input_value):
3632         (seek_in):
3633         (pos_in):
3634         (in_channel_length):
3635         (close_in):
3636         (set_binary_mode_in):
3637         (LargeFile_000):
3638         (LargeFile_001):
3639         (LargeFile_002):
3640         (LargeFile_003):
3641         (LargeFile_004):
3642         (LargeFile_005):
3643         (kbprintf):
3644         (plus):
3645         (pp):
3646         (print):
3647         (string_of_pos):
3648         (string_of_region):
3649         (escaped.needs_escape):
3650         (set_signal):
3651         (catch_break):
3652         (size):
3653         (string_of_value_type):
3654         (string_of_value_types):
3655         (string_of_elem_type):
3656         (string_of_limits):
3657         (string_of_table_type):
3658         (string_of_global_type):
3659         (string_of_stack_type):
3660         (string_of_func_type):
3661         (type_of):
3662         (default_value):
3663         (value_of_bool):
3664         (string_of_values):
3665         (to_value):
3666         (of_value):
3667         (g):
3668         (binary):
3669         (bytes):
3670         * wasm/spec-tests/address.wast.js:
3671         (register): Deleted.
3672         (module): Deleted.
3673         (instance): Deleted.
3674         (assert_malformed): Deleted.
3675         (assert_invalid): Deleted.
3676         (assert_soft_invalid): Deleted.
3677         (assert_unlinkable): Deleted.
3678         (assert_uninstantiable): Deleted.
3679         (assert_trap): Deleted.
3680         (assert_return): Deleted.
3681         (assert_return_nan): Deleted.
3682         * wasm/spec-tests/binary.wast.js:
3683         (register): Deleted.
3684         (module): Deleted.
3685         (instance): Deleted.
3686         (assert_malformed): Deleted.
3687         (assert_invalid): Deleted.
3688         (assert_soft_invalid): Deleted.
3689         (assert_unlinkable): Deleted.
3690         (assert_uninstantiable): Deleted.
3691         (assert_trap): Deleted.
3692         (assert_return): Deleted.
3693         (assert_return_nan): Deleted.
3694         * wasm/spec-tests/block.wast.js:
3695         (register): Deleted.
3696         (module): Deleted.
3697         (instance): Deleted.
3698         (assert_malformed): Deleted.
3699         (assert_invalid): Deleted.
3700         (assert_soft_invalid): Deleted.
3701         (assert_unlinkable): Deleted.
3702         (assert_uninstantiable): Deleted.
3703         (assert_trap): Deleted.
3704         (assert_return): Deleted.
3705         (assert_return_nan): Deleted.
3706         * wasm/spec-tests/br.wast.js:
3707         (register): Deleted.
3708         (module): Deleted.
3709         (instance): Deleted.
3710         (assert_malformed): Deleted.
3711         (assert_invalid): Deleted.
3712         (assert_soft_invalid): Deleted.
3713         (assert_unlinkable): Deleted.
3714         (assert_uninstantiable): Deleted.
3715         (assert_trap): Deleted.
3716         (assert_return): Deleted.
3717         (assert_return_nan): Deleted.
3718         * wasm/spec-tests/br_if.wast.js:
3719         (register): Deleted.
3720         (module): Deleted.
3721         (instance): Deleted.
3722         (assert_malformed): Deleted.
3723         (assert_invalid): Deleted.
3724         (assert_soft_invalid): Deleted.
3725         (assert_unlinkable): Deleted.
3726         (assert_uninstantiable): Deleted.
3727         (assert_trap): Deleted.
3728         (assert_return): Deleted.
3729         (assert_return_nan): Deleted.
3730         * wasm/spec-tests/br_table.wast.js:
3731         (register): Deleted.
3732         (module): Deleted.
3733         (instance): Deleted.
3734         (assert_malformed): Deleted.
3735         (assert_invalid): Deleted.
3736         (assert_soft_invalid): Deleted.
3737         (assert_unlinkable): Deleted.
3738         (assert_uninstantiable): Deleted.
3739         (assert_trap): Deleted.
3740         (assert_return): Deleted.
3741         (assert_return_nan): Deleted.
3742         * wasm/spec-tests/break-drop.wast.js:
3743         (register): Deleted.
3744         (module): Deleted.
3745         (instance): Deleted.
3746         (assert_malformed): Deleted.
3747         (assert_invalid): Deleted.
3748         (assert_soft_invalid): Deleted.
3749         (assert_unlinkable): Deleted.
3750         (assert_uninstantiable): Deleted.
3751         (assert_trap): Deleted.
3752         (assert_return): Deleted.
3753         (assert_return_nan): Deleted.
3754         * wasm/spec-tests/call.wast.js:
3755         (register): Deleted.
3756         (module): Deleted.
3757         (instance): Deleted.
3758         (assert_malformed): Deleted.
3759         (assert_invalid): Deleted.
3760         (assert_soft_invalid): Deleted.
3761         (assert_unlinkable): Deleted.
3762         (assert_uninstantiable): Deleted.
3763         (assert_trap): Deleted.
3764         (assert_return): Deleted.
3765         (assert_return_nan): Deleted.
3766         * wasm/spec-tests/call_indirect.wast.js:
3767         (register): Deleted.
3768         (module): Deleted.
3769         (instance): Deleted.
3770         (assert_malformed): Deleted.
3771         (assert_invalid): Deleted.
3772         (assert_soft_invalid): Deleted.
3773         (assert_unlinkable): Deleted.
3774         (assert_uninstantiable): Deleted.
3775         (assert_trap): Deleted.
3776         (assert_return): Deleted.
3777         (assert_return_nan): Deleted.
3778         * wasm/spec-tests/comments.wast.js:
3779         (register): Deleted.
3780         (module): Deleted.
3781         (instance): Deleted.
3782         (assert_malformed): Deleted.
3783         (assert_invalid): Deleted.
3784         (assert_soft_invalid): Deleted.
3785         (assert_unlinkable): Deleted.
3786         (assert_uninstantiable): Deleted.
3787         (assert_trap): Deleted.
3788         (assert_return): Deleted.
3789         (assert_return_nan): Deleted.
3790         * wasm/spec-tests/conversions.wast.js:
3791         (register): Deleted.
3792         (module): Deleted.
3793         (instance): Deleted.
3794         (assert_malformed): Deleted.
3795         (assert_invalid): Deleted.
3796         (assert_soft_invalid): Deleted.
3797         (assert_unlinkable): Deleted.
3798         (assert_uninstantiable): Deleted.
3799         (assert_trap): Deleted.
3800         (assert_return): Deleted.
3801         (assert_return_nan): Deleted.
3802         * wasm/spec-tests/custom_section.wast.js:
3803         (register): Deleted.
3804         (module): Deleted.
3805         (instance): Deleted.
3806         (assert_malformed): Deleted.
3807         (assert_invalid): Deleted.
3808         (assert_soft_invalid): Deleted.
3809         (assert_unlinkable): Deleted.
3810         (assert_uninstantiable): Deleted.
3811         (assert_trap): Deleted.
3812         (assert_return): Deleted.
3813         (assert_return_nan): Deleted.
3814         * wasm/spec-tests/endianness.wast.js:
3815         (register): Deleted.
3816         (module): Deleted.
3817         (instance): Deleted.
3818         (assert_malformed): Deleted.
3819         (assert_invalid): Deleted.
3820         (assert_soft_invalid): Deleted.
3821         (assert_unlinkable): Deleted.
3822         (assert_uninstantiable): Deleted.
3823         (assert_trap): Deleted.
3824         (assert_return): Deleted.
3825         (assert_return_nan): Deleted.
3826         * wasm/spec-tests/exports.wast.js:
3827         (register): Deleted.
3828         (module): Deleted.
3829         (instance): Deleted.
3830         (assert_malformed): Deleted.
3831         (assert_invalid): Deleted.
3832         (assert_soft_invalid): Deleted.
3833         (assert_unlinkable): Deleted.
3834         (assert_uninstantiable): Deleted.
3835         (assert_trap): Deleted.
3836         (assert_return): Deleted.
3837         (assert_return_nan): Deleted.
3838         * wasm/spec-tests/f32.wast.js: Removed.
3839         * wasm/spec-tests/f32_cmp.wast.js:
3840         (register): Deleted.
3841         (module): Deleted.
3842         (instance): Deleted.
3843         (assert_malformed): Deleted.
3844         (assert_invalid): Deleted.
3845         (assert_soft_invalid): Deleted.
3846         (assert_unlinkable): Deleted.
3847         (assert_uninstantiable): Deleted.
3848         (assert_trap): Deleted.
3849         (assert_return): Deleted.
3850         (assert_return_nan): Deleted.
3851         * wasm/spec-tests/f64.wast.js: Removed.
3852         * wasm/spec-tests/f64_cmp.wast.js:
3853         (register): Deleted.
3854         (module): Deleted.
3855         (instance): Deleted.
3856         (assert_malformed): Deleted.
3857         (assert_invalid): Deleted.
3858         (assert_soft_invalid): Deleted.
3859         (assert_unlinkable): Deleted.
3860         (assert_uninstantiable): Deleted.
3861         (assert_trap): Deleted.
3862         (assert_return): Deleted.
3863         (assert_return_nan): Deleted.
3864         * wasm/spec-tests/fac.wast.js:
3865         (register): Deleted.
3866         (module): Deleted.
3867         (instance): Deleted.
3868         (assert_malformed): Deleted.
3869         (assert_invalid): Deleted.