118e9f692ac6312abee26710fba5ab20c431d031
[WebKit-https.git] / JSTests / ChangeLog
1 2016-12-05  Keith Miller  <keith_miller@apple.com>
2
3         Add Wasm i64 to i32 conversion.
4         https://bugs.webkit.org/show_bug.cgi?id=165378
5
6         Reviewed by Filip Pizlo.
7
8         It turns out the wrap operation is just B3's Trunc.
9
10         * wasm/wasm.json:
11
12 2016-12-04  Keith Miller  <keith_miller@apple.com>
13
14         Add support for Wasm ctz and popcnt
15         https://bugs.webkit.org/show_bug.cgi?id=165369
16
17         Reviewed by Saam Barati.
18
19         * wasm/function-tests/ctz.js: Added.
20         * wasm/function-tests/popcnt.js: Added.
21
22 2016-12-03  JF Bastien  <jfbastien@apple.com>
23
24         WebAssembly: update binary format to 0xD version
25         https://bugs.webkit.org/show_bug.cgi?id=165345
26
27         Reviewed by Keith Miller.
28
29         As described in the following PR: https://github.com/WebAssembly/design/pull/836
30         Originally committed in r209175, reverted in r209242, and fixed in r209284.
31
32         * wasm/Builder.js:
33         (const._normalizeFunctionSignature):
34         * wasm/Builder_WebAssemblyBinary.js:
35         (const.emitters.Type):
36         (const.emitters.Code):
37         * wasm/LowLevelBinary.js:
38         (export.default.LowLevelBinary.prototype.block_type):
39         (export.default.LowLevelBinary.prototype.inline_signature_type): Deleted.
40         * wasm/WASM.js:
41         * wasm/js-api/test_basic_api.js:
42         * wasm/self-test/test_BuilderWebAssembly.js:
43         (EmptyModule):
44         (CustomSection):
45         * wasm/self-test/test_WASM.js:
46         * wasm/wasm.json:
47
48 2016-12-02  Keith Miller  <keith_miller@apple.com>
49
50         Add Wasm copysign
51         https://bugs.webkit.org/show_bug.cgi?id=165355
52
53         Reviewed by Filip Pizlo.
54
55         * wasm/function-tests/copysign.js: Added.
56
57 2016-12-03  Commit Queue  <commit-queue@webkit.org>
58
59         Unreviewed, rolling out r209298.
60         https://bugs.webkit.org/show_bug.cgi?id=165359
61
62         broke the build (Requested by smfr on #webkit).
63
64         Reverted changeset:
65
66         "Add Wasm copysign"
67         https://bugs.webkit.org/show_bug.cgi?id=165355
68         http://trac.webkit.org/changeset/209298
69
70 2016-12-02  Keith Miller  <keith_miller@apple.com>
71
72         Add Wasm copysign
73         https://bugs.webkit.org/show_bug.cgi?id=165355
74
75         Reviewed by Filip Pizlo.
76
77         * wasm/function-tests/copysign.js: Added.
78
79 2016-12-02  Keith Miller  <keith_miller@apple.com>
80
81         Unreviewed, fix git having a breakdown over trying to reland a rollout.
82
83 2016-12-02  Keith Miller  <keith_miller@apple.com>
84
85         Add Wasm floating point nearest and trunc
86         https://bugs.webkit.org/show_bug.cgi?id=165339
87
88         Reviewed by Saam Barati.
89
90         * wasm/function-tests/nearest.js: Added.
91         * wasm/function-tests/trunc.js: Added.
92
93 2016-12-02  Caitlin Potter  <caitp@igalia.com>
94
95 [JSC] add additional bit to JSTokenType bitfield
96         https://bugs.webkit.org/show_bug.cgi?id=165091
97
98         Reviewed by Geoffrey Garen.
99
100         * stress/bug-165091.js: Added.
101         (shouldThrowSyntaxError):
102
103 2016-12-02  Commit Queue  <commit-queue@webkit.org>
104
105         Unreviewed, rolling out r209275 and r209276.
106         https://bugs.webkit.org/show_bug.cgi?id=165348
107
108         "broke the arm build" (Requested by keith_miller on #webkit).
109
110         Reverted changesets:
111
112         "Add Wasm floating point nearest and trunc"
113         https://bugs.webkit.org/show_bug.cgi?id=165339
114         http://trac.webkit.org/changeset/209275
115
116         "Unreviewed, forgot to change instruction after renaming."
117         http://trac.webkit.org/changeset/209276
118
119 2016-12-02  Keith Miller  <keith_miller@apple.com>
120
121         Add Wasm floating point nearest and trunc
122         https://bugs.webkit.org/show_bug.cgi?id=165339
123
124         Reviewed by Filip Pizlo.
125
126         * wasm/function-tests/nearest.js: Added.
127         * wasm/function-tests/trunc.js: Added.
128
129 2016-12-02  JF Bastien  <jfbastien@apple.com>
130
131         WebAssembly: revert patch causing odd breakage
132         https://bugs.webkit.org/show_bug.cgi?id=165308
133
134         Unreviewed.
135
136         Bug #164724 seems to cause build issues which I haven't tracked down yet. WasmOps.h can't be found:
137         ./Source/JavaScriptCore/wasm/WasmFormat.h:34:10: fatal error: 'WasmOps.h' file not found
138
139         It's weird since the file is auto-generated and has been for a while. #164724 merely includes it in WasmFormat.h.
140
141         * wasm/Builder.js:
142         (const._normalizeFunctionSignature):
143         * wasm/Builder_WebAssemblyBinary.js:
144         (const.emitters.Type):
145         (const.emitters.Code):
146         * wasm/LowLevelBinary.js:
147         (export.default.LowLevelBinary.prototype.inline_signature_type):
148         (export.default.LowLevelBinary.prototype.block_type): Deleted.
149         * wasm/WASM.js:
150         * wasm/js-api/test_basic_api.js:
151         * wasm/self-test/test_BuilderWebAssembly.js:
152         (EmptyModule):
153         (CustomSection):
154         * wasm/self-test/test_WASM.js:
155         * wasm/wasm.json:
156
157 2016-12-01  Ryan Haddad  <ryanhaddad@apple.com>
158
159         Skip flaky test ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js
160         https://bugs.webkit.org/show_bug.cgi?id=162567
161
162         Reviewed by Saam Barati.
163
164         * ChakraCore.yaml:
165
166 2016-12-01  Keith Miller  <keith_miller@apple.com>
167
168         Add wasm int to floating point opcodes
169         https://bugs.webkit.org/show_bug.cgi?id=165252
170
171         Reviewed by Geoffrey Garen.
172
173         Add tests for Wasm integral to floating point conversion opcodes.
174
175         * wasm/function-tests/int-to-floating-point.js: Added.
176         * wasm/wasm.json:
177
178 2016-12-01  Geoffrey Garen  <ggaren@apple.com>
179
180         Land a test case for <rdar://problem/27889416>
181         https://bugs.webkit.org/show_bug.cgi?id=165272
182
183         Reviewed by Saam Barati.
184
185         * stress/marked-argument-buffer.js: Added.
186         (allocate):
187         (test.o.toString):
188         (test):
189
190 2016-11-29  Per Arne Vollan  <pvollan@apple.com>
191
192         [Win] Skip failing JSC tests.
193         https://bugs.webkit.org/show_bug.cgi?id=165140
194
195         Reviewed by Mark Lam.
196
197         * ChakraCore.yaml:
198         * microbenchmarks/tan.js:
199
200 2016-11-30  JF Bastien  <jfbastien@apple.com>
201
202         WebAssembly builder: don't throw when checker not implemented
203         https://bugs.webkit.org/show_bug.cgi?id=165219
204
205         Reviewed by Mark Lam.
206
207         We should perform whichever checks we've implemented, and assume the rest are OK until bug #163421 is fixed.
208
209         * wasm/Builder.js:
210         * wasm/README.md:
211         * wasm/function-tests/add-12.js:
212         * wasm/function-tests/br-if-loop-less-than.js:
213         * wasm/function-tests/brTableAsIf.js:
214         * wasm/function-tests/brTableManyValues.js:
215         * wasm/function-tests/brTableWithLoop.js:
216         * wasm/function-tests/dumb-eq-if-then-else.js:
217         * wasm/function-tests/dumb-less-than-fallthrough.js:
218         * wasm/function-tests/dumb-less-than-ite.js:
219         * wasm/function-tests/eqz.js:
220         * wasm/function-tests/factorial.js:
221         * wasm/function-tests/float-sub.js:
222         * wasm/function-tests/i32-load.js:
223         * wasm/function-tests/i32-load8-s.js:
224         * wasm/function-tests/if-then-else-fallthrough.js:
225         * wasm/function-tests/if-then-fallthrough.js:
226         * wasm/function-tests/loop-mult.js:
227         * wasm/function-tests/loop-sum.js:
228         * wasm/function-tests/max.js:
229         * wasm/function-tests/min.js:
230         * wasm/function-tests/ret5.js:
231         * wasm/function-tests/select.js:
232         * wasm/self-test/test_BuilderJSON.js:
233
234 2016-11-29  JF Bastien  <jfbastien@apple.com>
235
236         WebAssembly JS API: improve Instance
237         https://bugs.webkit.org/show_bug.cgi?id=164757
238
239         Reviewed by Keith Miller.
240
241         An Instance's `exports` property wasn't populated with exports.
242
243         A follow-up patch will do imports.
244
245         A few things of note:
246
247          - LowLevelBinary: support 3-byte integers.
248          - LowLevelBinary: support proper UTF-8 2003 code points (instead of UTF-16).
249
250         * wasm/Builder.js:
251         * wasm/Builder_WebAssemblyBinary.js: wire up exports, stub other things out some more
252         (const.emitters.Export):
253         * wasm/LowLevelBinary.js:
254         (export.default.LowLevelBinary.prototype.uint24): add, used for UTF-8
255         (export.default.LowLevelBinary.prototype.string): support UTF-8
256         (export.default.LowLevelBinary.prototype.getUint24): add, used for UTF-8
257         (export.default.LowLevelBinary.prototype.getVaruint1): was missing
258         (export.default.LowLevelBinary.prototype.getString): support UTF-8
259         (export.default.LowLevelBinary):
260         * wasm/js-api/test_Instance.js: instance.exports.answer() // <-- this is where the magic of this entire patch is
261         (ExportedAnswerI32):
262         * wasm/js-api/test_basic_api.js: punt test to later
263         (const.c.in.constructorProperties.switch):
264         * wasm/self-test/test_BuilderWebAssembly.js: UTF-8
265         (CustomSection):
266         * wasm/self-test/test_LowLevelBinary_string.js: UTF-8 now works
267         * wasm/self-test/test_LowLevelBinary_uint16.js: was missing one value
268         * wasm/self-test/test_LowLevelBinary_uint24.js: Copied from JSTests/wasm/self-test/test_LowLevelBinary_uint8.js.
269         * wasm/self-test/test_LowLevelBinary_uint8.js: was missing one value
270         * wasm/self-test/test_LowLevelBinary_varuint1.js: Added.
271         * wasm/utilities.js: this `dump` thing was useful
272         (const._dump):
273
274 2016-11-29  Saam Barati  <sbarati@apple.com>
275
276         We should be able optimize the pattern where we spread a function's rest parameter to another call
277         https://bugs.webkit.org/show_bug.cgi?id=163865
278
279         Reviewed by Filip Pizlo.
280
281         * microbenchmarks/default-derived-constructor.js: Added.
282         (createClassHierarchy.let.currentClass):
283         (createClassHierarchy):
284         * stress/call-varargs-spread.js: Added.
285         (assert):
286         (bar):
287         (foo):
288         * stress/load-varargs-on-new-array-with-spread-convert-to-static-loads.js: Added.
289         (assert):
290         (baz):
291         (bar):
292         (foo):
293         * stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js: Added.
294         (assert):
295         (foo):
296         (escape):
297         (bar):
298         * stress/phantom-new-array-with-spread-osr-exit.js: Added.
299         (assert):
300         (baz):
301         (bar):
302         (effects):
303         (foo):
304         * stress/phantom-spread-forward-varargs.js: Added.
305         (assert):
306         (test1.bar):
307         (test1.foo):
308         (test1):
309         (test2.bar):
310         (test2.foo):
311         (test3.baz):
312         (test3.bar):
313         (test3.foo):
314         (test4.baz):
315         (test4.bar):
316         (test4.foo):
317         (test5.baz):
318         (test5.bar):
319         (test5.foo):
320         * stress/phantom-spread-osr-exit.js: Added.
321         (assert):
322         (baz):
323         (bar):
324         (effects):
325         (foo):
326         * stress/spread-call-convert-to-static-call.js: Added.
327         (assert):
328         (baz):
329         (bar):
330         (foo):
331         * stress/spread-forward-call-varargs-stack-overflow.js: Added.
332         (assert):
333         (identity):
334         (bar):
335         (foo):
336         * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol-2.js: Added.
337         (assert):
338         (baz.Array.prototype.Symbol.iterator):
339         (baz):
340         (bar):
341         (foo):
342         (test):
343         * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol.js: Added.
344         (assert):
345         (baz.Array.prototype.Symbol.iterator):
346         (baz):
347         (bar):
348         (foo):
349         * stress/spread-forward-varargs-stack-overflow.js: Added.
350         (assert):
351         (bar):
352         (foo):
353
354 2016-11-29  Caitlin Potter  <caitp@igalia.com>
355
356         [JSC] always wrap AwaitExpression operand in a new Promise
357         https://bugs.webkit.org/show_bug.cgi?id=165181
358
359         Reviewed by Yusuke Suzuki.
360
361         * stress/async-await-basic.js:
362         (async.awaitedPromisesAreWrapped):
363
364 2016-11-29  Keith Miller  <keith_miller@apple.com>
365
366         Add simple way to implement Wasm ops that require more than one B3 opcode
367         https://bugs.webkit.org/show_bug.cgi?id=165129
368
369         Reviewed by Geoffrey Garen.
370
371         * wasm/function-tests/eqz.js: Added.
372         * wasm/function-tests/max.js: Added.
373         * wasm/function-tests/min.js: Added.
374         * wasm/wasm.json:
375
376 2016-11-21  Yusuke Suzuki  <utatane.tea@gmail.com>
377
378         Crash in com.apple.JavaScriptCore: WTF::ThreadSpecific<WTF::WTFThreadData, + 142
379         https://bugs.webkit.org/show_bug.cgi?id=164898
380
381         Reviewed by Darin Adler.
382
383         * stress/tagged-template-registry-key-collect.js: Added.
384         (shouldBe):
385         (tag):
386         (i.eval):
387         * stress/tagged-template-registry-key.js: Added.
388         (shouldBe):
389         (tag):
390         (a):
391         (b):
392
393 2016-11-20  Caitlin Potter  <caitp@igalia.com>
394
395         [JSC] speed up parsing of async functions
396         https://bugs.webkit.org/show_bug.cgi?id=164808
397
398         Reviewed by Yusuke Suzuki.
399
400         Add tests for line terminator following "async" keyword in async
401         function syntax.
402
403         * stress/async-await-syntax.js:
404         (shouldBe):
405
406 2016-11-19  Mark Lam  <mark.lam@apple.com>
407
408         op_mod-* JSC tests needs a longer timeout too.
409         https://bugs.webkit.org/show_bug.cgi?id=164994
410
411         Reviewed by Yusuke Suzuki.
412
413         * stress/op_mod-ConstVar.js:
414         * stress/op_mod-VarConst.js:
415         * stress/op_mod-VarVar.js:
416
417 2016-11-19  Mark Lam  <mark.lam@apple.com>
418
419         Add --timeoutMultiplier option to allow some tests more time to run.
420         https://bugs.webkit.org/show_bug.cgi?id=164951
421
422         Reviewed by Yusuke Suzuki.
423
424         Extended the timeout for these tests by 50% more because they run quite slow on
425         low-end machines.
426
427         * stress/op_div-ConstVar.js:
428         * stress/op_div-VarConst.js:
429         * stress/op_div-VarVar.js:
430
431 2016-11-18  Yusuke Suzuki  <utatane.tea@gmail.com>
432
433         REGRESSION(r208867): JSC test failure: ChakraCore.yaml/ChakraCore/test/strict/05.arguments_sm.js.default
434         https://bugs.webkit.org/show_bug.cgi?id=164929
435
436         Reviewed by Mark Lam.
437
438         ES2017 drops arguments.caller and JavaScriptCore is updated to meet the spec.
439         This patch rebaselines the result of ChakraCore test for JSC.
440
441         * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
442
443 2016-11-18  Joseph Pecoraro  <pecoraro@apple.com>
444
445         Web Inspector: Generator functions should have a displayable name when shown in stack traces
446         https://bugs.webkit.org/show_bug.cgi?id=164844
447         <rdar://problem/29300697>
448
449         Reviewed by Yusuke Suzuki.
450
451         * stress/generator-function-name.js:
452         Add another test now that we name the inner generator function
453         that we do not break the lexical resolution of names.
454
455 2016-11-17  Yusuke Suzuki  <utatane.tea@gmail.com>
456
457         [JSC] Drop arguments.caller
458         https://bugs.webkit.org/show_bug.cgi?id=164859
459
460         Reviewed by Saam Barati.
461
462         * stress/strict-mode-arguments-caller.js: Added.
463         (strictArguments):
464         (shouldBe):
465
466 2016-11-17  Keith Miller  <keith_miller@apple.com>
467
468         Add rotate to Wasm
469         https://bugs.webkit.org/show_bug.cgi?id=164871
470
471         Reviewed by Filip Pizlo.
472
473         * wasm/wasm.json:
474
475 2016-11-17  Keith Miller  <keith_miller@apple.com>
476
477         Add sqrt to Wasm
478         https://bugs.webkit.org/show_bug.cgi?id=164877
479
480         Reviewed by Mark Lam.
481
482         B3 already has a Sqrt opcode we just need to map Wasm to it.
483
484         * wasm/wasm.json:
485
486 2016-11-17  Saam Barati  <sbarati@apple.com>
487
488         Remove async/await compile time flag and enable tests
489         https://bugs.webkit.org/show_bug.cgi?id=164828
490         <rdar://problem/28639334>
491
492         Reviewed by Yusuke Suzuki.
493
494         * stress/async-arrow-functions-lexical-arguments-binding.js:
495         * stress/async-arrow-functions-lexical-new.target-binding.js:
496         * stress/async-arrow-functions-lexical-super-binding.js:
497         * stress/async-arrow-functions-lexical-this-binding.js:
498         * stress/async-await-basic.js:
499         * stress/async-await-long-loop.js:
500         * stress/async-await-module-reserved-word.js:
501         * stress/async-await-mozilla.js:
502         (mozSyntaxErrors):
503         * stress/async-await-reserved-word.js:
504         * stress/async-await-syntax.js:
505         * stress/async-await-throw-loop.js:
506         * stress/async-function-create-nobaseline.js:
507         * stress/async-function-create-optimized.js:
508         * stress/async-function-declaration-sinking-no-double-allocate.js:
509         * stress/async-function-declaration-sinking-osrexit.js:
510         * stress/async-function-declaration-sinking-put.js:
511         * stress/async-function-expression-sinking-no-double-allocate.js:
512         * stress/async-function-expression-sinking-osrexit.js:
513         * stress/async-function-expression-sinking-put.js:
514         * test262.yaml:
515
516 2016-11-15  Mark Lam  <mark.lam@apple.com>
517
518         Make JSC test functions more robust.
519         https://bugs.webkit.org/show_bug.cgi?id=164807
520
521         Reviewed by Keith Miller.
522
523         * stress/jsc-test-functions-should-be-more-robust.js: Added.
524
525 2016-11-15  Keith Miller  <keith_miller@apple.com>
526
527         B3 should support UDiv/UMod
528         https://bugs.webkit.org/show_bug.cgi?id=164811
529
530         Reviewed by Filip Pizlo.
531
532         Link new instructions to wasm.
533
534         * wasm/wasm.json:
535
536 2016-11-15  Saam Barati  <sbarati@apple.com>
537
538         Debug JSC test timeout: stress/has-own-property-name-cache-symbols-and-strings.js.ftl-no-cjit-small-pool
539         https://bugs.webkit.org/show_bug.cgi?id=163012
540
541         Unreviewed. This patch makes a test run for less time because it's timing out on the bots.
542
543         * stress/has-own-property-name-cache-symbols-and-strings.js:
544
545 2016-11-15  Mark Lam  <mark.lam@apple.com>
546
547         The jsc shell's setImpureGetterDelegate() should ensure that the set value is an ImpureGetter.
548         https://bugs.webkit.org/show_bug.cgi?id=164781
549         <rdar://problem/28418590>
550
551         Reviewed by Geoffrey Garen and Michael Saboff.
552
553         * stress/jsc-setImpureGetterDelegate-on-bad-type.js: Added.
554
555 2016-11-15  Yusuke Suzuki  <utatane.tea@gmail.com>
556
557         [DOMJIT] Allow using macro assembler scratches in FTL CheckDOM
558         https://bugs.webkit.org/show_bug.cgi?id=164727
559
560         Reviewed by Filip Pizlo.
561
562         * stress/check-dom-with-signature.js: Added.
563         (shouldBe):
564         (calling):
565         (i.array.forEach):
566
567 2016-11-14  Caitlin Potter  <caitp@igalia.com>
568
569         [JSC] do not reference AwaitExpression Promises in async function Promise chain
570         https://bugs.webkit.org/show_bug.cgi?id=164753
571
572         Reviewed by Yusuke Suzuki.
573
574         * asyncFunctionTests.yaml:
575         * stress/async-await-long-loop.js: Added.
576         (shouldBe):
577         (async.longLoop):
578         * stress/async-await-throw-loop.js: Added.
579         (shouldBe):
580         (async.thrower):
581         (async.throwLoop):
582
583 2016-11-14  Keith Miller  <keith_miller@apple.com>
584
585         Add Wasm select
586         https://bugs.webkit.org/show_bug.cgi?id=164743
587
588         Reviewed by Saam Barati.
589
590         * wasm/function-tests/select.js: Added.
591
592 2016-11-14  Caitlin Potter  <caitp@igalia.com>
593
594         [JSC] Handle new_async_func / new_async_func_exp in DFG / FTL
595         https://bugs.webkit.org/show_bug.cgi?id=164037
596
597         Reviewed by Yusuke Suzuki.
598
599         Add tests based on tests from https://trac.webkit.org/changeset/194216.
600
601         * asyncFunctionTests.yaml:
602         * stress/async-function-create-nobaseline.js: Added.
603         * stress/async-function-create-optimized.js: Added.
604         * stress/async-function-declaration-sinking-no-double-allocate.js: Added.
605         * stress/async-function-declaration-sinking-osrexit.js: Added.
606         * stress/async-function-declaration-sinking-put.js: Added.
607         * stress/async-function-expression-sinking-no-double-allocate.js: Added.
608         * stress/async-function-expression-sinking-osrexit.js: Added.
609         * stress/async-function-expression-sinking-put.js: Added.
610
611 2016-11-14  Mark Lam  <mark.lam@apple.com>
612
613         Some of JSStringView::SafeView methods are not idiomatically safe for JSString to StringView conversions.
614         https://bugs.webkit.org/show_bug.cgi?id=164701
615         <rdar://problem/27462104>
616
617         Reviewed by Darin Adler.
618
619         * stress/string-prototype-charCodeAt-on-too-long-rope.js: Added.
620
621 2016-11-14  Mark Lam  <mark.lam@apple.com>
622
623         RegExpObject::exec/match should handle errors gracefully.
624         https://bugs.webkit.org/show_bug.cgi?id=155145
625         <rdar://problem/27435934>
626
627         Reviewed by Keith Miller.
628
629         * stress/regexp-prototype-exec-on-too-long-rope.js: Added.
630         * stress/regexp-prototype-match-on-too-long-rope.js: Added.
631         * stress/regexp-prototype-test-on-too-long-rope.js: Added.
632
633 2016-11-14  Mark Lam  <mark.lam@apple.com>
634
635         Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
636         https://bugs.webkit.org/show_bug.cgi?id=164695
637
638         Reviewed by Keith Miller.
639
640         Replace use of runMisc* test run configurations with equivalents.
641
642         * stress/licm-no-pre-header-nested.js:
643         * stress/licm-no-pre-header.js:
644         * stress/licm-pre-header-cannot-exit-nested.js:
645         * stress/licm-pre-header-cannot-exit.js:
646         * stress/make-dictionary-repatch.js:
647         * stress/retry-cache-later.js:
648         * stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
649         * stress/slow-path-generator-updating-current-node-dfg.js:
650         * stress/unshift-array-storage.js:
651
652 2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>
653
654         test262: DataView with explicit undefined byteLength should be the same as it not being present
655         https://bugs.webkit.org/show_bug.cgi?id=164453
656
657         Reviewed by Darin Adler.
658
659         * stress/dataview-construct.js: Added.
660         (assert):
661         (shouldThrow):
662         * test262.yaml:
663
664 2016-11-11  Joseph Pecoraro  <pecoraro@apple.com>
665
666         test262: DataView get methods should allow for missing offset, set methods should allow for missing value
667         https://bugs.webkit.org/show_bug.cgi?id=164451
668
669         Reviewed by Darin Adler.
670
671         * test262.yaml:
672
673 2016-11-11  Saam Barati  <sbarati@apple.com>
674
675         We should have a more concise way of determining when we're varargs calling a function using rest parameters
676         https://bugs.webkit.org/show_bug.cgi?id=164258
677
678         Reviewed by Yusuke Suzuki.
679
680         * microbenchmarks/call-using-spread.js: Added.
681         (bar):
682         (foo):
683         * microbenchmarks/spread-large-array.js: Added.
684         (foo):
685         (arrays.push):
686         * microbenchmarks/spread-small-array.js: Added.
687         (foo):
688         * stress/spread-array-iterator-watchpoint-2.js: Added.
689         (foo):
690         (arrayIterator.next):
691         * stress/spread-array-iterator-watchpoint.js: Added.
692         (foo):
693         (Array.prototype.Symbol.iterator):
694         * stress/spread-non-array.js: Added.
695         (assert):
696         (foo):
697         (let.customIterator.Symbol.iterator):
698         (bar):
699
700 2016-11-11  Keith Miller  <keith_miller@apple.com>
701
702         Relocate wasm tests and actually add them to the test runner
703         https://bugs.webkit.org/show_bug.cgi?id=164668
704
705         Reviewed by Yusuke Suzuki.
706
707         This moves the Wasm tests from their current location down a level.
708         Without relocating, the tests cannot properly be run by the wasm test runner.
709
710         * wasm.yaml:
711         * wasm/Builder.js: Fix typos, yay lazy synatx checking!
712         * wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking!
713         (export.default.LowLevelBinary.prototype.get return):
714         * wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js.
715         * wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js.
716         * wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js.
717         * wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js.
718         * wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js.
719         * wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js.
720         * wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js.
721         * wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js.
722         * wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js.
723         * wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js.
724         * wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js.
725         * wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js.
726         * wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js.
727         * wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js.
728         * wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js.
729         * wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js.
730         * wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js.
731         * wasm/self-test/test_BuilderJSON.js: Rebasline
732
733 2016-11-11  Keith Miller  <keith_miller@apple.com>
734
735         Move Wasm tests to JS
736         https://bugs.webkit.org/show_bug.cgi?id=164611
737
738         Reviewed by Geoffrey Garen.
739
740         This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the
741         ommited tests were earliest tests, which tested trivial things, like adding two
742         constants. Some tests are ommited for other reasons, however. These are:
743
744         1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers.  2)
745         Tests that would validate the memory of the module once wasm was done with it since that's
746         not really possible in JS.
747
748         In order to make such a translation easier this patch also adds some features to the JS
749         testing api:
750
751         1) Blocks can now be done lexically by adding a lambda as the last argument of the block
752         opcode. For example one can do:
753             ...
754             .Block("i32", b => b.I32Const(1) )
755
756         and the nested lambda will automatically have an end attached.
757
758         2) The JS testing api can now handle inline signature types.
759
760         3) Relocate some code to make it easier to follow and prevent 44 space indentation.
761
762         4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the
763         wasm.json without being remapped.
764
765         5) Add support for Memory and Function sections to the Builder.
766
767         6) Add support for local variables.
768
769         On the JSC side, we needed to expose a new function to validate the compiled wasm code
770         behaves the way we expect. At least until the JS Wasm API is finished. The new validation
771         function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the
772         number of functions in the blob and tests for each of those functions.
773
774         * wasm/Builder.js:
775         (const._maybeRegisterType):
776         (const): Deleted.
777         (switch.typeof): Deleted.
778         * wasm/Builder_WebAssemblyBinary.js:
779         (const.emitters.Type):
780         (const.emitters.Import):
781         (const.emitters.Function):
782         (const.emitters.Memory):
783         (const.emitters.Code):
784         (export.const.Binary):
785         * wasm/LowLevelBinary.js:
786         (export.default.LowLevelBinary.prototype.get return):
787         (export.default.LowLevelBinary.prototype.varuint32):
788         (export.default.LowLevelBinary.prototype.varint32):
789         (export.default.LowLevelBinary.prototype.varuint1):
790         (export.default.LowLevelBinary.prototype.varint7):
791         (export.default.LowLevelBinary.prototype.varuint7):
792         (export.default.LowLevelBinary.prototype.inline_signature_type):
793         (export.default.LowLevelBinary.prototype.string):
794         (export.default.LowLevelBinary.prototype.getVaruint32):
795         (export.default.LowLevelBinary.prototype.getVarint32):
796         (export.default.LowLevelBinary.prototype.getVaruint7):
797         (export.default.LowLevelBinary.prototype.getString):
798         (export.default.LowLevelBinary):
799         (export.default.LowLevelBinary.prototype.varuint): Deleted.
800         (export.default.LowLevelBinary.prototype.varint): Deleted.
801         (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
802         (export.default.LowLevelBinary.prototype.getVarint): Deleted.
803         * wasm/js-api/test_old_tests.js: Added.
804         (ret5):
805         (brTableWithLoop):
806         (brTableManyValues):
807         (run.brTableManyValues.brTableAsIf):
808         (ifThenFallthrough):
809         (ifThenElseFallthrough):
810         (dumbLessThanFallthrough):
811         (run.dumbLessThanFallthrough.floatSub):
812         (run.floatSub.add12):
813         (run.add12.factorial):
814         (i32load):
815         (run.i32load.i32load8s):
816         (run.i32load8s.dumbEqIfThenElse):
817         (run.dumbEqIfThenElse.dumbEqIfThenElse):
818         (run.dumbEqIfThenElse.dumbLessThanIfThenElse):
819         (run.dumbLessThanIfThenElse.loopSum):
820         (run.loopSum.loopMult):
821         (brIfLoopLessThan):
822         (run.brIfLoopLessThan.run):
823         * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
824         * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
825
826         * wasm/Builder.js:
827         (const._maybeRegisterType):
828         (const): Deleted.
829         (switch.typeof): Deleted.
830         * wasm/Builder_WebAssemblyBinary.js:
831         (const.emitters.Type):
832         (const.emitters.Import):
833         (const.emitters.Function):
834         (const.emitters.Memory):
835         (const.emitters.Code):
836         (export.const.Binary):
837         * wasm/LowLevelBinary.js:
838         (export.default.LowLevelBinary.prototype.get return):
839         (export.default.LowLevelBinary.prototype.varuint32):
840         (export.default.LowLevelBinary.prototype.varint32):
841         (export.default.LowLevelBinary.prototype.varuint1):
842         (export.default.LowLevelBinary.prototype.varint7):
843         (export.default.LowLevelBinary.prototype.varuint7):
844         (export.default.LowLevelBinary.prototype.inline_signature_type):
845         (export.default.LowLevelBinary.prototype.string):
846         (export.default.LowLevelBinary.prototype.getVaruint32):
847         (export.default.LowLevelBinary.prototype.getVarint32):
848         (export.default.LowLevelBinary.prototype.getVaruint7):
849         (export.default.LowLevelBinary.prototype.getString):
850         (export.default.LowLevelBinary):
851         (export.default.LowLevelBinary.prototype.varuint): Deleted.
852         (export.default.LowLevelBinary.prototype.varint): Deleted.
853         (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
854         (export.default.LowLevelBinary.prototype.getVarint): Deleted.
855         * wasm/js-api/function-tests/add-12.js: Added.
856         * wasm/js-api/function-tests/br-if-loop-less-than.js: Added.
857         * wasm/js-api/function-tests/brTableAsIf.js: Added.
858         * wasm/js-api/function-tests/brTableManyValues.js: Added.
859         * wasm/js-api/function-tests/brTableWithLoop.js: Added.
860         * wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added.
861         * wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added.
862         * wasm/js-api/function-tests/dumb-less-than-ite.js: Added.
863         * wasm/js-api/function-tests/factorial.js: Added.
864         * wasm/js-api/function-tests/float-sub.js: Added.
865         * wasm/js-api/function-tests/i32-load.js: Added.
866         * wasm/js-api/function-tests/i32-load8-s.js: Added.
867         * wasm/js-api/function-tests/if-then-else-fallthrough.js: Added.
868         * wasm/js-api/function-tests/if-then-fallthrough.js: Added.
869         * wasm/js-api/function-tests/loop-mult.js: Added.
870         * wasm/js-api/function-tests/loop-sum.js: Added.
871         * wasm/js-api/function-tests/ret5.js: Added.
872         * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
873         * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
874
875 2016-11-11  Saam Barati  <sbarati@apple.com>
876
877         We recursively grab a lock in the DFGBytecodeParser causing us to deadlock
878         https://bugs.webkit.org/show_bug.cgi?id=164650
879
880         Reviewed by Geoffrey Garen.
881
882         * stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added.
883         (ident):
884         (let.o.set foo):
885         (foo):
886
887 2016-11-11  Chris Dumez  <cdumez@apple.com>
888
889         Unreviewed, rolling out r208584.
890
891         Seems to have regressed Speedometer by 1% on Mac
892
893         Reverted changeset:
894
895         "We should have a more concise way of determining when we're
896         varargs calling a function using rest parameters"
897         https://bugs.webkit.org/show_bug.cgi?id=164258
898         http://trac.webkit.org/changeset/208584
899
900 2016-11-11  Chris Dumez  <cdumez@apple.com>
901
902         Unreviewed, rolling out r208117 and r208160.
903
904         Regressed Speedometer by >1.5%
905
906         Reverted changesets:
907
908         "We should have a way of profiling when a get_by_id is pure
909         and to emit a PureGetById in the DFG/FTL"
910         https://bugs.webkit.org/show_bug.cgi?id=163305
911         http://trac.webkit.org/changeset/208117
912
913         "Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing
914         out"
915         https://bugs.webkit.org/show_bug.cgi?id=164227
916         http://trac.webkit.org/changeset/208160
917
918 2016-11-11  Saam Barati  <sbarati@apple.com>
919
920         We should have a more concise way of determining when we're varargs calling a function using rest parameters
921         https://bugs.webkit.org/show_bug.cgi?id=164258
922
923         Reviewed by Yusuke Suzuki.
924
925         * microbenchmarks/call-using-spread.js: Added.
926         (bar):
927         (foo):
928         * microbenchmarks/spread-large-array.js: Added.
929         (foo):
930         (arrays.push):
931         * microbenchmarks/spread-small-array.js: Added.
932         (foo):
933         * stress/spread-array-iterator-watchpoint-2.js: Added.
934         (foo):
935         (arrayIterator.next):
936         * stress/spread-array-iterator-watchpoint.js: Added.
937         (foo):
938         (Array.prototype.Symbol.iterator):
939         * stress/spread-non-array.js: Added.
940         (assert):
941         (foo):
942         (let.customIterator.Symbol.iterator):
943         (bar):
944
945 2016-11-10  Mark Lam  <mark.lam@apple.com>
946
947         Fix broken have-a-bad-time-with-arguments.js test.
948         https://bugs.webkit.org/show_bug.cgi?id=164626
949
950         Reviewed by Filip Pizlo.
951
952         But also saved a copy of the broken one as broken-have-a-bad-time-with-arguments-for-gc-testing.js
953         because coincidentally, it stresses the GC in ways that help reveal bugs.
954
955         * stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js: Added.
956         (testFunction):
957         (warmupFunction):
958         (let.argsDeclIndex.in.argumentsDecls.let.indexToReturnIndex.in.indicesToReturn.let.insertElementActionIndex.in.insertElementActions.let.tierWarmupCountIndex.in.tierWarmupCounts.let.testArgsIndex.in.testArgsList.catch):
959         * stress/have-a-bad-time-with-arguments.js:
960
961 2016-11-10  JF Bastien  <jfbastien@apple.com>
962
963         ASSERTION FAILED: length > offset encountered with wasm.yaml/wasm/js-api/test_Module.js.default-wasm
964         https://bugs.webkit.org/show_bug.cgi?id=164597
965
966         Reviewed by Keith Miller.
967
968         Trim the array buffer before returning it: it's optimistically
969         over-allocated to avoid growing all the time, but when parsed it
970         can't have extra content.
971
972         * wasm/Builder_WebAssemblyBinary.js:
973         (export.const.Binary):
974         * wasm/LowLevelBinary.js:
975         (export.default.LowLevelBinary.prototype.get return):
976
977 2016-11-10  Joseph Pecoraro  <pecoraro@apple.com>
978
979         test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex)
980         https://bugs.webkit.org/show_bug.cgi?id=164450
981
982         Reviewed by Darin Adler.
983
984         * stress/dataview-typedarray-toindex.js: Added.
985         Tests for all cases where ToIndex should be used.
986
987         * test262.yaml:
988         New passing tests.
989
990 2016-11-10  Mark Lam  <mark.lam@apple.com>
991
992         Graph::methodOfGettingAValueProfileFor() should be returning the profile for the operand node.
993         https://bugs.webkit.org/show_bug.cgi?id=164600
994         <rdar://problem/28828676>
995
996         Reviewed by Filip Pizlo.
997
998         * stress/osr-exit-on-op-negate-should-no-fail-assertions.js: Added.
999
1000 2016-11-08  Yusuke Suzuki  <utatane.tea@gmail.com>
1001
1002         [JSC] Avoid cloned arguments allocation in ArrayPrototype methods
1003         https://bugs.webkit.org/show_bug.cgi?id=164502
1004
1005         Reviewed by Saam Barati.
1006
1007         * stress/argument-intrinsic-basic.js: Added.
1008         (shouldBe):
1009         (builtin.createBuiltin):
1010         * stress/argument-intrinsic-inlining-with-result-escape.js: Added.
1011         (shouldBe):
1012         (builtin.createBuiltin):
1013         (escape):
1014         * stress/argument-intrinsic-nested-inlining.js: Added.
1015         (shouldBe):
1016         (builtin.createBuiltin):
1017         (builtinCaller1):
1018         (builtinCaller2):
1019         (escape):
1020         * stress/argument-intrinsic-not-convert-to-get-argument.js: Added.
1021         (shouldBe):
1022         (builtin.createBuiltin):
1023         * stress/argument-intrinsic-with-stack-write.js: Added.
1024         (shouldBe):
1025         (builtin.createBuiltin):
1026
1027 2016-11-09  Saam Barati  <sbarati@apple.com>
1028
1029         Math.min()/Math.max() with no arguments is lowered incorrectly in the BytecodeParser
1030         https://bugs.webkit.org/show_bug.cgi?id=164464
1031         <rdar://problem/29131452>
1032
1033         Reviewed by Darin Adler.
1034
1035         * stress/math-max-min-no-arguments.js: Added.
1036         (assert):
1037         (min):
1038         (max):
1039         (test):
1040
1041 2016-11-09  Saam Barati  <sbarati@apple.com>
1042
1043         TypeProfiler and running GC collection on another thread don't play nicely with each other
1044         https://bugs.webkit.org/show_bug.cgi?id=164441
1045         <rdar://problem/29132174>
1046
1047         Reviewed by Geoffrey Garen.
1048
1049         * typeProfiler/type-profiler-gc.js: Added.
1050         (bar):
1051         (foo):
1052
1053 2016-11-04  Mark Lam  <mark.lam@apple.com>
1054
1055         Error description code should be able to handle Symbol values.
1056         https://bugs.webkit.org/show_bug.cgi?id=164436
1057         <rdar://problem/29115583>
1058
1059         Reviewed by Filip Pizlo and Saam Barati.
1060
1061         * stress/error-description-on-symbols-should-not-crash.js: Added.
1062
1063 2016-11-03  Geoffrey Garen  <ggaren@apple.com>
1064
1065         EvalCodeCache should not give up in strict mode and other cases
1066         https://bugs.webkit.org/show_bug.cgi?id=164357
1067
1068         Reviewed by Michael Saboff.
1069
1070         * microbenchmarks/eval-cached.js: Added. 45x faster now.
1071         * stress/eval-cached.js: Added. Try running the same eval text in a bunch
1072         of different scopes and verify that we access the right scope.
1073
1074 2016-11-04  JF Bastien  <jfbastien@apple.com>
1075
1076         WebAssembly JS API: implement more sections
1077         https://bugs.webkit.org/show_bug.cgi?id=164023
1078
1079         Reviewed by Keith Miller.
1080
1081         On the JSC side:
1082
1083          - Put in parser stubs for all WebAssembly sections.
1084          - Parse Import, Export sections.
1085          - Use tryReserveCapacity instead of reserve, and bail out of the parser if it fails. This prevents the parser from bringing everything down when faced with a malicious input.
1086          - Encapsulate all parsed module information into its own structure, making it easier to pass around (from parser to Plan to Module to Instance).
1087          - Create WasmFormat.cpp to hold parsed module information's dtor to avoid including WasmMemory.h needlessly.
1088          - parseCode: avoid overflow through function size.
1089          - Remove all remainders of polyfill-prototype-1, and update license.
1090          - Add missing WasmOps.h and WasmValidateInlines.h auto-generation for cmake build.
1091
1092         On the Builder.js testing side:
1093
1094          - Implement Type, Import (function only), Export (function only) sections.
1095          - Check section order and uniqueness.
1096          - Optionally auto-generate the Type section from subsequent Export / Import / Code entries.
1097          - Allow re-exporting an import.
1098
1099         * wasm/Builder.js: build type, import, and export sections
1100         (const._normalizeFunctionSignature):
1101         * wasm/Builder_WebAssemblyBinary.js: Added. Forked from Builder.js
1102         (const.emitters.Type):
1103         (const.emitters.Import):
1104         (const.emitters.Function):
1105         (const.emitters.Table):
1106         (const.emitters.Memory):
1107         (const.emitters.Global):
1108         (const.emitters.Export):
1109         (const.emitters.Start):
1110         (const.emitters.Element):
1111         (const.emitters.Code):
1112         (const.emitters.Data):
1113         (export.const.Binary):
1114         * wasm/LowLevelBinary.js: Add a few useful outputs
1115         (export.default.LowLevelBinary.prototype.varuint1):
1116         (export.default.LowLevelBinary.prototype.varint7):
1117         * wasm/WASM.js: value type and external kind helpers
1118         * wasm/assert.js: array element-wise equality comparison
1119         (const._eq):
1120         * wasm/js-api/test_Module.js:
1121         (ModuleWithImports):
1122         * wasm/self-test/test_BuilderJSON.js: many more tests for all the new Builder APIs, and update to some older tests which now require a Type section or rejiggered Function signature
1123         (const.assertOpThrows):
1124         (SectionsWithSameCustomName):
1125         (TwoTypeSections):
1126         (EmptyImportSection):
1127         (ImportBeforeTypeSections):
1128         * wasm/self-test/test_BuilderWebAssembly.js: remove a test which wasn't helpful and is now obsolete
1129         (CustomSection):
1130
1131 2016-11-03  Mark Lam  <mark.lam@apple.com>
1132
1133         ClonedArguments need to also support haveABadTime mode.
1134         https://bugs.webkit.org/show_bug.cgi?id=164200
1135         <rdar://problem/27211336>
1136
1137         Reviewed by Geoffrey Garen.
1138
1139         * stress/have-a-bad-time-with-arguments.js: Added.
1140
1141 2016-11-03  Filip Pizlo  <fpizlo@apple.com>
1142
1143         DFG plays fast and loose with the shadow values of a Phi
1144         https://bugs.webkit.org/show_bug.cgi?id=164309
1145
1146         Reviewed by Saam Barati.
1147         
1148         This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
1149
1150         * stress/dfg-ssa-swap.js: Added.
1151         (foo):
1152
1153 2016-11-03  Commit Queue  <commit-queue@webkit.org>
1154
1155         Unreviewed, rolling out r208364.
1156         https://bugs.webkit.org/show_bug.cgi?id=164402
1157
1158         broke the build (Requested by smfr on #webkit).
1159
1160         Reverted changeset:
1161
1162         "DFG plays fast and loose with the shadow values of a Phi"
1163         https://bugs.webkit.org/show_bug.cgi?id=164309
1164         http://trac.webkit.org/changeset/208364
1165
1166 2016-11-03  Filip Pizlo  <fpizlo@apple.com>
1167
1168         DFG plays fast and loose with the shadow values of a Phi
1169         https://bugs.webkit.org/show_bug.cgi?id=164309
1170
1171         Reviewed by Saam Barati.
1172         
1173         This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
1174
1175         * stress/dfg-ssa-swap.js: Added.
1176         (foo):
1177
1178 2016-11-03  Saam Barati  <sbarati@apple.com>
1179
1180         Asking for a value profile prediction should be defensive against not finding a value profile
1181         https://bugs.webkit.org/show_bug.cgi?id=164306
1182
1183         Reviewed by Mark Lam.
1184
1185         * stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js: Added.
1186         (let.o.set foo):
1187         (bar):
1188
1189 2016-11-02  Saam Barati  <sbarati@apple.com>
1190
1191         Allocation elimination of rest parameter doesn't take into account indexed properties on Array.prototype/Object.prototype
1192         https://bugs.webkit.org/show_bug.cgi?id=164301
1193
1194         Reviewed by Geoffrey Garen.
1195
1196         * stress/rest-parameter-allocation-elimination-watchpoints-2.js: Added.
1197         (assert):
1198         (foo):
1199         * stress/rest-parameter-allocation-elimination-watchpoints-3.js: Added.
1200         (assert):
1201         (foo):
1202         * stress/rest-parameter-allocation-elimination-watchpoints-4.js: Added.
1203         (assert):
1204         (foo):
1205         * stress/rest-parameter-allocation-elimination-watchpoints-5.js: Added.
1206         (assert):
1207         (foo):
1208         * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Added.
1209         (assert):
1210         (foo):
1211         * stress/rest-parameter-allocation-elimination-watchpoints.js: Added.
1212         (assert):
1213         (foo):
1214
1215 2016-11-01  Saam Barati  <sbarati@apple.com>
1216
1217         We should be able to eliminate rest parameter allocations
1218         https://bugs.webkit.org/show_bug.cgi?id=163925
1219
1220         Reviewed by Filip Pizlo.
1221
1222         * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
1223         (assert):
1224         (test1.bar):
1225         (test1):
1226         (test2.jaz):
1227         (test2.jaz2.kaz):
1228         (test2.jaz2):
1229         (test2):
1230         (test3.foo):
1231         (test3.baz):
1232         (test3.jaz):
1233         (test3):
1234         (test4.baz):
1235         (test4.jaz):
1236         (test4):
1237         (test5.baz):
1238         (test5.jaz):
1239         (test5):
1240         (test6.baz):
1241         (test6.jaz):
1242         (test6):
1243         (test7.baz):
1244         (test7.jaz):
1245         (test7.check):
1246         (test7):
1247         (test8.baz):
1248         (test8.jaz):
1249         (test8.check):
1250         (test8):
1251         (test9.baz):
1252         (test9.jaz):
1253         (test9.check):
1254         (test9):
1255         (test10.baz):
1256         (test10.jaz):
1257         (test10):
1258         (test11.bar):
1259         (test11.foo):
1260         (test11.makeArguments):
1261         (test11.):
1262         (test12):
1263         (test12.bar):
1264         (test12.foo):
1265         (test12.makeArguments):
1266         (test12.):
1267         (test13.bar):
1268         (test13.top):
1269         (test13.foo):
1270         (test13.makeArguments):
1271         (test13.):
1272         (test13):
1273         (test14.bar):
1274         (test14.top):
1275         (test14.foo):
1276         (test14.makeArguments):
1277         (test14.):
1278         (test14):
1279         (test15.bar):
1280         (test15.top):
1281         (test15.foo):
1282         (test15.makeArguments):
1283         (test15.):
1284         (test15):
1285
1286 2016-11-01  Commit Queue  <commit-queue@webkit.org>
1287
1288         Unreviewed, rolling out r208208 and r208210.
1289         https://bugs.webkit.org/show_bug.cgi?id=164276
1290
1291         This change caused 28 JSC test failures. (Requested by
1292         ryanhaddad on #webkit).
1293
1294         Reverted changesets:
1295
1296         "We should be able to eliminate rest parameter allocations"
1297         https://bugs.webkit.org/show_bug.cgi?id=163925
1298         http://trac.webkit.org/changeset/208208
1299
1300         "Fix the EFL build."
1301         http://trac.webkit.org/changeset/208210
1302
1303 2016-10-31  Filip Pizlo  <fpizlo@apple.com>
1304
1305         JSC should support SharedArrayBuffer
1306         https://bugs.webkit.org/show_bug.cgi?id=163986
1307
1308         Reviewed by Keith Miller.
1309         
1310         This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to
1311         check all of the things that don't require concurrency.
1312
1313         * stress/SharedArrayBuffer.js: Added.
1314         (checkAtomics):
1315         (shouldFail):
1316         (Symbol):
1317         (runAtomic):
1318
1319 2016-10-31  Saam Barati  <sbarati@apple.com>
1320
1321         We should be able to eliminate rest parameter allocations
1322         https://bugs.webkit.org/show_bug.cgi?id=163925
1323
1324         Reviewed by Filip Pizlo.
1325
1326         * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
1327         (assert):
1328         (test1.bar):
1329         (test1):
1330         (test2.jaz):
1331         (test2.jaz2.kaz):
1332         (test2.jaz2):
1333         (test2):
1334         (test3.foo):
1335         (test3.baz):
1336         (test3.jaz):
1337         (test3):
1338         (test4.baz):
1339         (test4.jaz):
1340         (test4):
1341         (test5.baz):
1342         (test5.jaz):
1343         (test5):
1344         (test6.baz):
1345         (test6.jaz):
1346         (test6):
1347         (test7.baz):
1348         (test7.jaz):
1349         (test7.check):
1350         (test7):
1351         (test8.baz):
1352         (test8.jaz):
1353         (test8.check):
1354         (test8):
1355         (test9.baz):
1356         (test9.jaz):
1357         (test9.check):
1358         (test9):
1359         (test10.baz):
1360         (test10.jaz):
1361         (test10):
1362         (test11.bar):
1363         (test11.foo):
1364         (test11.makeArguments):
1365         (test11.):
1366         (test12):
1367         (test12.bar):
1368         (test12.foo):
1369         (test12.makeArguments):
1370         (test12.):
1371         (test13.bar):
1372         (test13.top):
1373         (test13.foo):
1374         (test13.makeArguments):
1375         (test13.):
1376         (test13):
1377         (test14.bar):
1378         (test14.top):
1379         (test14.foo):
1380         (test14.makeArguments):
1381         (test14.):
1382         (test14):
1383         (test15.bar):
1384         (test15.top):
1385         (test15.foo):
1386         (test15.makeArguments):
1387         (test15.):
1388         (test15):
1389
1390 2016-10-31  Saam Barati  <sbarati@apple.com>
1391
1392         Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out
1393         https://bugs.webkit.org/show_bug.cgi?id=164227
1394
1395         Unreviewed timeout fix.
1396
1397         * microbenchmarks/pure-get-by-id-cse-2.js:
1398
1399 2016-10-31  Keith Miller  <keith_miller@apple.com>
1400
1401         autogenerated files from wasm.json should be in derived sources.
1402         https://bugs.webkit.org/show_bug.cgi?id=164152
1403
1404         Reviewed by Filip Pizlo.
1405
1406         Delete generation script since it is no longer used.
1407
1408         * wasm/generate-wasmops-header.js: Removed.
1409
1410 2016-10-29  Yusuke Suzuki  <utatane.tea@gmail.com>
1411
1412         [JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
1413         https://bugs.webkit.org/show_bug.cgi?id=164123
1414
1415         Reviewed by Mark Lam.
1416
1417         * stress/json-stringify-with-non-jsarray-array.js: Added.
1418         (shouldBe):
1419         (shouldBe.JSON.stringify.new.Proxy):
1420
1421 2016-10-29  Saam Barati  <sbarati@apple.com>
1422
1423         We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
1424         https://bugs.webkit.org/show_bug.cgi?id=163305
1425
1426         Reviewed by Keith Miller.
1427
1428         * microbenchmarks/pure-get-by-id-cse-2.js: Added.
1429         (foo):
1430         * microbenchmarks/pure-get-by-id-cse.js: Added.
1431         (foo):
1432         * stress/pure-get-by-id-cse-correctness.js: Added.
1433         (assert):
1434         (foo):
1435         * stress/pure-get-by-id-on-non-object.js: Added.
1436         (assert):
1437         (foo):
1438
1439 2016-10-28  Csaba Osztrogonác  <ossy@webkit.org>
1440
1441         Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
1442         https://bugs.webkit.org/show_bug.cgi?id=164128
1443
1444         Reviewed by Mark Lam.
1445
1446         * microbenchmarks/dense-set.js:
1447
1448 2016-10-20  Caitlin Potter  <caitp@igalia.com>
1449
1450         [JSC] implement runtime for async functions
1451         https://bugs.webkit.org/show_bug.cgi?id=163760
1452
1453         Reviewed by Yusuke Suzuki.
1454
1455         * stress/async-await-basic.js: Added.
1456         (shouldBe):
1457         (shouldBeAsync):
1458         (shouldThrow):
1459         (shouldThrowAsync):
1460         (shouldThrowSyntaxError):
1461         (let.AsyncFunction.async):
1462         (async.asyncFunctionForProto):
1463         (Object.getPrototypeOf.async):
1464         (Object.getPrototypeOf.async.method):
1465         (async):
1466         (async.method):
1467         (async.asyncNonConstructorDecl):
1468         (shouldThrow.new.async):
1469         (shouldThrow.new.async.nonConstructor):
1470         (async.asyncDecl):
1471         (async.f):
1472         (MyError):
1473         (async.asyncDeclThrower):
1474         (shouldThrowAsync.async):
1475         (resolveLater):
1476         (rejectLater):
1477         (async.resumeAfterNormal):
1478         (O.async.resumeAfterNormal):
1479         (resumeAfterNormalArrow.async):
1480         (async.resumeAfterThrow):
1481         (O.async.resumeAfterThrow):
1482         (resumeAfterThrowArrow.async):
1483         (catch):
1484         * stress/async-await-module-reserved-word.js: Added.
1485         (shouldThrow):
1486         (SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
1487         (checkModuleSyntaxError.String.raw.await):
1488         (checkModuleSyntaxError.String.raw.async.await):
1489         (SyntaxError.Cannot.declare.named):
1490         * stress/async-await-mozilla.js: Added.
1491         (shouldBe):
1492         (shouldBeAsync):
1493         (shouldThrow):
1494         (shouldThrowAsync):
1495         (assert):
1496         (shouldThrowSyntaxError):
1497         (mozSemantics.async.empty):
1498         (mozSemantics.async.simpleReturn):
1499         (mozSemantics.async.simpleAwait):
1500         (mozSemantics.async.simpleAwaitAsync):
1501         (mozSemantics.async.returnOtherAsync):
1502         (mozSemantics.async.simpleThrower):
1503         (mozSemantics.async.delegatedThrower):
1504         (mozSemantics.async.tryCatch):
1505         (mozSemantics.async.tryCatchThrow):
1506         (mozSemantics.async.wellFinally):
1507         (mozSemantics.async.finallyMayFail):
1508         (mozSemantics.async.embedded.async.inner):
1509         (mozSemantics.async.embedded):
1510         (mozSemantics.async.fib):
1511         (mozSemantics.async.isOdd.async.isEven):
1512         (mozSemantics.async.isOdd):
1513         (mozSemantics.hardcoreFib.async.fib2):
1514         (mozSemantics.namedAsyncExpr.async.simple):
1515         (mozSemantics.async.executionOrder.async.first):
1516         (mozSemantics.async.executionOrder.async.second):
1517         (mozSemantics.async.executionOrder.async.third):
1518         (mozSemantics.async.executionOrder):
1519         (mozSemantics.async.miscellaneous):
1520         (mozSemantics.thrower):
1521         (mozSemantics.async.defaultArgs):
1522         (mozSemantics.shouldThrow):
1523         (mozSemantics):
1524         (mozMethods.X):
1525         (mozMethods.X.prototype.async.getValue):
1526         (mozMethods.X.prototype.setValue):
1527         (mozMethods.X.prototype.async.increment):
1528         (mozMethods.X.prototype.async.getBaseClassName):
1529         (mozMethods.X.async.getStaticValue):
1530         (mozMethods.Y.prototype.async.getBaseClassName):
1531         (mozMethods.Y):
1532         (mozFunctionNameInferrence.async.test):
1533         (mozSyntaxErrors):
1534         * stress/async-await-reserved-word.js: Added.
1535         (assert):
1536         (shouldThrowSyntaxError):
1537         (AsyncFunction.async):
1538         * stress/async_arrow_functions_lexical_arguments_binding.js: Added.
1539         (shouldBe):
1540         (shouldBeAsync):
1541         (shouldThrowAsync):
1542         (noArgumentsArrow2.async):
1543         * stress/async_arrow_functions_lexical_new.target_binding.js: Added.
1544         (shouldBe):
1545         (shouldBeAsync):
1546         (shouldThrowAsync):
1547         (C1):
1548         (C2):
1549         (shouldThrowAsync.async):
1550         * stress/async_arrow_functions_lexical_super_binding.js: Added.
1551         (shouldBe):
1552         (shouldBeAsync):
1553         (BaseClass.prototype.baseClassValue):
1554         (BaseClass.prototype.get property):
1555         (BaseClass):
1556         (ChildClass.prototype.asyncSuperProp):
1557         (ChildClass.prototype.asyncSuperProp2):
1558         (ChildClass):
1559         (ChildClass2):
1560         * stress/async_arrow_functions_lexical_this_binding.js: Added.
1561         (shouldBe):
1562         (shouldBeAsync):
1563         (d.y):
1564
1565 2016-10-28  Csaba Osztrogonác  <ossy@webkit.org>
1566
1567         Skip 2 JS stress tests on memory limited devices
1568         https://bugs.webkit.org/show_bug.cgi?id=164125
1569
1570         Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.
1571
1572         * stress/joined-strings-should-not-exceed-max-string-length.js:
1573         * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
1574
1575 2016-10-27  Caitlin Potter  <caitp@igalia.com>
1576
1577         [JSC] forbid lexical redeclaration of generator formal parameters
1578         https://bugs.webkit.org/show_bug.cgi?id=163930
1579
1580         Reviewed by Yusuke Suzuki.
1581
1582         * stress/async-await-syntax.js:
1583         * stress/generator-syntax.js:
1584         (testSyntaxError.gen):
1585         (testSyntaxError.arguments):
1586         (testSyntaxError.eval):
1587         * test262.yaml:
1588
1589 2016-10-26  JF Bastien  <jfbastien@apple.com>
1590
1591         WebAssembly API: implement Instance
1592
1593         As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects
1594
1595          - Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
1596          - Construct a basic Instance with a Module.
1597          - Handle second argument (importObject) of WebAssembly.Instance.
1598          - Add reference text from the spec to WebAssembly.Module's code.
1599          - Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.
1600
1601         The implementation isn't complete yet: it relies on further work for which I've filed bugs.
1602
1603         WebAssembly API: implement Instance
1604         https://bugs.webkit.org/show_bug.cgi?id=163998
1605
1606         Reviewed by Keith Miller.
1607
1608         * wasm/js-api/test_Instance.js: Added.
1609         (EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it
1610         * wasm/js-api/test_basic_api.js:
1611         (const.c.in.constructorProperties.switch): basic tests of the API
1612
1613 2016-10-26  Mark Lam  <mark.lam@apple.com>
1614
1615         JSGenericTypedArrayView::set() should check for exceptions.
1616         https://bugs.webkit.org/show_bug.cgi?id=164007
1617         <rdar://problem/28853775>
1618
1619         Reviewed by Filip Pizlo.
1620
1621         * stress/typed-array-view-set-should-not-crash-on-exception.js: Added.
1622
1623 2016-10-25  Mark Lam  <mark.lam@apple.com>
1624
1625         String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
1626         https://bugs.webkit.org/show_bug.cgi?id=163996
1627         <rdar://problem/28263117>
1628
1629         Reviewed by Geoffrey Garen.
1630
1631         * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.
1632
1633 2016-10-25  Mark Lam  <mark.lam@apple.com>
1634
1635         JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
1636         https://bugs.webkit.org/show_bug.cgi?id=163937
1637         <rdar://problem/28642990>
1638
1639         Reviewed by Geoffrey Garen.
1640
1641         * stress/joined-strings-should-not-exceed-max-string-length.js: Added.
1642
1643 2016-10-25  JF Bastien  <jfbastien@apple.com>
1644
1645         WebAssembly JS API: simple Module test
1646         https://bugs.webkit.org/show_bug.cgi?id=163963
1647
1648         Reviewed by Filip Pizlo.
1649
1650         * wasm/LowLevelBinary.js:
1651         (export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
1652         (export.default.LowLevelBinary.prototype.hexdump): Deleted.
1653         (export.default.LowLevelBinary.prototype._maybeGrow): Deleted.
1654         * wasm/js-api/test_Module.js: Added.
1655         (EmptyModule): The most basic module possible
1656
1657 2016-10-25  JF Bastien  <jfbastien@apple.com>
1658
1659         WebAssembly JS API: implement Module
1660
1661         This implementation allows us to:
1662          - Syncrhonously create a WebAssembly.Module with a typed array.
1663          - Creates a compilation plan.
1664          - Parse the Module and creates corresponding code.
1665          - Throw WebAssembly.CompileError with mildly helpful [*] error messages on
1666            failure.
1667
1668         Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor
1669
1670         For now the implementation discards the generated code.
1671
1672         The next steps will be:
1673          - Expose a Module's exports.
1674          - Implement WebAssembly.Instance, which allows instantiating and running a
1675            compiled Module.
1676          - Beef up the testing infrastructure under JSTests/wasm so that more complex
1677            modules can be created and tested (instead of writing the bits by hand).
1678
1679         This patch also:
1680          - Adds assert.instanceof in assert.js.
1681          - Refactors Wasm::Parser and friends to accept const uint8_t* as well as a
1682            Vector, to avoid copying when invoked synchronously.
1683          - Remove useless Structure from some of the wasm constructors: they're already
1684            on the JSGlobalObject, visited properly and all.
1685          - Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer
1686            was exactly at end of file.
1687
1688          [*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919
1689
1690         WebAssembly JS API: implement Module
1691         https://bugs.webkit.org/show_bug.cgi?id=163903
1692
1693         Reviewed by Keith Miller.
1694
1695         * wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names
1696         (const._notUndef):
1697         (const._isUndef):
1698         (const._eq):
1699         (const._ge):
1700         (const._throws):
1701         * wasm/js-api/test_basic_api.js: test the WebAssembly.Module API
1702         (const.c.in.constructorProperties.switch):
1703
1704 2016-10-25  Keith Miller  <keith_miller@apple.com>
1705
1706         Add trivial Wasm conversion opcodes
1707         https://bugs.webkit.org/show_bug.cgi?id=163950
1708
1709         Reviewed by Filip Pizlo.
1710
1711         This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
1712         those that are not.  Some of the Wasm opcodes that are currently a non-simple opcode will
1713         become simple as we add B3 opcodes for Wasm operations.  The remaining opcodes will need to
1714         be added via patchpoints in a later patch.
1715
1716         * wasm/generate-wasmops-header.js:
1717         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):
1718         * wasm/wasm.json:
1719
1720 2016-10-24  Yusuke Suzuki  <utatane.tea@gmail.com>
1721
1722         Arrow functions with concise bodies cannot return regular expressions
1723         https://bugs.webkit.org/show_bug.cgi?id=163162
1724
1725         Reviewed by Filip Pizlo.
1726
1727         * ChakraCore/test/Operators/instanceof.baseline-jsc:
1728         * ChakraCore/test/Regex/nul_character.baseline-jsc:
1729         * ChakraCore/test/es5/Lex_u3.baseline-jsc:
1730         * stress/parse-regexp-as-token.js: Added.
1731         (shouldBe):
1732
1733 2016-10-24  Keith Miller  <keith_miller@apple.com>
1734
1735         Wasm should support floating point operations.
1736         https://bugs.webkit.org/show_bug.cgi?id=163770
1737
1738         Reviewed by Michael Saboff.
1739
1740         Add appropriate b3op names for floating point wasm bytecodes, where they exist.
1741         Also, fix some WASM => Wasm in WasmOps.h generator script that I missed
1742         the first time I made the change.
1743
1744         * wasm/generate-wasmops-header.js:
1745         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted.
1746         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted.
1747         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted.
1748         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted.
1749         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted.
1750         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted.
1751         * wasm/wasm.json:
1752
1753 2016-10-21  Saam Barati  <sbarati@apple.com>
1754
1755         SpeculativeJIT::compileTryGetById needs to pass in NeedsToSpill along both the cell speculation and untyped speculation path
1756         https://bugs.webkit.org/show_bug.cgi?id=163622
1757
1758         Reviewed by Yusuke Suzuki.
1759
1760         * stress/try-get-by-id-should-spill-registers-dfg.js: Added.
1761         (let.f.createBuiltin):
1762
1763 2016-10-21  Caitlin Potter  <caitp@igalia.com>
1764
1765         [JSC] don't crash when arguments to `new Function()` produce unexpected AST
1766         https://bugs.webkit.org/show_bug.cgi?id=163748
1767
1768         Reviewed by Mark Lam.
1769
1770         * stress/regress-163748.js: Added.
1771         (assert):
1772         (shouldThrowSyntaxError):
1773         (GeneratorFunction):
1774
1775 2016-10-20  Keith Miller  <keith_miller@apple.com>
1776
1777         Add support for WASM calls
1778         https://bugs.webkit.org/show_bug.cgi?id=161727
1779
1780         Reviewed by Filip Pizlo and Michael Saboff.
1781
1782         Add members of the Call category to the WASMOps special group.
1783
1784         * wasm/generate-wasmops-header.js:
1785
1786 2016-10-20  Yusuke Suzuki  <utatane.tea@gmail.com>
1787
1788         [JSC] Drop isEnvironmentRecord type info flag and use JSType information instead
1789         https://bugs.webkit.org/show_bug.cgi?id=163761
1790
1791         Reviewed by Keith Miller.
1792
1793         * modules/string-prototype-module-scope.js: Added.
1794         (shouldBe):
1795         (catch):
1796         (refer):
1797         * stress/string-prototype-scopes-global-lexical-environment-strict.js: Added.
1798         (shouldBe):
1799         (catch):
1800         * stress/string-prototype-scopes-global-lexical-environment.js: Added.
1801         (shouldBe):
1802         (catch):
1803         * stress/string-prototype-scopes-strict.js: Added.
1804         (shouldBe):
1805         (catch):
1806         (try.refer):
1807         (refer):
1808         * stress/string-prototype-scopes.js: Added.
1809         (shouldBe):
1810         (catch):
1811         (try.refer):
1812         (refer):
1813         (object.toString):
1814         (with):
1815
1816 2016-10-20  JF Bastien  <jfbastien@apple.com>
1817
1818         WebAssembly API: implement exception constructors properly
1819
1820          - Rename WebAssemblyObject to JSWebAssembly for consistency.
1821          - WebAssembly object now has its own prototype: add WebAssemblyPrototype, and
1822            use it to register JSWebAssembly's function properties through auto-generated
1823            .lut.h, instead of manually.
1824          - The error constructors used to throw (e.g. `new WebAssembly.CompileError()`).
1825          - Register WebAssembly's constructors from the global object, and hold a
1826            reference to their structure and prototype so that invoking the constructor
1827            can use the structure directly from the global object.
1828          - Add a prototype base field to global object creation. Previous ones all had
1829            Object's prototype as their base, but WebAssembly's error constructors have
1830            Error as their base.
1831          - Test for the error object's correctness.
1832          - Add missing #if ENABLE(WEBASSEMBLY)
1833
1834         WebAssembly API: implement exception constructors properly
1835         https://bugs.webkit.org/show_bug.cgi?id=163699
1836
1837         Reviewed by Keith Miller.
1838
1839         * wasm/js-api/test_basic_api.js:
1840         (const.c.in.constructorProperties): more tests
1841
1842 2016-10-20  Caitlin Potter  <caitp@igalia.com>
1843
1844         [JSC] disallow references to `await` in AsyncFunction formal parameters
1845         https://bugs.webkit.org/show_bug.cgi?id=163694
1846
1847         Reviewed by Saam Barati.
1848
1849         * stress/async-await-syntax.js:
1850
1851 2016-10-20  Keith Miller  <keith_miller@apple.com>
1852
1853         Invalid assertion in arguments elimination
1854         https://bugs.webkit.org/show_bug.cgi?id=163740
1855         <rdar://problem/27911462>
1856
1857         Reviewed by Michael Saboff.
1858
1859         * stress/direct-arguments-osr-entry.js: Added.
1860         (foo.):
1861         (foo):
1862
1863 2016-10-20  Caitlin Potter  <caitp@igalia.com>
1864
1865         [JSC] throw TypeError when constructing dynamically created JSGeneratorFunction
1866         https://bugs.webkit.org/show_bug.cgi?id=163714
1867
1868         Reviewed by Mark Lam.
1869
1870         Add missing test coverage that dynamically created
1871         JSGeneratorFunctions can not be constructed.
1872
1873         * stress/generator-function-constructor.js:
1874         (shouldThrow):
1875
1876 2016-10-19  JF Bastien  <jfbastien@apple.com>
1877
1878         JavaScript WebAssembly API: baby steps
1879
1880          - Expand WebAssembly constructors into their own files. This requires a lot of
1881            boilerplate, as well as adding the .lut.h files. All of the
1882            JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
1883            currently the same between the 4 specified WebAssembly constructors. It'll be
1884            easy to implement individual functions on constructed objects as per the
1885            spec, and have each of these files diverge. The error constructors are also
1886            similar, except that their instance derives from ErrorInstance.
1887          - Use constructor macro when initializing the global object.
1888          - Dramatically improve testing of the WebAssembly API by checking for
1889            properties specified in the spec [*].
1890          - Clean up assert.js' exception testing.
1891          - Fix a copy-paste bug in wasm.json: floating-point const return values were
1892            swapped.
1893
1894         [*] https://github.com/WebAssembly/design/blob/master/JS.md
1895
1896         Implement more of the JavaScript WebAssembly API
1897         https://bugs.webkit.org/show_bug.cgi?id=163571
1898
1899         Reviewed by Keith Miller.
1900
1901         * wasm/assert.js:
1902         (export.const.isUndef): add this useful helper
1903         (export.const.throws): fold other throw checks into this one, and check message as well
1904         * wasm/js-api/test_basic_api.js:
1905         (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
1906         * wasm/self-test/test_BuilderJSON.js:
1907         (const.assertOpThrows): use new assert API
1908         (CheckedOpcodeArgumentsTooMany): ditto
1909         (CheckedOpcodeArgumentsNotEnough): ditto
1910         (CallInvalid): ditto
1911         (I32ConstInvalid): ditto
1912         (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
1913         (F64ConstInvalid): ditto
1914         * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
1915         * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
1916         * wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly).
1917         * wasm/wasm.json: fix copy-paste
1918
1919 2016-10-19  Caitlin Potter  <caitp@igalia.com>
1920
1921         [JSC] forbid "use strict" directive in generator functions with non-simple parameters
1922         https://bugs.webkit.org/show_bug.cgi?id=163683
1923
1924         Reviewed by Geoffrey Garen.
1925
1926         Update various generator*-non-simple-param.js tests to be passing.
1927
1928         * test262.yaml:
1929
1930 2016-10-18  Mark Lam  <mark.lam@apple.com>
1931
1932         Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
1933         https://bugs.webkit.org/show_bug.cgi?id=154377
1934         <rdar://problem/27330808>
1935
1936         Reviewed by Filip Pizlo and Saam Barati.
1937
1938         * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.
1939
1940 2016-10-18  Keith Miller  <keith_miller@apple.com>
1941
1942         GetByVal to GetById conversion in the DFG is incorrect for getters with control flow
1943         https://bugs.webkit.org/show_bug.cgi?id=163629
1944
1945         Reviewed by Yusuke Suzuki.
1946
1947         * stress/get-by-val-to-id-with-getter.js: Added.
1948         (foo):
1949         (o.get hello):
1950
1951 2016-10-15  Filip Pizlo  <fpizlo@apple.com>
1952
1953         DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable
1954         https://bugs.webkit.org/show_bug.cgi?id=163371
1955
1956         Reviewed by Geoffrey Garen and Saam Barati.
1957         
1958         Add microbenchmarks for all of the cases that this patch optimizes.
1959
1960         * microbenchmarks/direct-call-arity-mismatch.js: Added.
1961         (foo):
1962         (bar):
1963         * microbenchmarks/direct-call.js: Added.
1964         (foo):
1965         (bar):
1966         * microbenchmarks/direct-construct-arity-mismatch.js: Added.
1967         (Foo):
1968         (bar):
1969         * microbenchmarks/direct-construct.js: Added.
1970         (Foo):
1971         (bar):
1972         * microbenchmarks/direct-tail-call-arity-mismatch.js: Added.
1973         (foo):
1974         (bar):
1975         * microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added.
1976         (foo):
1977         (bar):
1978         (baz):
1979         * microbenchmarks/direct-tail-call-inlined-caller.js: Added.
1980         (foo):
1981         (bar):
1982         (baz):
1983         * microbenchmarks/direct-tail-call.js: Added.
1984         (foo):
1985         (bar):
1986
1987 2016-10-18  Caitlin Potter  <caitp@igalia.com>
1988
1989         [JSC] ES6 Method functions should not have prototype
1990         https://bugs.webkit.org/show_bug.cgi?id=162530
1991
1992         Reviewed by Saam Barati.
1993
1994         Fix test262 expectations about MethodDefinitions
1995
1996         * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
1997         * stress/reflect-set.js:
1998         * test262.yaml:
1999
2000 2016-10-17  Keith Miller  <keith_miller@apple.com>
2001
2002         Add support for WASM Memory.
2003         https://bugs.webkit.org/show_bug.cgi?id=161710
2004
2005         Reviewed by Geoffrey Garen.
2006
2007         Add store and load opcodes to wasm.json. Additionally, add new
2008         enums for those opcodes in the generator.
2009
2010         * stress/wasm/generate-wasmops-header.js:
2011         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
2012         (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):
2013
2014 2016-10-17  Saam Barati  <sbarati@apple.com>
2015
2016         Add more tests for the double->String conversion in ValueAdd constant folding
2017         https://bugs.webkit.org/show_bug.cgi?id=163517
2018
2019         Reviewed by Yusuke Suzuki.
2020
2021         * microbenchmarks/string-add-constant-folding.js:
2022         (test):
2023
2024 2016-10-17  JF Bastien  <jfbastien@apple.com>
2025
2026         WebAssembly JS API: implement basic stub
2027
2028         Implement the global WebAssembly JavaScript object, and its constructor +
2029         function properties as described in:
2030           https://github.com/WebAssembly/design/blob/master/JS.md
2031
2032         These don't do anything at the moment, the parent bug will take care of adding
2033         more functionality and associated tests.
2034
2035         WebAssembly JS API: implement basic stub
2036         https://bugs.webkit.org/show_bug.cgi?id=163404
2037
2038         Reviewed by Keith Miller.
2039
2040         * wasm.yaml:
2041         * wasm/js-api/test_basic_api.js: Added.
2042         (const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
2043         (const.c.of.constructorProperties.catch):
2044
2045 2016-10-17  Yusuke Suzuki  <utatane.tea@gmail.com>
2046
2047         [DOMJIT] Use DOMJIT::Patchpoint in IC
2048         https://bugs.webkit.org/show_bug.cgi?id=163223
2049
2050         Reviewed by Saam Barati.
2051
2052         * stress/domjit-exception-ic.js: Added.
2053         (shouldBe):
2054         (access):
2055         * stress/domjit-exception.js: Added.
2056         (shouldBe):
2057         (access):
2058         * stress/domjit-getter-complex-with-incorrect-object.js: Added.
2059         (shouldThrow):
2060         (access):
2061         (i.shouldThrow):
2062         * stress/domjit-getter-complex.js: Added.
2063         (shouldBe):
2064         (access):
2065         * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
2066         (assert):
2067         (bar):
2068         (foo):
2069
2070 2016-10-15  Saam Barati  <sbarati@apple.com>
2071
2072         Assertion failed under operationToLowerCase with a rope with zero length
2073         https://bugs.webkit.org/show_bug.cgi?id=163314
2074
2075         Reviewed by Mark Lam.
2076
2077         * stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
2078         (assert):
2079         (returnRope.helper):
2080         (returnRope):
2081         (lower):
2082
2083 2016-10-14  Benjamin Poulain  <bpoulain@apple.com>
2084
2085         [JSC] op_negate should with any type
2086         https://bugs.webkit.org/show_bug.cgi?id=162587
2087
2088         Reviewed by Saam Barati.
2089
2090         * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
2091         Cover OSR Exits when converting Math.abs() into ArithNegate.
2092
2093         * stress/arith-negate-on-various-types.js: Added.
2094         Cover ArithNegate with all types.
2095
2096 2016-10-14  JF Bastien  <jfbastien@apple.com>
2097
2098         Basic WebAssembly testing
2099
2100         Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
2101         https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
2102
2103         This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.
2104
2105         Details and example in README.md.
2106
2107         Basic WebAssembly testing
2108         https://bugs.webkit.org/show_bug.cgi?id=163267
2109
2110         Reviewed by Keith Miller.
2111
2112         * stress/wasm/wasm.json: Removed.
2113         * wasm.yaml: Added.
2114         * wasm/Builder.js: Added.
2115         (const._isValidValue):
2116         (const._BuildWebAssemblyBinary):
2117         (export.default.Builder):
2118         (export.default.Builder.prototype.setChecked):
2119         (export.default.Builder.prototype.setPreamble):
2120         (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
2121         (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
2122         (export.default.Builder.prototype._registerSectionBuilders):
2123         (export.default.Builder.prototype._addSection):
2124         (export.default.Builder.prototype.optimize):
2125         (export.default.Builder.prototype.json):
2126         (export.default.Builder.prototype.AsmJS):
2127         (export.default.Builder.prototype.WebAssembly):
2128         * wasm/LowLevelBinary.js: Added.
2129         (const._getterRangeCheck):
2130         (const._hexdump):
2131         (export.default.LowLevelBinary):
2132         (export.default.LowLevelBinary.prototype.newPatchable):
2133         (export.default.LowLevelBinary.prototype.hexdump):
2134         (export.default.LowLevelBinary.prototype._maybeGrow):
2135         (export.default.LowLevelBinary.prototype._push8):
2136         (export.default.LowLevelBinary.prototype.uint8):
2137         (export.default.LowLevelBinary.prototype.uint16):
2138         (export.default.LowLevelBinary.prototype.uint32):
2139         (export.default.LowLevelBinary.prototype.varuint):
2140         (export.default.LowLevelBinary.prototype.varint):
2141         (export.default.LowLevelBinary.prototype.varuint7):
2142         (export.default.LowLevelBinary.prototype.string):
2143         (export.default.LowLevelBinary.prototype.getSize):
2144         (export.default.LowLevelBinary.prototype.getUint8):
2145         (export.default.LowLevelBinary.prototype.getUint16):
2146         (export.default.LowLevelBinary.prototype.getUint32):
2147         (export.default.LowLevelBinary.prototype.getVaruint):
2148         (export.default.LowLevelBinary.prototype.getVarint):
2149         (export.default.LowLevelBinary.prototype.getVaruint7):
2150         (export.default.LowLevelBinary.prototype.getString):
2151         (PatchableLowLevelBinary):
2152         (PatchableLowLevelBinary.prototype._push8):
2153         (PatchableLowLevelBinary.prototype.apply):
2154         * wasm/README.md: Added.
2155         * wasm/WASM.js: Added.
2156         * wasm/assert.js: Added.
2157         (export.const.notUndef):
2158         (export.const.eq):
2159         (export.const.ge):
2160         (export.const.throwsError):
2161         (export.const.throwsRangeError):
2162         * wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
2163         * wasm/self-test/test_BuilderJSON.js: Added.
2164         (const.assertOpThrows):
2165         (EmptyModule):
2166         (CustomMagicNumber):
2167         (CustomVersion):
2168         (CustomSection):
2169         (CustomSectionAllBytes):
2170         (CustomSectionInvalidByte):
2171         (TwoCustomSections):
2172         (EmptyCodeSection):
2173         (CodeSectionWithEmptyFunction):
2174         (CodeSectionWithEmptyFunctionWithParameters):
2175         (InvalidFunctionParameters):
2176         (SimpleFunction):
2177         (TwoSimpleFunctions):
2178         (TwoBuildersAtTheSameTime):
2179         (CheckedOpcodeArgumentsTooMany):
2180         (CheckedOpcodeArgumentsNotEnough):
2181         (CallNoArguments):
2182         (CallInvalid):
2183         (I32ConstInvalid):
2184         (F32ConstInvalid):
2185         (F64ConstInvalid):
2186         (CallManyFromStack):
2187         (OpcodeAdd):
2188         (OpcodeUnreachable):
2189         (OpcodeUnreachableCombinations):
2190         (OpcodeSelect):
2191         * wasm/self-test/test_BuilderWebAssembly.js: Added.
2192         (EmptyModule):
2193         (CustomSection):
2194         (Basic):
2195         * wasm/self-test/test_LowLevelBinary_encode.js: Added.
2196         * wasm/self-test/test_LowLevelBinary_string.js: Added.
2197         * wasm/self-test/test_LowLevelBinary_uint16.js: Added.
2198         * wasm/self-test/test_LowLevelBinary_uint32.js: Added.
2199         * wasm/self-test/test_LowLevelBinary_uint8.js: Added.
2200         * wasm/self-test/test_LowLevelBinary_varint.js: Added.
2201         * wasm/self-test/test_LowLevelBinary_varuint.js: Added.
2202         * wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
2203         * wasm/self-test/test_WASM.js: Added.
2204         * wasm/test.sh: Added.
2205         * wasm/utilities.js: Added.
2206         (const._read.filename.switch):
2207         (const._load.filename.switch):
2208         (const._json.filename.switch):
2209         * wasm/wasm.json: Added.
2210
2211 2016-10-14  Joseph Pecoraro  <pecoraro@apple.com>
2212
2213         test262: @isConstructor incorrectly thinks Math.cos is a constructor
2214         https://bugs.webkit.org/show_bug.cgi?id=163437
2215
2216         Reviewed by Saam Barati.
2217
2218         * stress/is-constructor.js: Added.
2219         (assert):
2220         (prototype.assert):
2221         New test to cover the @isConstructor builtin.
2222
2223         * test262.yaml:
2224         Test now passes.
2225
2226 2016-10-14  Ryan Haddad  <ryanhaddad@apple.com>
2227
2228         Unreviewed, rolling out r207322.
2229
2230         This change caused JSC test failures
2231
2232         Reverted changeset:
2233
2234         "Fix Array.prototype.splice ES6 compliance."
2235         https://bugs.webkit.org/show_bug.cgi?id=163372
2236         http://trac.webkit.org/changeset/207322
2237
2238 2016-10-14  Mark Lam  <mark.lam@apple.com>
2239
2240         JSON.parse should not modify frozen objects.
2241         https://bugs.webkit.org/show_bug.cgi?id=163430
2242
2243         Reviewed by Saam Barati.
2244
2245         * stress/json-parse-on-frozen-object.js: Added.
2246
2247 2016-10-14  Joseph Pecoraro  <pecoraro@apple.com>
2248
2249         test262: Failure with RegExp.prototype.compile when pattern is undefined
2250         https://bugs.webkit.org/show_bug.cgi?id=163431
2251
2252         Reviewed by Yusuke Suzuki.
2253
2254         * test262.yaml:
2255
2256 2016-10-13  Joseph Pecoraro  <pecoraro@apple.com>
2257
2258         Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
2259         https://bugs.webkit.org/show_bug.cgi?id=163426
2260
2261         Reviewed by Geoffrey Garen.
2262
2263         * ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
2264         * ChakraCore/test/Object/null.baseline-jsc:
2265         * stress/exception-in-to-property-key-should-be-handled-early.js:
2266         Better exception messages.
2267
2268 2016-10-13  Mark Lam  <mark.lam@apple.com>
2269
2270         Fix Array.prototype.splice ES6 compliance.
2271         https://bugs.webkit.org/show_bug.cgi?id=163372
2272
2273         Reviewed by Geoffrey Garen and Yusuke Suzuki.
2274
2275         * stress/array-splice-on-frozen-object.js: Added.
2276
2277 2016-10-12  Keith Miller  <keith_miller@apple.com>
2278
2279         Handle non-function, non-undefined comparator in Array.prototype.sort
2280         https://bugs.webkit.org/show_bug.cgi?id=163085
2281
2282         Reviewed by Yusuke Suzuki.
2283
2284         * ChakraCore/test/Array/array_sort.baseline-jsc:
2285         * stress/array-sort-bad-comparator.js: Added.
2286         (test):
2287
2288 2016-10-12  Mark Lam  <mark.lam@apple.com>
2289
2290         Array.prototype.slice should not modify frozen objects.
2291         https://bugs.webkit.org/show_bug.cgi?id=163338
2292
2293         Reviewed by Filip Pizlo.
2294
2295         * stress/array-slice-on-frozen-object.js: Added.
2296
2297 2016-10-11  Mark Lam  <mark.lam@apple.com>
2298
2299         Array.prototype.concat should not modify frozen objects.
2300         https://bugs.webkit.org/show_bug.cgi?id=163302
2301
2302         Reviewed by Filip Pizlo.
2303
2304         * stress/array-concat-on-frozen-object.js: Added.
2305
2306 2016-10-11  Saam Barati  <sbarati@apple.com>
2307
2308         ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
2309         https://bugs.webkit.org/show_bug.cgi?id=163182
2310
2311         Reviewed by Filip Pizlo.
2312
2313         * microbenchmarks/string-add-constant-folding.js: Added.
2314         (assert):
2315         (runTests):
2316         (add):
2317         (test):
2318
2319 2016-10-07  Mark Lam  <mark.lam@apple.com>
2320
2321         Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
2322         https://bugs.webkit.org/show_bug.cgi?id=163160
2323
2324         Reviewed by Saam Barati.
2325
2326         * stress/object-freeze-with-proxy-preventExtensions.js: Added.
2327         * stress/object-seal-with-proxy-preventExtensions.js: Added.
2328
2329 2016-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>
2330
2331         [DOMJIT] Add initial CheckDOM and CallDOM implementations
2332         https://bugs.webkit.org/show_bug.cgi?id=162941
2333
2334         Reviewed by Filip Pizlo.
2335
2336         * stress/domjit-getter-poly.js: Added.
2337         (shouldBe):
2338         (access):
2339         * stress/domjit-getter-proto.js: Added.
2340         (shouldBe):
2341         (access):
2342         * stress/domjit-getter-super-poly.js: Added.
2343         (shouldBe):
2344         (access):
2345         * stress/domjit-getter.js: Added.
2346         (shouldBe):
2347         (access):
2348
2349 2016-10-04  Saam Barati  <sbarati@apple.com>
2350
2351         String.prototype.toLowerCase should be a DFG/FTL intrinsic
2352         https://bugs.webkit.org/show_bug.cgi?id=162887
2353
2354         Reviewed by Filip Pizlo and Yusuke Suzuki.
2355
2356         * microbenchmarks/to-lower-case.js: Added.
2357         (assert):
2358         (foo):
2359         (bar):
2360         * stress/to-lower-case.js: Added.
2361         (assert):
2362         (foo):
2363
2364 2016-10-04  JF Bastien  <jfbastien@apple.com>
2365
2366         WebAssembly: handle a few corner cases
2367         https://bugs.webkit.org/show_bug.cgi?id=162884
2368
2369         Reviewed by Keith Miller.
2370
2371         * stress/wasm/generate-wasmops-header.js:
2372         (const.opcodeIterator): max opcode value
2373
2374 2016-10-03  JF Bastien  <jfbastien@apple.com>
2375
2376         Auto-generate WASMOps.h, share with testing JSON file
2377         https://bugs.webkit.org/show_bug.cgi?id=162870
2378
2379         Reviewed by Keith Miller.
2380
2381         * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
2382         (const.opcode_iterator):
2383         (opcode_macroizer):
2384         * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
2385
2386 2016-10-03  Saam Barati  <sbarati@apple.com>
2387
2388         MapHash should speculate on the type of its child node
2389         https://bugs.webkit.org/show_bug.cgi?id=161922
2390
2391         Reviewed by Filip Pizlo.
2392
2393         * microbenchmarks/map-key-well-typed.js: Added.
2394         (assert):
2395         (intKey):
2396         (doubleKey):
2397         (objectKey):
2398         (stringKey):
2399         (booleanKey):
2400         (symbolKey):
2401         (cellKey):
2402         (assert.doubleKey):
2403         (assert.booleanKey):
2404
2405 2016-10-03  Yusuke Suzuki  <utatane.tea@gmail.com>
2406
2407         [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
2408         https://bugs.webkit.org/show_bug.cgi?id=162849
2409
2410         Reviewed by Geoffrey Garen.
2411
2412         * test262.yaml:
2413
2414 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2415
2416         [ES6] Align attributes of Generator related properties to spec
2417         https://bugs.webkit.org/show_bug.cgi?id=162839
2418
2419         Reviewed by Saam Barati.
2420
2421         * test262.yaml:
2422
2423 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
2424
2425         [ES6] GeneratorFunction constructor should instantiate generator function
2426         https://bugs.webkit.org/show_bug.cgi?id=162838
2427
2428         Reviewed by Saam Barati.
2429
2430         * stress/generator-function-constructor-is-subclassible.js: Added.
2431         (shouldBe):
2432         (GeneratorFunction):
2433         (prototype.hello):
2434         * stress/generator-function-constructor.js:
2435         * test262.yaml:
2436
2437 2016-09-30  Saam Barati  <sbarati@apple.com>
2438
2439         Arrow functions should not allow duplicate parameter names
2440         https://bugs.webkit.org/show_bug.cgi?id=162741
2441
2442         Reviewed by Filip Pizlo.
2443
2444         * test262.yaml:
2445
2446 2016-09-30  Saam Barati  <sbarati@apple.com>
2447
2448         Make some microbenchmarks run for less time.
2449
2450         Rubber stamped by Filip Pizlo.
2451
2452         * microbenchmarks/bound-function-construction-performance.js:
2453         (foo):
2454         * microbenchmarks/getter-richards-try-catch.js:
2455
2456 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
2457
2458         Arrow functions do not infer name from computed property but normal functions do
2459         https://bugs.webkit.org/show_bug.cgi?id=162720
2460
2461         Reviewed by Saam Barati.
2462
2463         * stress/inferred-names.js:
2464
2465 2016-09-29  Mark Lam  <mark.lam@apple.com>
2466
2467         Break some slow running tests into smaller bits so they don't time out.
2468         https://bugs.webkit.org/show_bug.cgi?id=162743
2469
2470         Reviewed by Keith Miller.
2471
2472         The following tests have shown to be slow running:
2473             op_div.js
2474             op_lshift.js
2475             op_mod.js
2476             op_mul.js
2477             op_rshift.js
2478             op_sub.js
2479             op_urshift
2480
2481         These tests auto-generate permutations of values to apply to binary operations.
2482         They also test the operations with 3 permutations of value types:
2483             1. VarVar - both operands variables
2484             2. VarConst - variable operand 1, constant / literal operand 2
2485             3. ConstVar - constant / literal operand 1, variable operand 2
2486
2487         We can prevent these tests from timing out by breaking each up to only run 1 of
2488         the 3 permutations of value types.
2489
2490         * stress/op_div-ConstVar.js: Added.
2491         * stress/op_div-VarConst.js: Added.
2492         * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
2493         (o1.valueOf): Deleted.
2494         * stress/op_div.js: Removed.
2495         * stress/op_lshift-ConstVar.js: Added.
2496         * stress/op_lshift-VarConst.js: Added.
2497         * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
2498         (o1.valueOf): Deleted.
2499         * stress/op_lshift.js: Removed.
2500         * stress/op_mod-ConstVar.js: Added.
2501         * stress/op_mod-VarConst.js: Added.
2502         * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
2503         (o1.valueOf): Deleted.
2504         * stress/op_mod.js: Removed.
2505         * stress/op_mul-ConstVar.js: Added.
2506         * stress/op_mul-VarConst.js: Added.
2507         * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
2508         (o1.valueOf): Deleted.
2509         * stress/op_mul.js: Removed.
2510         * stress/op_rshift-ConstVar.js: Added.
2511         * stress/op_rshift-VarConst.js: Added.
2512         * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
2513         (o1.valueOf): Deleted.
2514         * stress/op_rshift.js: Removed.
2515         * stress/op_sub-ConstVar.js: Added.
2516         * stress/op_sub-VarConst.js: Added.
2517         * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
2518         (o1.valueOf): Deleted.
2519         * stress/op_sub.js: Removed.
2520         * stress/op_urshift-ConstVar.js: Added.
2521         * stress/op_urshift-VarConst.js: Added.
2522         * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
2523         (o1.valueOf): Deleted.
2524         * stress/op_urshift.js: Removed.
2525         * stress/resources/binary-op-values.js: Added.
2526         (o1.valueOf):
2527
2528 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
2529
2530         test262: class and function names should be inferred in assignment
2531         https://bugs.webkit.org/show_bug.cgi?id=146262
2532
2533         Reviewed by Saam Barati.
2534
2535         * stress/arrowfunction-name.js: Added.
2536         Quick tests for arrow function names.
2537
2538         * stress/inferred-names.js: Added.
2539         General test for inferred function names.
2540
2541         * test262.yaml:
2542         Pass many tests checking inferred function names.
2543
2544 2016-09-29  Saam Barati  <sbarati@apple.com>
2545
2546         We don't properly propagate non-simple-parameter-list when parsing a setter
2547         https://bugs.webkit.org/show_bug.cgi?id=160483
2548
2549         Reviewed by Joseph Pecoraro.
2550
2551         * test262.yaml:
2552
2553 2016-09-28  Saam Barati  <sbarati@apple.com>
2554
2555         stringProtoFuncRepeatCharacter will return `null` when it should not
2556         https://bugs.webkit.org/show_bug.cgi?id=161944
2557
2558         Reviewed by Yusuke Suzuki.
2559
2560         * stress/pad-start-calls-repeat-character-with-double.js: Added.
2561         (logLinesWithContext):
2562
2563 2016-09-27  Filip Pizlo  <fpizlo@apple.com>
2564
2565         B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
2566         https://bugs.webkit.org/show_bug.cgi?id=162644
2567
2568         Reviewed by Keith Miller.
2569
2570         * stress/chill-mod-chill-mod.js: Added.
2571         (foo):
2572
2573 2016-09-26  Csaba Osztrogonác  <oszi@inf.u-szeged.hu>
2574
2575         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
2576         https://bugs.webkit.org/show_bug.cgi?id=162386
2577
2578         Unreviewed, relanding r206317 after typo fix.
2579
2580         * stress/string-joining-long-strings-should-not-crash.js:
2581
2582 2016-09-24  Caitlin Potter  <caitp@igalia.com>
2583
2584         [JSTests] fix test262 expectations following r206333
2585         https://bugs.webkit.org/show_bug.cgi?id=162533
2586
2587         Reviewed by Yusuke Suzuki.
2588
2589         * test262.yaml:
2590
2591 2016-09-23  Caitlin Potter  <caitp@igalia.com>
2592
2593         [JSC] Implement parsing of Async Functions
2594         https://bugs.webkit.org/show_bug.cgi?id=161409
2595
2596         Reviewed by Yusuke Suzuki.
2597
2598         * stress/async-await-syntax.js: Added.
2599         (testSyntax):
2600         (testSyntaxError):
2601         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
2602         (testTopLevelAsyncAwaitSyntaxSloppyMode):
2603         (testTopLevelAsyncAwaitSyntaxStrictMode):
2604         (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
2605         (testNestedAsyncAwaitSyntax.async):
2606         (testNestedAsyncAwaitSyntax.foo):
2607         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
2608
2609 2016-09-23  Ryan Haddad  <ryanhaddad@apple.com>
2610
2611         Unreviewed, rolling out r206317.
2612
2613         This change caused timeouts on El Capitan Release JSC tests
2614
2615         Reverted changeset:
2616
2617         "Skip stress/string-joining-long-strings-should-not-crash.js
2618         on memory limited devices"
2619         https://bugs.webkit.org/show_bug.cgi?id=162386
2620         http://trac.webkit.org/changeset/206317
2621
2622 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
2623
2624         Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
2625         https://bugs.webkit.org/show_bug.cgi?id=162381
2626
2627         Reviewed by Mark Lam.
2628
2629         * mozilla/mozilla-tests.yaml:
2630
2631 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
2632
2633         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
2634         https://bugs.webkit.org/show_bug.cgi?id=162386
2635
2636         Reviewed by Mark Lam.
2637
2638         * stress/string-joining-long-strings-should-not-crash.js:
2639
2640 2016-09-22  Benjamin Poulain  <bpoulain@apple.com>
2641
2642         [JSC] Use an inline cache to generate op_negate
2643         https://bugs.webkit.org/show_bug.cgi?id=162371
2644
2645         Reviewed by Saam Barati.
2646
2647         * stress/op-negate-inline-cache.js: Added.
2648
2649 2016-09-22  Mark Lam  <mark.lam@apple.com>
2650
2651         Array.prototype.join should do overflow checks on string joins.
2652         https://bugs.webkit.org/show_bug.cgi?id=162459
2653
2654         Reviewed by Saam Barati.
2655
2656         * stress/array-join-on-strings-need-overflow-checks.js: Added.
2657         (assert):
2658         (catch):
2659
2660 2016-09-22  Joseph Pecoraro  <pecoraro@apple.com>
2661
2662         test262: Function length should be number of parameters before parameters with default values
2663         https://bugs.webkit.org/show_bug.cgi?id=162377
2664
2665         Reviewed by Saam Barati.
2666
2667         * stress/es6-default-parameters.js:
2668         Add our own tests for function lengths with default parameters.
2669
2670         * test262.yaml:
2671         We now pass all dflt-length tests.
2672
2673 2016-09-20  Benjamin Poulain  <bpoulain@apple.com>
2674
2675         [JSC] Do not use EagerRun on tests counting recompilation
2676         https://bugs.webkit.org/show_bug.cgi?id=162248
2677
2678         Reviewed by Geoffrey Garen.
2679
2680         This patch adds defaultNoEagerRun to all the tests
2681         for which recompilation is the symptom of a bug.
2682         The reason is that an OSR Exit can be unrelated to the tested
2683         nodes when we are running in Eager mode.
2684
2685         * stress/arith-abs-on-various-types.js:
2686         * stress/arith-ceil-on-various-types.js:
2687         * stress/arith-clz32-on-various-types.js:
2688         * stress/arith-cos-on-various-types.js:
2689         * stress/arith-floor-on-various-types.js:
2690         * stress/arith-fround-on-various-types.js:
2691         * stress/arith-log-on-various-types.js:
2692         * stress/arith-round-on-various-types.js:
2693         * stress/arith-sin-on-various-types.js:
2694         * stress/arith-sqrt-on-various-types.js:
2695         * stress/arith-tan-on-various-types.js:
2696         * stress/arith-trunc-on-various-types.js:
2697
2698         * stress/compare-strict-eq-on-various-types.js:
2699         (testAllTypesCall):
2700         The value 2 came from the other tests.
2701         CompareStrictEq supports many more cases, the worst case
2702         is bool->int->int52->number->polymorphic.
2703
2704 2016-09-20  Filip Pizlo  <fpizlo@apple.com>
2705
2706         Make MarkedBlock state tracking support overlapped allocation and marking state
2707         https://bugs.webkit.org/show_bug.cgi?id=161581
2708
2709         Reviewed by Geoffrey Garen.
2710         
2711         Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
2712
2713         * microbenchmarks/switching-size-classes.js: Added.
2714
2715 2016-09-20  Saam Barati  <sbarati@apple.com>
2716
2717         Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
2718
2719         * stress/has-own-property-called-on-non-object.js: Added.
2720         (let.objs):
2721         (new.String):
2722         (foo):
2723
2724 2016-09-20  Yusuke Suzuki  <utatane.tea@gmail.com>
2725
2726         [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
2727         https://bugs.webkit.org/show_bug.cgi?id=162253
2728
2729         Reviewed by Sam Weinig.
2730
2731         * microbenchmarks/is-symbol-mixed.js: Added.
2732         (isSymbol):
2733         (i.let.pair.of.list.String):
2734         * microbenchmarks/is-symbol.js: Added.
2735         (isSymbol):
2736
2737 2016-09-19  Saam Barati  <sbarati@apple.com>
2738
2739         Make HasOwnProperty faster
2740         https://bugs.webkit.org/show_bug.cgi?id=161708
2741
2742         Reviewed by Geoffrey Garen.
2743
2744         * microbenchmarks/has-own-property-name-cache.js: Added.
2745         (foo):
2746         * stress/has-own-property-cache-basics.js: Added.
2747         (assert):
2748         (foo):
2749         * stress/has-own-property-name-cache-string-keys.js: Added.
2750         (assert):
2751         (foo):
2752         * stress/has-own-property-name-cache-symbol-keys.js: Added.
2753         (assert):
2754         (foo):
2755         * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
2756         (assert):
2757         (foo):
2758
2759 2016-09-19  Benjamin Poulain  <bpoulain@apple.com>
2760
2761         [JSC] Make the rounding-related nodes support any type
2762         https://bugs.webkit.org/show_bug.cgi?id=161895
2763
2764         Reviewed by Geoffrey Garen.
2765
2766         * stress/arith-ceil-on-various-types.js: Added.
2767         * stress/arith-floor-on-various-types.js: Added.
2768         * stress/arith-round-on-various-types.js: Added.
2769         * stress/arith-trunc-on-various-types.js: Added.
2770
2771 2016-09-18  Yusuke Suzuki  <utatane.tea@gmail.com>
2772
2773         [JSC] Do not need to use defineProperty to define methods for object literals
2774         https://bugs.webkit.org/show_bug.cgi?id=162111
2775
2776         Reviewed by Saam Barati.
2777
2778         * stress/object-literal-methods.js: Added.
2779         (shouldBe):
2780         (throw.new.Error.let.object.get name):
2781         (throw.new.Error):
2782         (shouldBe.let.object.get name):
2783         (shouldBe.let.object.get prototype):
2784         (shouldBe.let.object.get 42):
2785
2786 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2787
2788         [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
2789         https://bugs.webkit.org/show_bug.cgi?id=162000
2790
2791         Reviewed by Filip Pizlo.
2792
2793         * microbenchmarks/is-array-for-array.js: Added.
2794         (isArray):
2795         * microbenchmarks/is-array-for-mixed-case.js: Added.
2796         (isArray):
2797         * microbenchmarks/is-array-for-non-array-object.js: Added.
2798         (isArray):
2799         * microbenchmarks/is-array-for-proxy.js: Added.
2800         (isArray):
2801         (isArray.proxy.throw.new.Error.isArray):
2802         (isArray.proxy.throw.new.Error):
2803
2804 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
2805
2806         Unreviewed, gardening test262 results
2807
2808         Some tests are now passed with JSC, but marked as failed.
2809
2810         * test262.yaml:
2811
2812 2016-09-16  Joseph Pecoraro  <pecoraro@apple.com>
2813
2814         test262: Various Constructors length properties should be configurable
2815         https://bugs.webkit.org/show_bug.cgi?id=161998
2816
2817         Reviewed by Saam Barati.
2818
2819         * test262.yaml:
2820
2821 2016-09-15  Commit Queue  <commit-queue@webkit.org>
2822
2823         Unreviewed, rolling out r205931.
2824         https://bugs.webkit.org/show_bug.cgi?id=162021
2825
2826         Tests for this change fail on 32-bit JSC bots (Requested by
2827         ryanhaddad on #webkit).
2828
2829         Reverted changeset:
2830
2831         "[JSC] Make the rounding-related nodes support any type"
2832         https://bugs.webkit.org/show_bug.cgi?id=161895
2833         http://trac.webkit.org/changeset/205931
2834
2835 2016-09-15  Joseph Pecoraro  <pecoraro@apple.com>
2836
2837         test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
2838         https://bugs.webkit.org/show_bug.cgi?id=162013
2839
2840         Reviewed by Saam Barati.
2841
2842         * stress/es6-default-parameters.js:
2843         * test262.yaml:
2844
2845 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2846
2847         ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
2848         https://bugs.webkit.org/show_bug.cgi?id=162003
2849
2850         Reviewed by Saam Barati.
2851
2852         * stress/spread-calling.js:
2853         * test262.yaml:
2854
2855 2016-09-14  Michael Saboff  <msaboff@apple.com>
2856
2857         YARR doesn't check for invalid flags for literal regular expressions
2858         https://bugs.webkit.org/show_bug.cgi?id=161995
2859
2860         Reviewed by Mark Lam.
2861
2862         New test.
2863
2864         * stress/regress-161995.js: Added.
2865         (testStatic):
2866         (catch):
2867
2868 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2869
2870         test262: TypedArray constructors length should be 3 and configurable
2871         https://bugs.webkit.org/show_bug.cgi?id=161955
2872
2873         Reviewed by Mark Lam.
2874
2875         * test262.yaml:
2876
2877 2016-09-14  Benjamin Poulain  <bpoulain@apple.com>
2878
2879         [JSC] Make the rounding-related nodes support any type
2880         https://bugs.webkit.org/show_bug.cgi?id=161895
2881
2882         Reviewed by Geoffrey Garen.
2883
2884         * stress/arith-ceil-on-various-types.js: Added.
2885         * stress/arith-floor-on-various-types.js: Added.
2886         * stress/arith-round-on-various-types.js: Added.
2887         * stress/arith-trunc-on-various-types.js: Added.
2888
2889 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2890
2891         TaggedTemplateString function calls should emit tail position calls
2892         https://bugs.webkit.org/show_bug.cgi?id=161948
2893
2894         Reviewed by Yusuke Suzuki.
2895
2896         * stress/tail-call-recognize.js:
2897         (runTests):
2898         Ensure a tagged template string function call is tail call.
2899
2900         * test262.yaml:
2901         These now pass.
2902
2903 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
2904
2905         test262: Array.prototype.slice should always set length
2906         https://bugs.webkit.org/show_bug.cgi?id=161953
2907
2908         Reviewed by Mark Lam.
2909
2910         * test262.yaml:
2911
2912 2016-09-13  JF Bastien  <jfbastien@apple.com>
2913
2914         Support jsc shell builtin `read`
2915         https://bugs.webkit.org/show_bug.cgi?id=161662
2916
2917         Reviewed by Keith Miller.
2918
2919         * stress/jsc-read.js: Added.
2920         (test): test `read` and `readFile` shell builtins, in string and binary mode.
2921
2922 2016-09-12  Skachkov Oleksandr  <gskachkov@gmail.com>
2923
2924         ES6: Classes: Should be allowed to create a static method with name "arguments"
2925         https://bugs.webkit.org/show_bug.cgi?id=152985
2926
2927         Reviewed by Keith Miller.
2928
2929         * test262.yaml:
2930
2931 2016-09-12  Saam Barati  <sbarati@apple.com>
2932
2933         Speed up Function.prototype.bind a bit by making it a builtin
2934         https://bugs.webkit.org/show_bug.cgi?id=161879
2935
2936         Reviewed by Filip Pizlo.
2937
2938         * microbenchmarks/function-bind-inlining.js: Added.
2939         (assert):
2940         (test):
2941         (test2):
2942         (foo):
2943         * microbenchmarks/function-bind-no-inlining.js: Added.
2944         (assert):
2945         (test):
2946         (test2):
2947         (foo):
2948
2949 2016-09-12  Saam Barati  <sbarati@apple.com>
2950
2951         HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
2952         https://bugs.webkit.org/show_bug.cgi?id=161640
2953
2954         Reviewed by Geoffrey Garen.
2955
2956         * microbenchmarks/map-rehash.js: Added.
2957         * stress/map-delete.js: Added.
2958         (assert):
2959         * stress/map-rehash-2.js: Added.
2960         (assert):
2961         * stress/map-rehash.js: Added.
2962         (assert):
2963
2964 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
2965
2966         Unreviewed, fix tests for different libm environments
2967         https://bugs.webkit.org/show_bug.cgi?id=161857
2968
2969         * stress/ftl-arithtan.js:
2970
2971 2016-09-12  Benjamin Poulain  <bpoulain@apple.com>
2972
2973         [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
2974         https://bugs.webkit.org/show_bug.cgi?id=161671
2975
2976         Reviewed by Geoffrey Garen.
2977
2978         * stress/get-array-length-on-undecided.js: Added.
2979
2980 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
2981
2982         [DFG][FTL] Add ArithTan
2983         https://bugs.webkit.org/show_bug.cgi?id=161857
2984
2985         Reviewed by Filip Pizlo.
2986
2987         * microbenchmarks/tan.js: Added.
2988         * stress/arith-tan-on-various-types.js: Added.
2989         (let.validInputTypedTestCases.validInputTestCases.map):
2990         (isIdentical):
2991         (opaqueTanNoArgument):
2992         (testNoArgument):
2993         (opaqueAllTypesTan):
2994         (testAllTypesCall):
2995         (testTangleTypeCall):
2996         (testConstant):
2997         (opaqueTanForSideEffects):
2998         (testSideEffect.let.testObject.valueOf):
2999         (testSideEffect):
3000         (opaqueTanForCSE):
3001         (testCSE.let.testObject.valueOf):
3002         (testCSE):
3003         (opaqueTanForDCE):
3004         (testDCE.let.testObject.valueOf):
3005         (testDCE):
3006         (testException.opaqueTanWithException):
3007         (testException):
3008         * stress/ftl-arithtan.js: Added.
3009         (foo):
3010
3011 2016-09-12  Saam Barati  <sbarati@apple.com>
3012
3013         MapHash should do constant folding when it has a constant argument and its legal to hash that value
3014         https://bugs.webkit.org/show_bug.cgi?id=161639
3015
3016         Reviewed by Filip Pizlo.
3017
3018         * microbenchmarks/map-constant-key.js: Added.
3019         (assert):
3020         (test):
3021         (foo):
3022
3023 2016-09-12  Michael Saboff  <msaboff@apple.com>
3024
3025         JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
3026         https://bugs.webkit.org/show_bug.cgi?id=161863
3027
3028         Reviewed by Saam Barati.
3029
3030         * ChakraCore.yaml:
3031         Disabled Bugs/bug56026_trycatch.js.
3032
3033 2016-09-09  Michael Saboff  <msaboff@apple.com>
3034
3035         Unreviewed, rolling r205759 back in with a fix.
3036
3037         The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
3038         should be named "toString.baseline-jsc".
3039
3040         * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
3041         * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
3042
3043 2016-09-09  Michael Saboff  <msaboff@apple.com>
3044
3045         Disable three flakey Chakra Tests
3046         https://bugs.webkit.org/show_bug.cgi?id=161807
3047
3048         Reviewed by Saam Barati.
3049
3050         * ChakraCore.yaml: Disabled the flakey tests
3051         ChakraCore/test/Array/protoLookup_native.js
3052         ChakraCore/test/LetConst/delete.js
3053         ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
3054
3055 2016-09-08  Saam Barati  <sbarati@apple.com>
3056
3057         We should inline operationConvertJSValueToBoolean into JIT code
3058         https://bugs.webkit.org/show_bug.cgi?id=161729
3059
3060         Reviewed by Filip Pizlo.
3061
3062         * stress/value-to-boolean.js: Added.
3063         (assert):
3064         (test1):
3065         (test2):
3066         (test3):
3067
3068 2016-09-08  Mark Lam  <mark.lam@apple.com>
3069
3070         REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
3071         https://bugs.webkit.org/show_bug.cgi?id=161756
3072
3073         Reviewed by Saam Barati.
3074
3075         It looks like the 32-bit JSC bot is just too slow at running this test with the
3076         dfg-maximal-flush-validate-no-cjit configuration.  We'll try excluding that
3077         configuration.
3078
3079         * stress/rest-parameter-many-arguments.js:
3080
3081 2016-09-08  JF Bastien  <jfbastien@apple.com>
3082
3083         Delete older WebAssembly tests
3084         https://bugs.webkit.org/show_bug.cgi?id=161758
3085
3086         Reviewed by Filip Pizlo.
3087
3088         They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
3089
3090         * stress/wasm-arithmetic-float32.js: Removed.
3091         * stress/wasm-arithmetic-float64.js: Removed.
3092         * stress/wasm-arithmetic-int32.js: Removed.
3093         * stress/wasm-calls.js: Removed.
3094         * stress/wasm-comma.js: Removed.
3095         * stress/wasm-control-flow.js: Removed.
3096         * stress/wasm-globals.js: Removed.
3097         * stress/wasm-linear-memory.js: Removed.
3098         * stress/wasm-locals.js: Removed.
3099         * stress/wasm-relational.js: Removed.
3100         * stress/wasm-type-conversion.js: Removed.
3101         * stress/wasm/arithmetic-float32.wasm: Removed.
3102         * stress/wasm/arithmetic-float64.wasm: Removed.
3103         * stress/wasm/arithmetic-int32.wasm: Removed.
3104         * stress/wasm/calls.wasm: Removed.
3105         * stress/wasm/comma.wasm: Removed.
3106         * stress/wasm/control-flow.wasm: Removed.
3107         * stress/wasm/globals.wasm: Removed.
3108         * stress/wasm/linear-memory.wasm: Removed.
3109         * stress/wasm/locals.wasm: Removed.
3110         * stress/wasm/relational.wasm: Removed.
3111         * stress/wasm/type-conversion.wasm: Removed.
3112
3113 2016-09-08  Per Arne Vollan  <pvollan@apple.com>
3114
3115         [Win] Exception fuzz tests fail
3116         https://bugs.webkit.org/show_bug.cgi?id=140928
3117
3118         Reviewed by Mark Lam.
3119
3120         Unskip tests.
3121
3122         * exceptionFuzz.yaml:
3123
3124 2016-09-06  Saam Barati  <sbarati@apple.com>
3125
3126         ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
3127         https://bugs.webkit.org/show_bug.cgi?id=161558
3128
3129         Reviewed by Benjamin Poulain.
3130
3131         * stress/proxy-get-prototype-of.js:
3132         * stress/proxy-set-prototype-of.js:
3133         (let.handler.setPrototypeOf): Deleted.
3134         * stress/proxy-underscore-proto.js: Added.
3135         (assert):
3136
3137 2016-09-06  Saam Barati  <sbarati@apple.com>
3138
3139         Make JSMap and JSSet faster
3140         https://bugs.webkit.org/show_bug.cgi?id=160989
3141
3142         Reviewed by Filip Pizlo.
3143
3144         * microbenchmarks/dense-set.js: Added.
3145         (bench):
3146         * microbenchmarks/large-map-iteration-with-additions.js: Added.
3147         (bar):
3148         (foo):
3149         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
3150         (bar):
3151         (foo):
3152         * microbenchmarks/large-map-iteration.js: Added.
3153         (bar):
3154         (foo):
3155         * microbenchmarks/map-get-get-cse.js: Added.
3156         (bar):
3157         (foo):
3158         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
3159         (bar):
3160         (foo):
3161         * microbenchmarks/sparse-set.js: Added.
3162         (bench):
3163         * stress/map-cse-correctness.js: Added.
3164         (assert):
3165         (testHas):
3166         (testGet):
3167         (foo):
3168         * stress/map-iteration.js: Added.
3169         (assert):
3170         (test1):
3171         (test2):
3172         (test3):
3173         (test4):
3174         (test5):
3175         (test6):
3176         (test7):
3177         (test8):
3178         (test9):
3179         (test10):
3180         (test11):
3181         (test12):
3182         (test13):
3183         (test14):
3184         (test15):
3185         (test16):
3186         (test17):
3187         (test18):
3188
3189 2016-09-06  Benjamin Poulain  <bpoulain@apple.com>
3190
3191         [JSC] Make ArithClz32 work with Cell arguments
3192         https://bugs.webkit.org/show_bug.cgi?id=161369
3193
3194         Reviewed by Geoffrey Garen.
3195
3196         * stress/arith-clz32-on-various-types.js: Added.
3197
3198 2016-09-06  Commit Queue  <commit-queue@webkit.org>
3199
3200         Unreviewed, rolling out r205504.
3201         https://bugs.webkit.org/show_bug.cgi?id=161645
3202
3203         Broke the iOS device build (Requested by ryanhaddad on
3204         #webkit).
3205
3206         Reverted changeset:
3207
3208         "Make JSMap and JSSet faster"
3209         https://bugs.webkit.org/show_bug.cgi?id=160989
3210         http://trac.webkit.org/changeset/205504
3211
3212 2016-09-06  Saam Barati  <sbarati@apple.com>
3213
3214         Make JSMap and JSSet faster
3215         https://bugs.webkit.org/show_bug.cgi?id=160989
3216
3217         Reviewed by Filip Pizlo.
3218
3219         * microbenchmarks/dense-set.js: Added.
3220         (bench):
3221         * microbenchmarks/large-map-iteration-with-additions.js: Added.
3222         (bar):
3223         (foo):
3224         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
3225         (bar):
3226         (foo):
3227         * microbenchmarks/large-map-iteration.js: Added.
3228         (bar):
3229         (foo):
3230         * microbenchmarks/map-get-get-cse.js: Added.
3231         (bar):
3232         (foo):
3233         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
3234         (bar):
3235         (foo):
3236         * microbenchmarks/sparse-set.js: Added.
3237         (bench):
3238         * stress/map-cse-correctness.js: Added.
3239         (assert):
3240         (testHas):
3241         (testGet):
3242         (foo):
3243         * stress/map-iteration.js: Added.
3244         (assert):
3245         (test1):
3246         (test2):
3247         (test3):
3248         (test4):
3249         (test5):
3250         (test6):
3251         (test7):
3252         (test8):
3253         (test9):
3254         (test10):
3255         (test11):
3256         (test12):
3257         (test13):
3258         (test14):
3259         (test15):
3260         (test16):
3261         (test17):
3262         (test18):
3263
3264 2016-08-31  Filip Pizlo  <fpizlo@apple.com>
3265
3266         Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
3267         https://bugs.webkit.org/show_bug.cgi?id=160125
3268
3269         Reviewed by Geoffrey Garen and Keith Miller.
3270         
3271         Most of the things I did properly covered by existing tests, but I found some simple cases of
3272         unshifting that had sketchy coverage.
3273
3274         * stress/array-storage-array-unshift.js: Added.
3275         * stress/contiguous-array-unshift.js: Added.
3276         * stress/double-array-unshift.js: Added.
3277         * stress/int32-array-unshift.js: Added.
3278
3279 2016-09-02  Michael Saboff  <msaboff@apple.com>
3280
3281         Unreviewed fix after importing Chakra test
3282
3283         * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
3284         test contained tab characters.  I removed the tabs before landing.  This test depended
3285         on the tab characters and now fails after they were removed.
3286         test.
3287
3288 2016-09-01  Michael Saboff  <msaboff@apple.com>
3289
3290         Import Chakra tests to JSC
3291         https://bugs.webkit.org/show_bug.cgi?id=154697
3292
3293         Reviewed by Saam Barati.
3294
3295         Added Chakra tests.  All these tests are under Chakra/test.  This is the same layout
3296         for tests in the Chakra tree.
3297
3298         Created a ChakraCore.yaml file to be used with run-jsc-stress-tests.  This file contains
3299         the tests that are run when the original Chakra runtests.py script is run.  That script
3300         is the test driver for *nix platforms and does not attempt to run all tests or all
3301         variations of tests.  The runtest.py driver consults rlexe.xml files in each test
3302         subdirectory to determine the test to run, the options to pass to the test and how to
3303         determine pass/fail of the test.  With runtests.py as the start, tests that didn't
3304         pass directly where either skipped, with a message describing why or through 
3305         adjustments to the test infrastructure, as described below, where made to pass.
3306         
3307         The only modification to the test infrastrucutre are:
3308
3309          1) Added simple mapping of Chakra expected exception text to JSC expected text in
3310             test/UnitTestFramework/UnitTestFramework.js.  It would make sense to also
3311             map some JSC specific exception text to more generic text for the cases where
3312             that text contains indetifier names or other source specific strings and the
3313             Chakra equivolent exception texts are generic.  
3314  
3315          2) Created JSC specific expected text files where it is clear that the text work
3316             as expected on JSC but the test output is different.  Typically the differences
3317             fall into three categories, different exception output, different output from
3318             toString() of a function, slight numeric differences, and test that rely on
3319             iteration order.
3320
3321          3) Stripped the CR's from the CR-LF line terminations of the files.  
3322
3323         No actual test .js files were modified.
3324
3325         * ChakraCore: Added.
3326         * ChakraCore.yaml: Added.
3327         * ChakraCore/CONTRIBUTING.md: Added.
3328         * ChakraCore/LICENSE.txt: Added.
3329         * ChakraCore/README.md: Added.
3330         * ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
3331         * ChakraCore/test: Added this directory and the tests included therein.
3332
3333 2016-09-01  JF Bastien  <jfbastien@apple.com>
3334
3335         GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
3336         https://bugs.webkit.org/show_bug.cgi?id=160922
3337
3338         Reviewed by Keith Miller.
3339
3340         Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
3341         The value profile is used by the calc functions, which do some mild math with the result.
3342         These benchmarks get ~4% faster with value profiling.
3343
3344         * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
3345         (A):
3346         (A.prototype.set value):
3347         (A.prototype.get value):
3348         (B.prototype.set value):
3349         (B.prototype.get value):
3350         (B):
3351         (const.bench):
3352         * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
3353         (A):
3354         (A.prototype.set value):
3355         (A.prototype.get value):
3356         (B.prototype.set value):
3357         (B.prototype.get value):
3358         (B):
3359         (const.bench):
3360         * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
3361         (value):
3362         (A):
3363         (A.prototype.set v):
3364         (A.prototype.get v):
3365         (B.prototype.set v):
3366         (B.prototype.get v):
3367         (B):
3368         (const.bench):
3369         * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
3370         (value):
3371         (A):
3372         (A.prototype.set v):
3373         (A.prototype.get v):
3374         (B.prototype.set v):
3375         (B.prototype.get v):
3376         (B):
3377         (const.bench):
3378
3379 2016-09-01  Benjamin Poulain  <bpoulain@apple.com>
3380
3381         arith-abs-on-various-types.js is flaky
3382
3383         Unreviewed.
3384
3385         * stress/arith-abs-on-various-types.js:
3386         Two compilation is too small for the worst case.
3387         Math.abs() can be typed integer->number->untyped if we are very unlucky.
3388
3389 2016-09-01  Filip Pizlo  <fpizlo@apple.com>
3390
3391         ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
3392         https://bugs.webkit.org/show_bug.cgi?id=161492
3393
3394         Reviewed by Mark Lam.
3395         
3396         This bug affected function->activation references but not object->object field references,
3397         because object->object field references are !neededForMaterialization(). So, the object
3398         test always passed but the activation/function test used to always fail. It passes now.
3399
3400         * stress/materialize-activation-referenced-from-phantom-function.js: Added.
3401         (bar):
3402         (inc):
3403         (dec):
3404         (foo):
3405         (test):
3406         * stress/materialize-object-referenced-from-phantom-object.js: Added.
3407         (bar):
3408         (foo):
3409         (test):
3410
3411 2016-08-31  Yusuke Suzuki  <utatane.tea@gmail.com>
3412
3413         stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
3414         https://bugs.webkit.org/show_bug.cgi?id=161436
3415
3416         Reviewed by Filip Pizlo.
3417
3418         The test checks Math.random() correctly produces 53bit random values.
3419         The test can fail by design, but this should be fairly rare.
3420
3421         However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
3422         increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
3423
3424         And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
3425         and reproduce the situation easily.
3426
3427         * stress/random-53bit.js:
3428         (test):
3429
3430 2016-08-29  Benjamin Poulain  <bpoulain@apple.com>
3431
3432         [JSC] Improve ArithAbs with polymorphic input
3433         https://bugs.webkit.org/show_bug.cgi?id=161286
3434
3435         Reviewed by Saam Barati.
3436
3437         * stress/arith-abs-on-various-types.js: Added.
3438         New tests.
3439
3440         * stress/arith-cos-on-various-types.js:
3441         * stress/arith-fround-on-various-types.js:
3442         * stress/arith-log-on-various-types.js:
3443         * stress/arith-sin-on-various-types.js:
3444         * stress/arith-sqrt-on-various-types.js:
3445         Extend the existing tests to cover the DCE case.
3446
3447 2016-08-26  Benjamin Poulain  <benjamin@webkit.org>
3448
3449         [JSC] Implement CompareStrictEq(String, Untyped) in FTL
3450         https://bugs.webkit.org/show_bug.cgi?id=161229
3451
3452         Reviewed by Geoffrey Garen.
3453
3454         * stress/compare-strict-eq-on-various-types.js: Added.
3455
3456 2016-08-26  Yusuke Suzuki  <utatane.tea@gmail.com>
3457
3458         [ES6] newPromiseCapabilities should check the given argument is constructor
3459         https://bugs.webkit.org/show_bug.cgi?id=161226
3460
3461         Reviewed by Mark Lam.
3462
3463         The arrow function should not be a constructor. So the error should be raised.
3464
3465         * stress/new-promise-capabilities-requires-constructor.js: Added.
3466         (shouldThrow):
3467
3468 2016-08-25  Benjamin Poulain  <bpoulain@apple.com>
3469
3470         [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
3471         https://bugs.webkit.org/show_bug.cgi?id=161181
3472
3473         Reviewed by Geoffrey Garen.
3474
3475         Extend the tests to constants.
3476         Add no-argument cases where needed.
3477
3478         * stress/arith-cos-on-various-types.js:
3479         * stress/arith-fround-on-various-types.js:
3480         * stress/arith-log-on-various-types.js:
3481         * stress/arith-sin-on-various-types.js:
3482         * stress/arith-sqrt-on-various-types.js:
3483
3484 2016-08-25  Yusuke Suzuki  <utatane.tea@gmail.com>
3485
3486         [DFG][FTL] Implement ES6 Generators in DFG / FTL
3487         https://bugs.webkit.org/show_bug.cgi?id=152723
3488
3489         Reviewed by Filip Pizlo.
3490
3491         * stress/generator-fib-ftl-and-array.js: Added.
3492         (fib):
3493         * stress/generator-fib-ftl-and-object.js: Added.
3494         (fib):
3495         * stress/generator-fib-ftl-and-string.js: Added.
3496         (fib):
3497         * stress/generator-fib-ftl.js: Added.
3498         (fib):
3499         * stress/generator-frame-empty.js: Added.
3500         (shouldThrow):
3501         (shouldThrow.fib):
3502         * stress/generator-reduced-save-point-put-to-scope.js: Added.
3503         (shouldBe):
3504         (gen):
3505         * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
3506         (shouldBe):
3507         (gen):
3508
3509 2016-08-25  JF Bastien  <jfbastien@apple.com>
3510
3511         TryGetById should have a ValueProfile so that it can predict its output type
3512         https://bugs.webkit.org/show_bug.cgi?id=160921
3513
3514         Reviewed by Saam Barati.
3515
3516         * microbenchmarks/try-get-by-id-basic.js: Added.
3517         (const.check):
3518         (const.bench.f.const.fooPlusBar.createBuiltin):
3519         * microbenchmarks/try-get-by-id-polymorphic.js: Added.
3520         (const.check):
3521         (fooPlusBar.createBuiltin):
3522         (bench):
3523
3524 2016-08-25  Caio Lima  <ticaiolima@gmail.com>
3525
3526         NewRegexp should not prevent inlining
3527         https://bugs.webkit.org/show_bug.cgi?id=154808
3528
3529         Reviewed by Geoffrey Garen.
3530
3531         Added test where functions with NewRegExp can be inlined right now.
3532
3533         * stress/new-regex-inline.js: Added.
3534         (assert):
3535         (testRegexpInline):
3536         (toInlineGlobal):
3537         (withRegexp):
3538         (inlineRegexpNotGlobal):
3539         (toInlineRecursive):
3540         (regexpContainsRecursive):
3541
3542 2016-08-24  Benjamin Poulain  <benjamin@webkit.org>
3543
3544         [JSC] Make FRound work with any type
3545         https://bugs.webkit.org/show_bug.cgi?id=161129
3546
3547         Reviewed by Geoffrey Garen.
3548
3549         * stress/arith-fround-on-various-types.js: Added.
3550
3551 2016-08-24  Filip Pizlo  <fpizlo@apple.com>
3552
3553         Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
3554
3555         * stress/array-storage-array-unshift.js: Removed.
3556         * stress/contiguous-array-unshift.js: Removed.
3557         * stress/double-array-unshift.js: Removed.
3558         * stress/int32-array-unshift.js: Removed.
3559
3560 2016-08-24  Skachkov Oleksandr  <gskachkov@gmail.com>
3561
3562         [ES2016] Allow assignment in for-in head in not-strict mode
3563         https://bugs.webkit.org/show_bug.cgi?id=160955
3564
3565         Reviewed by Saam Barati.
3566
3567         * stress/for-in-tests.js:
3568         (foo):
3569         (boo):
3570         (catch):
3571
3572 2016-08-23  Benjamin Poulain  <benjamin@webkit.org>
3573
3574         [JSC] Make ArithLog works with any type
3575         https://bugs.webkit.org/show_bug.cgi?id=161110
3576
3577         Reviewed by Geoffrey Garen.
3578
3579         * stress/arith-log-on-various-types.js: Added.
3580
3581 2016-08-23  Saam Barati  <sbarati@apple.com>
3582
3583         JSC should have a "microbenchmarks" directory instead of "regress" directory
3584         https://bugs.webkit.org/show_bug.cgi?id=161096
3585
3586         Rubber stamped by Mark Lam.
3587
3588         * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
3589
3590 2016-08-23  Keith Miller  <keith_miller@apple.com>
3591
3592         %TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
3593         https://bugs.webkit.org/show_bug.cgi?id=161031
3594         <rdar://problem/27937019>
3595
3596         Reviewed by Geoffrey Garen.
3597
3598         * stress/typedarray-slice.js:
3599         (get let):
3600         (get try):
3601         (testSpeciesWithTransferring):
3602
3603 2016-08-22  Filip Pizlo  <fpizlo@apple.com>
3604
3605         Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
3606         https://bugs.webkit.org/show_bug.cgi?id=160125
3607
3608         Reviewed by Geoffrey Garen.
3609         
3610         Most of the things I did properly covered by existing tests, but I found some simple cases of
3611         unshifting that had sketchy coverage.
3612
3613         * stress/array-storage-array-unshift.js: Added.
3614         * stress/contiguous-array-unshift.js: Added.
3615         * stress/double-array-unshift.js: Added.
3616         * stress/int32-array-unshift.js: Added.
3617
3618 2016-08-23  Keith Miller  <keith_miller@apple.com>
3619
3620         Update/add new test262 tests
3621         https://bugs.webkit.org/show_bug.cgi?id=161098
3622
3623         Reviewed by Saam Barati.
3624
3625         * test262.yaml:
3626         * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
3627         * test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
3628         * test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
3629         * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
3630         (a):
3631         * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
3632         * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
3633         * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
3634         * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
3635         (AsyncFunction.async.foo):
3636         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
3637         (AsyncFunction.async):
3638         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
3639         (async.foo):
3640         * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
3641         (AsyncFunction.async.foo):
3642         * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
3643         (AsyncFunction.async.foo):
3644         * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
3645         (AsyncFunction.async.foo):
3646         * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
3647         (AsyncFunction.async.foo):
3648         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
3649         (AsyncFunction.async.foo):
3650         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
3651         (AsyncFunction.async.foo):
3652         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
3653         (AsyncFunction.async.foo):
3654         * test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
3655         (async.foo):
3656         * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
3657         (async.foo):
3658         * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
3659         (async.l0):
3660         (async.l1):
3661         (async.l2):
3662         * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
3663         (async.foo):
3664         * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
3665         * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-integer-byteoffset.js.
3666         * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
3667         * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-integer-byteoffset.js.
3668         * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
3669         * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-integer-byteoffset.js.
3670         * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
3671         * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-integer-byteoffset.js.
3672         * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
3673         * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-integer-byteoffset.js.
3674         * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
3675         * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-integer-byteoffset.js.
3676         * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
3677         * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-integer-byteoffset.js.
3678         * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
3679         * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-integer-byteoffset.js.
3680         * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
3681         * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-integer-byteoffset.js.
3682         * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
3683         * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
3684         * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
3685         * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-integer-byteoffset.js.
3686         * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
3687         * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
3688         * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
3689         * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-integer-byteoffset.js.
3690         * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
3691         * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
3692         * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
3693         * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-integer-byteoffset.js.
3694         * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
3695         * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
3696         * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
3697         * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-integer-byteoffset.js.
3698         * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
3699         * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
3700         * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
3701         * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-integer-byteoffset.js.
3702         * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
3703         * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
3704         * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
3705         * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-integer-byteoffset.js.
3706         * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
3707         * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
3708         * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
3709         * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-integer-byteoffset.js.
3710         * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
3711         * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
3712         * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
3713         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
3714         (A):
3715         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
3716         (A):
3717         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
3718         (A):
3719         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
3720         (A):
3721         * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
3722         (async.f):
3723         * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
3724         (async.f):
3725         * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
3726         (let.f.async.f):
3727         * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
3728         (let.f.async.f):
3729         (let.g.async.string_appeared_here):
3730         * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
3731         (defineProperty):
3732         * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
3733         (deleteProperty):
3734         * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
3735         (uncoercible.valueOf):
3736         (get if):
3737         * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
3738         (get if):
3739         * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
3740         * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
3741         (thrower):
3742         * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
3743         (defineProperty):
3744         * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
3745         (deleteProperty):
3746         * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
3747         (ownKeys):
3748         * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
3749         * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
3750         * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
3751         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
3752         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
3753         (fd1.valueOf):
3754         (fd2.toString):
3755         * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
3756         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
3757         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
3758         * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
3759         * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
3760         * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
3761         * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
3762         * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
3763         (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
3764         (badProxyHandlers.allowProxyTraps.ownKeys):
3765         * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
3766         (setPrototypeOf): Deleted.
3767         * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
3768         (target.new.Proxy.Object.create.isExtensible):
3769         (target.new.Proxy.Object.create.getPrototypeOf):
3770         (target.new.Proxy.Object.create):
3771         (setPrototypeOf):
3772         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
3773         (setPrototypeOf):
3774         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
3775         (setPrototypeOf):
3776         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
3777         (setPrototypeOf): Deleted.
3778         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
3779         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
3780         (isExtensible):
3781         (setPrototypeOf):
3782         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
3783         (getPrototypeOf):
3784         (setPrototypeOf):
3785         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
3786         (setPrototypeOf):
3787         * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
3788         (setPrototypeOf): Deleted.
3789         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
3790         (isExtensible):
3791         (setPrototypeOf):
3792         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
3793         (isExtensible):
3794         (getPrototypeOf):
3795         (setPrototypeOf):
3796         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
3797         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
3798         (setPrototypeOf):
3799         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
3800         * test262/test/built-ins/RegExp/lastIndex.js: Added.
3801         * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
3802         * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
3803         (get Object):
3804         * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
3805         (get Object):
3806         * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
3807         * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
3808         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
3809         (get Object):
3810         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
3811         (get Object):
3812         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
3813         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
3814         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
3815         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
3816         (__re.hasOwnProperty): Deleted.
3817         (__re.propertyIsEnumerable): Deleted.
3818         (count.0): Deleted.
3819         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
3820         (__re.hasOwnProperty): Deleted.
3821         (catch): Deleted.
3822         * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
3823         * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
3824         (get Object):
3825         * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
3826         (get Object):
3827         * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
3828         * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
3829         * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
3830         * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
3831         (get Object):
3832         * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
3833         (get Object):
3834         * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
3835         * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
3836         * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
3837         * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
3838         * test262/test/built-ins/RegExp/prototype/source/value.js: Added.
3839         * test262/test/built-ins/RegExp/prototype/sticky/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-invalid-obj.js.
3840         * test262/test/built-ins/RegExp/prototype/sticky/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-non-obj.js.
3841         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
3842         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
3843         * test262/test/built-ins/RegExp/prototype/unicode/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-invald-obj.js.
3844         * test262/test/built-ins/RegExp/prototype/unicode/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-non-obj.js.
3845         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
3846         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
3847         * test262/test/built-ins/String/numeric-properties.js: Added.
3848         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
3849         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
3850         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
3851         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
3852         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
3853         (reduce):
3854         (compareFTPtoFormat):
3855         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
3856         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
3857         (obj1.valueOf):
3858         (obj2.toString):
3859         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
3860         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
3861         * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
3862         * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
3863         * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
3864         (reduce):
3865         (compareFTPtoFormat):
3866         * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
3867         * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
3868         (obj1.valueOf):
3869         (obj2.toString):
3870         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
3871         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
3872         * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
3873         (foo): Deleted.
3874         * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
3875         (dflt):
3876         * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
3877         (dstr):
3878         * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
3879         (rest):
3880         * test262/test/language/arguments-object/unmapped/via-strict.js: Renamed from JSTests/test262/test/language/arguments-object/10.6-10-c-ii-2-s.js.
3881         (foo):
3882         * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
3883         (f): Deleted.
3884         * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
3885         (catch):
3886         * test262/test/language/eval-code/direct/super-call-fn.js: Added.
3887         (f):
3888         * test262/test/language/eval-code/direct/super-call.js: Added.
3889         (catch):
3890         * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
3891         (catch):
3892         * test262/test/language/eval-code/direct/super-prop-method.js: Added.
3893         (o.method):
3894         * test262/test/language/eval-code/direct/super-prop.js: Added.
3895         (catch):
3896         * test262/test/language/eval-code/indirect/super-call.js: Added.
3897         (catch):
3898         (try.m):
3899         * test262/test/language/eval-code/indirect/super-prop.js: Added.
3900         (catch):
3901         (try.m):
3902         * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
3903         (assert.sameValue):
3904         * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
3905         * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
3906         (p.then):
3907         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
3908         (async):
3909         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
3910         (async):
3911         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
3912         (async):
3913         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
3914         (async):
3915         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
3916         (async):
3917         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
3918         (async):
3919         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
3920         (async):
3921         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
3922         (async):
3923         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
3924         (async):
3925         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
3926         (async.foo.super):
3927         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
3928         (async):
3929         * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
3930         (async):
3931         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
3932         (async.arguments):
3933         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
3934         (async.eval):
3935         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
3936         (async.foo):
3937         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
3938         (async.foo):
3939         * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
3940         (async.foo):
3941         * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
3942         (async.foo):
3943         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
3944         (async.foo):
3945         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
3946         (async.foo):
3947         * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
3948         (async.foo):
3949         * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
3950         (p.async):
3951         * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
3952         (async.foo):
3953         * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
3954         (async.await):
3955         * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
3956         (async.foo.await):
3957         (async.foo):
3958         * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
3959         (async.foo):
3960         * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
3961         (thenable.then):
3962         (async.foo):
3963         * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
3964         (thenable.then):
3965         (async.foo):
3966         * test262/test/language/expressions/await/await-in-function.js: Added.
3967         (foo):
3968         * test262/test/language/expressions/await/await-in-generator.js: Added.
3969         (foo):
3970         * test262/test/language/expressions/await/await-in-global.js: Added.
3971         * test262/test/language/expressions/await/await-in-nested-function.js: Added.
3972         (async.foo.bar):
3973         (async.foo):
3974         * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
3975         (async.foo.bar):
3976         (async.foo):
3977         * test262/test/language/expressions/await/await-throws-rejections.js: Added.
3978         (async.foo):
3979         * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
3980         (async.foo):
3981         * test262/test/language/expressions/await/no-operand.js: Added.
3982         (async.foo):
3983         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
3984         (async.foo):
3985         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
3986         (async.foo):
3987         * test262/test/language/expressions/call/trailing-comma.js: Added.
3988         (foo):
3989         * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
3990         (f):
3991         * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
3992         (f):
3993         * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
3994         (f1):
3995         (f2):
3996         * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
3997         (assert.sameValue):
3998         * test262/test/language/expressions/function/params-trailing-comma.js: Added.
3999         * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
4000         (g):
4001         * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
4002         (g):
4003         * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
4004         (f1):
4005         (f2):
4006         * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
4007         (assert.sameValue):
4008         * test262/test/language/expressions/generators/params-trailing-comma.js: Added.
4009         * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
4010         * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
4011         (sup.method):
4012         (child.async.method):
4013         * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
4014         (sup.method):
4015         (child.async.method.x.super.method):
4016         * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
4017         (foo):
4018         * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
4019         (async.foo):
4020         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
4021         (async.foo):
4022         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
4023         (async.foo):
4024         * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
4025         (async.foo):
4026         * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
4027         (async.foo):
4028         * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
4029         (async.foo):
4030         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
4031         (async.foo):
4032         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
4033         (async.foo.foo.super):
4034         * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
4035         (obj.async.method):
4036         * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
4037         (obj.f1):
4038         (obj.f2):
4039         * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
4040         (obj.one):
4041         (obj.two):
4042         * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
4043         (m):
4044         * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
4045         (one):
4046         (two):
4047         * test262/test/language/global-code/decl-func-dup.js: Renamed from JSTests/test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js.
4048         (f):
4049         * test262/test/language/global-code/decl-func.js: Added.
4050         (brandNew):
4051         * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
4052         * test262/test/language/global-code/decl-lex-deletion.js: Added.
4053         (test262class):
4054         * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
4055         * test262/test/language/global-code/decl-lex.js: Added.
4056         (test262class):
4057         * test262/test/language/global-code/decl-var.js: Added.
4058         * test262/test/language/global-code/return.js: Added.
4059         * test262/test/language/global-code/script-decl-func-dups.js: Added.
4060         * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
4061         * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
4062         * test262/test/language/global-code/script-decl-func.js: Added.
4063         * test262/test/language/global-code/script-decl-lex-deletion.js: Added.
4064         * test262/test/language/global-code/script-decl-lex-lex.js: Added.
4065         (test262Class):
4066         * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
4067         * test262/test/language/global-code/script-decl-lex-var.js: Added.
4068         (test262Fn):
4069         * test262/test/language/global-code/script-decl-lex.js: Added.
4070         * test262/test/language/global-code/script-decl-var-collision.js: Added.
4071         (test262Class):
4072         * test262/test/language/global-code/script-decl-var-err.js: Added.
4073         * test262/test/language/global-code/script-decl-var.js: Added.
4074         * test262/test/language/global-code/super-call-arrow.js: Added.
4075         * test262/test/language/global-code/super-call.js: Added.
4076         * test262/test/language/global-code/super-prop-arrow.js: Added.
4077         * test262/test/language/global-code/super-prop.js: Added.
4078         * test262/test/language/global-code/yield-non-strict.js: Added.
4079         (catch):
4080         * test262/test/language/global-code/yield-strict.js: Added.
4081         * test262/test/language/literals/regexp/lastIndex.js: Added.
4082         * test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
4083         * test262/test/language/literals/regexp/y-assertion-start.js: Added.
4084         * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
4085         * test262/test/language/module-code/instn-star-err-not-found.js:
4086         * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
4087         * test262/test/language/module-code/parse-err-return.js: Added.
4088         * test262/test/language/module-code/parse-err-yield.js: Added.
4089         * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
4090         * test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
4091         (async.foo):
4092         * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
4093         (async.foo):
4094         * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
4095         (async.foo):
4096         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
4097         (async.foo):
4098         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
4099         (async.foo):
4100         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
4101         (async.arguments):
4102         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
4103         (async.eval):
4104         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
4105         (async.foo):
4106         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
4107         (async.foo):
4108         * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
4109         (async.foo):
4110         * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
4111         (async.foo):
4112         * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
4113         (async.foo):
4114         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
4115         (async.foo):
4116         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
4117         (async.foo):
4118         * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
4119         (async.foo):
4120         * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
4121         (async.foo):
4122         (foo.then):
4123         * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
4124         (async.foo):
4125         (foo.then):
4126         * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
4127         (async.foo):
4128         (foo.then):
4129         * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
4130         (async.foo):
4131         (foo.then):
4132         * test262/test/language/statements/async-function/evaluation-body.js: Added.
4133         (async.foo):
4134         * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
4135         (async.foo):
4136         (foo.then):
4137         * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
4138         (async.foo):
4139         * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
4140         (async.foo):
4141         * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
4142         (async.foo):
4143         * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
4144         (async.foo):
4145         * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
4146         (async.foo):
4147         * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
4148         (async.foo):
4149         * test262/test/language/statements/async-function/syntax-declaration.js: Added.
4150         (async.foo):
4151         (foo.then):
4152         * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
4153         (Foo.prototype.async.method):
4154         (Foo):
4155         * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
4156         (Foo.prototype.async.bar):
4157         (Foo):
4158         * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
4159         (Foo.prototype.async.foo):
4160         (Foo):
4161         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
4162         (Foo.prototype.async.foo):
4163         (Foo):
4164         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
4165         (Foo.prototype.async.foo):
4166         (Foo):
4167         * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
4168         (Foo.prototype.async.foo):
4169         (Foo):
4170         * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
4171         (Foo.prototype.async.foo):
4172         (Foo):
4173         * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
4174         (Foo.prototype.async.foo):
4175         (Foo):
4176         * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
4177         (Foo.async.foo):
4178         (Foo):
4179         * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
4180         (Foo.prototype.async.foo):
4181         (Foo):
4182         * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
4183         (A.prototype.async.method):
4184         (A):
4185         (B.prototype.async.method):
4186         (B):
4187         * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
4188         (A.prototype.async.method):
4189         (A):
4190         (B.prototype.async.method):
4191         (B):
4192         * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
4193         (C.prototype.f1):
4194         (C.prototype.f2):
4195         (C):
4196         * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
4197         (C.prototype.one):
4198         (C.prototype.two):
4199         (C):
4200         * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
4201         (C.prototype.m):
4202         (C):
4203         * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
4204         (C.prototype.one):
4205         (C.prototype.two):
4206         (C):
4207         * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
4208         (f):
4209         * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
4210         (f):
4211         * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
4212         (f1):
4213         (f2):
4214         * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
4215         (one):
4216         (two):
4217         * test262/test/language/statements/function/params-trailing-comma.js: Added.
4218         (one):
4219         (two):
4220         * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
4221         (g):
4222         * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
4223         (g):
4224         * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
4225         (one):
4226         (two):
4227         * test262/test/language/statements/generators/params-trailing-comma.js: Added.
4228         (one):
4229         (two):
4230         * test262/test262-Revision.txt:
4231
4232 2016-08-23  Benjamin Poulain  <bpoulain@apple.com>
4233
4234         [JSC] Make Math.cos() and Math.sin() work with any argument type
4235         https://bugs.webkit.org/show_bug.cgi?id=161069
4236
4237         Reviewed by Geoffrey Garen.
4238
4239         * stress/arith-cos-on-various-types.js: Added.
4240         * stress/arith-sin-on-various-types.js: Added.
4241
4242 2016-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>
4243
4244         [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
4245         https://bugs.webkit.org/show_bug.cgi?id=161097
4246
4247         Reviewed by Keith Miller.
4248
4249         * test262.yaml:
4250
4251 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
4252
4253         [ES6] Modules' `export default function/class` should be declaration
4254         https://bugs.webkit.org/show_bug.cgi?id=160499
4255
4256         Reviewed by Saam Barati.
4257
4258         Add several module tests. And flip the failed tests flags in test262.
4259
4260         * modules/export-default-function-name-in-assignment-expression.js: Added.
4261         (export.default):
4262         * modules/export-default-function-name-in-class-declaration.js: Added.
4263         * modules/export-default-function-name-in-function-declaration.js: Added.
4264         (export.default):
4265         * modules/export-default-function-name-in-generator-declaration.js: Added.
4266         (export.default):
4267         * stress/method-name.js: Added.
4268         (testSyntax):
4269         (testSyntaxError):
4270         (testSyntaxError.Hello.prototype.hello.hello):
4271         (testSyntaxError.Hello):
4272         (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
4273         (testSyntaxError.Hello.prototype.get hello):
4274         (testSyntaxError.Hello.prototype.set hello):
4275         * test262.yaml:
4276
4277 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
4278
4279         [ES6] Module should not allow HTML comments
4280         https://bugs.webkit.org/show_bug.cgi?id=161041
4281
4282         Reviewed by Saam Barati.
4283
4284         * modules/html-comments.js: Added.
4285         (shouldThrow):
4286         * test262.yaml:
4287
4288 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
4289
4290         [DFG] Should not fixup AnyIntUse in 32_64
4291         https://bugs.webkit.org/show_bug.cgi?id=161029
4292
4293         Reviewed by Saam Barati.
4294
4295         * typeProfiler/int52-dfg.js: Added.
4296         (test):
4297
4298 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
4299
4300         Unreviewed, rolling out r204697
4301         https://bugs.webkit.org/show_bug.cgi?id=161029
4302
4303         * typeProfiler/int52-dfg.js: Removed.