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