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