Array.prototype.concat should not modify frozen objects.
[WebKit-https.git] / JSTests / ChangeLog
1 2016-10-11  Mark Lam  <mark.lam@apple.com>
2
3         Array.prototype.concat should not modify frozen objects.
4         https://bugs.webkit.org/show_bug.cgi?id=163302
5
6         Reviewed by Filip Pizlo.
7
8         * stress/array-concat-on-frozen-object.js: Added.
9
10 2016-10-11  Saam Barati  <sbarati@apple.com>
11
12         ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
13         https://bugs.webkit.org/show_bug.cgi?id=163182
14
15         Reviewed by Filip Pizlo.
16
17         * microbenchmarks/string-add-constant-folding.js: Added.
18         (assert):
19         (runTests):
20         (add):
21         (test):
22
23 2016-10-07  Mark Lam  <mark.lam@apple.com>
24
25         Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
26         https://bugs.webkit.org/show_bug.cgi?id=163160
27
28         Reviewed by Saam Barati.
29
30         * stress/object-freeze-with-proxy-preventExtensions.js: Added.
31         * stress/object-seal-with-proxy-preventExtensions.js: Added.
32
33 2016-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>
34
35         [DOMJIT] Add initial CheckDOM and CallDOM implementations
36         https://bugs.webkit.org/show_bug.cgi?id=162941
37
38         Reviewed by Filip Pizlo.
39
40         * stress/domjit-getter-poly.js: Added.
41         (shouldBe):
42         (access):
43         * stress/domjit-getter-proto.js: Added.
44         (shouldBe):
45         (access):
46         * stress/domjit-getter-super-poly.js: Added.
47         (shouldBe):
48         (access):
49         * stress/domjit-getter.js: Added.
50         (shouldBe):
51         (access):
52
53 2016-10-04  Saam Barati  <sbarati@apple.com>
54
55         String.prototype.toLowerCase should be a DFG/FTL intrinsic
56         https://bugs.webkit.org/show_bug.cgi?id=162887
57
58         Reviewed by Filip Pizlo and Yusuke Suzuki.
59
60         * microbenchmarks/to-lower-case.js: Added.
61         (assert):
62         (foo):
63         (bar):
64         * stress/to-lower-case.js: Added.
65         (assert):
66         (foo):
67
68 2016-10-04  JF Bastien  <jfbastien@apple.com>
69
70         WebAssembly: handle a few corner cases
71         https://bugs.webkit.org/show_bug.cgi?id=162884
72
73         Reviewed by Keith Miller.
74
75         * stress/wasm/generate-wasmops-header.js:
76         (const.opcodeIterator): max opcode value
77
78 2016-10-03  JF Bastien  <jfbastien@apple.com>
79
80         Auto-generate WASMOps.h, share with testing JSON file
81         https://bugs.webkit.org/show_bug.cgi?id=162870
82
83         Reviewed by Keith Miller.
84
85         * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
86         (const.opcode_iterator):
87         (opcode_macroizer):
88         * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
89
90 2016-10-03  Saam Barati  <sbarati@apple.com>
91
92         MapHash should speculate on the type of its child node
93         https://bugs.webkit.org/show_bug.cgi?id=161922
94
95         Reviewed by Filip Pizlo.
96
97         * microbenchmarks/map-key-well-typed.js: Added.
98         (assert):
99         (intKey):
100         (doubleKey):
101         (objectKey):
102         (stringKey):
103         (booleanKey):
104         (symbolKey):
105         (cellKey):
106         (assert.doubleKey):
107         (assert.booleanKey):
108
109 2016-10-03  Yusuke Suzuki  <utatane.tea@gmail.com>
110
111         [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
112         https://bugs.webkit.org/show_bug.cgi?id=162849
113
114         Reviewed by Geoffrey Garen.
115
116         * test262.yaml:
117
118 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
119
120         [ES6] Align attributes of Generator related properties to spec
121         https://bugs.webkit.org/show_bug.cgi?id=162839
122
123         Reviewed by Saam Barati.
124
125         * test262.yaml:
126
127 2016-10-01  Yusuke Suzuki  <utatane.tea@gmail.com>
128
129         [ES6] GeneratorFunction constructor should instantiate generator function
130         https://bugs.webkit.org/show_bug.cgi?id=162838
131
132         Reviewed by Saam Barati.
133
134         * stress/generator-function-constructor-is-subclassible.js: Added.
135         (shouldBe):
136         (GeneratorFunction):
137         (prototype.hello):
138         * stress/generator-function-constructor.js:
139         * test262.yaml:
140
141 2016-09-30  Saam Barati  <sbarati@apple.com>
142
143         Arrow functions should not allow duplicate parameter names
144         https://bugs.webkit.org/show_bug.cgi?id=162741
145
146         Reviewed by Filip Pizlo.
147
148         * test262.yaml:
149
150 2016-09-30  Saam Barati  <sbarati@apple.com>
151
152         Make some microbenchmarks run for less time.
153
154         Rubber stamped by Filip Pizlo.
155
156         * microbenchmarks/bound-function-construction-performance.js:
157         (foo):
158         * microbenchmarks/getter-richards-try-catch.js:
159
160 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
161
162         Arrow functions do not infer name from computed property but normal functions do
163         https://bugs.webkit.org/show_bug.cgi?id=162720
164
165         Reviewed by Saam Barati.
166
167         * stress/inferred-names.js:
168
169 2016-09-29  Mark Lam  <mark.lam@apple.com>
170
171         Break some slow running tests into smaller bits so they don't time out.
172         https://bugs.webkit.org/show_bug.cgi?id=162743
173
174         Reviewed by Keith Miller.
175
176         The following tests have shown to be slow running:
177             op_div.js
178             op_lshift.js
179             op_mod.js
180             op_mul.js
181             op_rshift.js
182             op_sub.js
183             op_urshift
184
185         These tests auto-generate permutations of values to apply to binary operations.
186         They also test the operations with 3 permutations of value types:
187             1. VarVar - both operands variables
188             2. VarConst - variable operand 1, constant / literal operand 2
189             3. ConstVar - constant / literal operand 1, variable operand 2
190
191         We can prevent these tests from timing out by breaking each up to only run 1 of
192         the 3 permutations of value types.
193
194         * stress/op_div-ConstVar.js: Added.
195         * stress/op_div-VarConst.js: Added.
196         * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
197         (o1.valueOf): Deleted.
198         * stress/op_div.js: Removed.
199         * stress/op_lshift-ConstVar.js: Added.
200         * stress/op_lshift-VarConst.js: Added.
201         * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
202         (o1.valueOf): Deleted.
203         * stress/op_lshift.js: Removed.
204         * stress/op_mod-ConstVar.js: Added.
205         * stress/op_mod-VarConst.js: Added.
206         * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
207         (o1.valueOf): Deleted.
208         * stress/op_mod.js: Removed.
209         * stress/op_mul-ConstVar.js: Added.
210         * stress/op_mul-VarConst.js: Added.
211         * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
212         (o1.valueOf): Deleted.
213         * stress/op_mul.js: Removed.
214         * stress/op_rshift-ConstVar.js: Added.
215         * stress/op_rshift-VarConst.js: Added.
216         * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
217         (o1.valueOf): Deleted.
218         * stress/op_rshift.js: Removed.
219         * stress/op_sub-ConstVar.js: Added.
220         * stress/op_sub-VarConst.js: Added.
221         * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
222         (o1.valueOf): Deleted.
223         * stress/op_sub.js: Removed.
224         * stress/op_urshift-ConstVar.js: Added.
225         * stress/op_urshift-VarConst.js: Added.
226         * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
227         (o1.valueOf): Deleted.
228         * stress/op_urshift.js: Removed.
229         * stress/resources/binary-op-values.js: Added.
230         (o1.valueOf):
231
232 2016-09-29  Joseph Pecoraro  <pecoraro@apple.com>
233
234         test262: class and function names should be inferred in assignment
235         https://bugs.webkit.org/show_bug.cgi?id=146262
236
237         Reviewed by Saam Barati.
238
239         * stress/arrowfunction-name.js: Added.
240         Quick tests for arrow function names.
241
242         * stress/inferred-names.js: Added.
243         General test for inferred function names.
244
245         * test262.yaml:
246         Pass many tests checking inferred function names.
247
248 2016-09-29  Saam Barati  <sbarati@apple.com>
249
250         We don't properly propagate non-simple-parameter-list when parsing a setter
251         https://bugs.webkit.org/show_bug.cgi?id=160483
252
253         Reviewed by Joseph Pecoraro.
254
255         * test262.yaml:
256
257 2016-09-28  Saam Barati  <sbarati@apple.com>
258
259         stringProtoFuncRepeatCharacter will return `null` when it should not
260         https://bugs.webkit.org/show_bug.cgi?id=161944
261
262         Reviewed by Yusuke Suzuki.
263
264         * stress/pad-start-calls-repeat-character-with-double.js: Added.
265         (logLinesWithContext):
266
267 2016-09-27  Filip Pizlo  <fpizlo@apple.com>
268
269         B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
270         https://bugs.webkit.org/show_bug.cgi?id=162644
271
272         Reviewed by Keith Miller.
273
274         * stress/chill-mod-chill-mod.js: Added.
275         (foo):
276
277 2016-09-26  Csaba Osztrogonác  <oszi@inf.u-szeged.hu>
278
279         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
280         https://bugs.webkit.org/show_bug.cgi?id=162386
281
282         Unreviewed, relanding r206317 after typo fix.
283
284         * stress/string-joining-long-strings-should-not-crash.js:
285
286 2016-09-24  Caitlin Potter  <caitp@igalia.com>
287
288         [JSTests] fix test262 expectations following r206333
289         https://bugs.webkit.org/show_bug.cgi?id=162533
290
291         Reviewed by Yusuke Suzuki.
292
293         * test262.yaml:
294
295 2016-09-23  Caitlin Potter  <caitp@igalia.com>
296
297         [JSC] Implement parsing of Async Functions
298         https://bugs.webkit.org/show_bug.cgi?id=161409
299
300         Reviewed by Yusuke Suzuki.
301
302         * stress/async-await-syntax.js: Added.
303         (testSyntax):
304         (testSyntaxError):
305         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
306         (testTopLevelAsyncAwaitSyntaxSloppyMode):
307         (testTopLevelAsyncAwaitSyntaxStrictMode):
308         (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
309         (testNestedAsyncAwaitSyntax.async):
310         (testNestedAsyncAwaitSyntax.foo):
311         (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
312
313 2016-09-23  Ryan Haddad  <ryanhaddad@apple.com>
314
315         Unreviewed, rolling out r206317.
316
317         This change caused timeouts on El Capitan Release JSC tests
318
319         Reverted changeset:
320
321         "Skip stress/string-joining-long-strings-should-not-crash.js
322         on memory limited devices"
323         https://bugs.webkit.org/show_bug.cgi?id=162386
324         http://trac.webkit.org/changeset/206317
325
326 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
327
328         Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
329         https://bugs.webkit.org/show_bug.cgi?id=162381
330
331         Reviewed by Mark Lam.
332
333         * mozilla/mozilla-tests.yaml:
334
335 2016-09-23  Csaba Osztrogonác  <ossy@webkit.org>
336
337         Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
338         https://bugs.webkit.org/show_bug.cgi?id=162386
339
340         Reviewed by Mark Lam.
341
342         * stress/string-joining-long-strings-should-not-crash.js:
343
344 2016-09-22  Benjamin Poulain  <bpoulain@apple.com>
345
346         [JSC] Use an inline cache to generate op_negate
347         https://bugs.webkit.org/show_bug.cgi?id=162371
348
349         Reviewed by Saam Barati.
350
351         * stress/op-negate-inline-cache.js: Added.
352
353 2016-09-22  Mark Lam  <mark.lam@apple.com>
354
355         Array.prototype.join should do overflow checks on string joins.
356         https://bugs.webkit.org/show_bug.cgi?id=162459
357
358         Reviewed by Saam Barati.
359
360         * stress/array-join-on-strings-need-overflow-checks.js: Added.
361         (assert):
362         (catch):
363
364 2016-09-22  Joseph Pecoraro  <pecoraro@apple.com>
365
366         test262: Function length should be number of parameters before parameters with default values
367         https://bugs.webkit.org/show_bug.cgi?id=162377
368
369         Reviewed by Saam Barati.
370
371         * stress/es6-default-parameters.js:
372         Add our own tests for function lengths with default parameters.
373
374         * test262.yaml:
375         We now pass all dflt-length tests.
376
377 2016-09-20  Benjamin Poulain  <bpoulain@apple.com>
378
379         [JSC] Do not use EagerRun on tests counting recompilation
380         https://bugs.webkit.org/show_bug.cgi?id=162248
381
382         Reviewed by Geoffrey Garen.
383
384         This patch adds defaultNoEagerRun to all the tests
385         for which recompilation is the symptom of a bug.
386         The reason is that an OSR Exit can be unrelated to the tested
387         nodes when we are running in Eager mode.
388
389         * stress/arith-abs-on-various-types.js:
390         * stress/arith-ceil-on-various-types.js:
391         * stress/arith-clz32-on-various-types.js:
392         * stress/arith-cos-on-various-types.js:
393         * stress/arith-floor-on-various-types.js:
394         * stress/arith-fround-on-various-types.js:
395         * stress/arith-log-on-various-types.js:
396         * stress/arith-round-on-various-types.js:
397         * stress/arith-sin-on-various-types.js:
398         * stress/arith-sqrt-on-various-types.js:
399         * stress/arith-tan-on-various-types.js:
400         * stress/arith-trunc-on-various-types.js:
401
402         * stress/compare-strict-eq-on-various-types.js:
403         (testAllTypesCall):
404         The value 2 came from the other tests.
405         CompareStrictEq supports many more cases, the worst case
406         is bool->int->int52->number->polymorphic.
407
408 2016-09-20  Filip Pizlo  <fpizlo@apple.com>
409
410         Make MarkedBlock state tracking support overlapped allocation and marking state
411         https://bugs.webkit.org/show_bug.cgi?id=161581
412
413         Reviewed by Geoffrey Garen.
414         
415         Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
416
417         * microbenchmarks/switching-size-classes.js: Added.
418
419 2016-09-20  Saam Barati  <sbarati@apple.com>
420
421         Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
422
423         * stress/has-own-property-called-on-non-object.js: Added.
424         (let.objs):
425         (new.String):
426         (foo):
427
428 2016-09-20  Yusuke Suzuki  <utatane.tea@gmail.com>
429
430         [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
431         https://bugs.webkit.org/show_bug.cgi?id=162253
432
433         Reviewed by Sam Weinig.
434
435         * microbenchmarks/is-symbol-mixed.js: Added.
436         (isSymbol):
437         (i.let.pair.of.list.String):
438         * microbenchmarks/is-symbol.js: Added.
439         (isSymbol):
440
441 2016-09-19  Saam Barati  <sbarati@apple.com>
442
443         Make HasOwnProperty faster
444         https://bugs.webkit.org/show_bug.cgi?id=161708
445
446         Reviewed by Geoffrey Garen.
447
448         * microbenchmarks/has-own-property-name-cache.js: Added.
449         (foo):
450         * stress/has-own-property-cache-basics.js: Added.
451         (assert):
452         (foo):
453         * stress/has-own-property-name-cache-string-keys.js: Added.
454         (assert):
455         (foo):
456         * stress/has-own-property-name-cache-symbol-keys.js: Added.
457         (assert):
458         (foo):
459         * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
460         (assert):
461         (foo):
462
463 2016-09-19  Benjamin Poulain  <bpoulain@apple.com>
464
465         [JSC] Make the rounding-related nodes support any type
466         https://bugs.webkit.org/show_bug.cgi?id=161895
467
468         Reviewed by Geoffrey Garen.
469
470         * stress/arith-ceil-on-various-types.js: Added.
471         * stress/arith-floor-on-various-types.js: Added.
472         * stress/arith-round-on-various-types.js: Added.
473         * stress/arith-trunc-on-various-types.js: Added.
474
475 2016-09-18  Yusuke Suzuki  <utatane.tea@gmail.com>
476
477         [JSC] Do not need to use defineProperty to define methods for object literals
478         https://bugs.webkit.org/show_bug.cgi?id=162111
479
480         Reviewed by Saam Barati.
481
482         * stress/object-literal-methods.js: Added.
483         (shouldBe):
484         (throw.new.Error.let.object.get name):
485         (throw.new.Error):
486         (shouldBe.let.object.get name):
487         (shouldBe.let.object.get prototype):
488         (shouldBe.let.object.get 42):
489
490 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
491
492         [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
493         https://bugs.webkit.org/show_bug.cgi?id=162000
494
495         Reviewed by Filip Pizlo.
496
497         * microbenchmarks/is-array-for-array.js: Added.
498         (isArray):
499         * microbenchmarks/is-array-for-mixed-case.js: Added.
500         (isArray):
501         * microbenchmarks/is-array-for-non-array-object.js: Added.
502         (isArray):
503         * microbenchmarks/is-array-for-proxy.js: Added.
504         (isArray):
505         (isArray.proxy.throw.new.Error.isArray):
506         (isArray.proxy.throw.new.Error):
507
508 2016-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>
509
510         Unreviewed, gardening test262 results
511
512         Some tests are now passed with JSC, but marked as failed.
513
514         * test262.yaml:
515
516 2016-09-16  Joseph Pecoraro  <pecoraro@apple.com>
517
518         test262: Various Constructors length properties should be configurable
519         https://bugs.webkit.org/show_bug.cgi?id=161998
520
521         Reviewed by Saam Barati.
522
523         * test262.yaml:
524
525 2016-09-15  Commit Queue  <commit-queue@webkit.org>
526
527         Unreviewed, rolling out r205931.
528         https://bugs.webkit.org/show_bug.cgi?id=162021
529
530         Tests for this change fail on 32-bit JSC bots (Requested by
531         ryanhaddad on #webkit).
532
533         Reverted changeset:
534
535         "[JSC] Make the rounding-related nodes support any type"
536         https://bugs.webkit.org/show_bug.cgi?id=161895
537         http://trac.webkit.org/changeset/205931
538
539 2016-09-15  Joseph Pecoraro  <pecoraro@apple.com>
540
541         test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
542         https://bugs.webkit.org/show_bug.cgi?id=162013
543
544         Reviewed by Saam Barati.
545
546         * stress/es6-default-parameters.js:
547         * test262.yaml:
548
549 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
550
551         ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
552         https://bugs.webkit.org/show_bug.cgi?id=162003
553
554         Reviewed by Saam Barati.
555
556         * stress/spread-calling.js:
557         * test262.yaml:
558
559 2016-09-14  Michael Saboff  <msaboff@apple.com>
560
561         YARR doesn't check for invalid flags for literal regular expressions
562         https://bugs.webkit.org/show_bug.cgi?id=161995
563
564         Reviewed by Mark Lam.
565
566         New test.
567
568         * stress/regress-161995.js: Added.
569         (testStatic):
570         (catch):
571
572 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
573
574         test262: TypedArray constructors length should be 3 and configurable
575         https://bugs.webkit.org/show_bug.cgi?id=161955
576
577         Reviewed by Mark Lam.
578
579         * test262.yaml:
580
581 2016-09-14  Benjamin Poulain  <bpoulain@apple.com>
582
583         [JSC] Make the rounding-related nodes support any type
584         https://bugs.webkit.org/show_bug.cgi?id=161895
585
586         Reviewed by Geoffrey Garen.
587
588         * stress/arith-ceil-on-various-types.js: Added.
589         * stress/arith-floor-on-various-types.js: Added.
590         * stress/arith-round-on-various-types.js: Added.
591         * stress/arith-trunc-on-various-types.js: Added.
592
593 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
594
595         TaggedTemplateString function calls should emit tail position calls
596         https://bugs.webkit.org/show_bug.cgi?id=161948
597
598         Reviewed by Yusuke Suzuki.
599
600         * stress/tail-call-recognize.js:
601         (runTests):
602         Ensure a tagged template string function call is tail call.
603
604         * test262.yaml:
605         These now pass.
606
607 2016-09-14  Joseph Pecoraro  <pecoraro@apple.com>
608
609         test262: Array.prototype.slice should always set length
610         https://bugs.webkit.org/show_bug.cgi?id=161953
611
612         Reviewed by Mark Lam.
613
614         * test262.yaml:
615
616 2016-09-13  JF Bastien  <jfbastien@apple.com>
617
618         Support jsc shell builtin `read`
619         https://bugs.webkit.org/show_bug.cgi?id=161662
620
621         Reviewed by Keith Miller.
622
623         * stress/jsc-read.js: Added.
624         (test): test `read` and `readFile` shell builtins, in string and binary mode.
625
626 2016-09-12  Skachkov Oleksandr  <gskachkov@gmail.com>
627
628         ES6: Classes: Should be allowed to create a static method with name "arguments"
629         https://bugs.webkit.org/show_bug.cgi?id=152985
630
631         Reviewed by Keith Miller.
632
633         * test262.yaml:
634
635 2016-09-12  Saam Barati  <sbarati@apple.com>
636
637         Speed up Function.prototype.bind a bit by making it a builtin
638         https://bugs.webkit.org/show_bug.cgi?id=161879
639
640         Reviewed by Filip Pizlo.
641
642         * microbenchmarks/function-bind-inlining.js: Added.
643         (assert):
644         (test):
645         (test2):
646         (foo):
647         * microbenchmarks/function-bind-no-inlining.js: Added.
648         (assert):
649         (test):
650         (test2):
651         (foo):
652
653 2016-09-12  Saam Barati  <sbarati@apple.com>
654
655         HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
656         https://bugs.webkit.org/show_bug.cgi?id=161640
657
658         Reviewed by Geoffrey Garen.
659
660         * microbenchmarks/map-rehash.js: Added.
661         * stress/map-delete.js: Added.
662         (assert):
663         * stress/map-rehash-2.js: Added.
664         (assert):
665         * stress/map-rehash.js: Added.
666         (assert):
667
668 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
669
670         Unreviewed, fix tests for different libm environments
671         https://bugs.webkit.org/show_bug.cgi?id=161857
672
673         * stress/ftl-arithtan.js:
674
675 2016-09-12  Benjamin Poulain  <bpoulain@apple.com>
676
677         [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
678         https://bugs.webkit.org/show_bug.cgi?id=161671
679
680         Reviewed by Geoffrey Garen.
681
682         * stress/get-array-length-on-undecided.js: Added.
683
684 2016-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>
685
686         [DFG][FTL] Add ArithTan
687         https://bugs.webkit.org/show_bug.cgi?id=161857
688
689         Reviewed by Filip Pizlo.
690
691         * microbenchmarks/tan.js: Added.
692         * stress/arith-tan-on-various-types.js: Added.
693         (let.validInputTypedTestCases.validInputTestCases.map):
694         (isIdentical):
695         (opaqueTanNoArgument):
696         (testNoArgument):
697         (opaqueAllTypesTan):
698         (testAllTypesCall):
699         (testTangleTypeCall):
700         (testConstant):
701         (opaqueTanForSideEffects):
702         (testSideEffect.let.testObject.valueOf):
703         (testSideEffect):
704         (opaqueTanForCSE):
705         (testCSE.let.testObject.valueOf):
706         (testCSE):
707         (opaqueTanForDCE):
708         (testDCE.let.testObject.valueOf):
709         (testDCE):
710         (testException.opaqueTanWithException):
711         (testException):
712         * stress/ftl-arithtan.js: Added.
713         (foo):
714
715 2016-09-12  Saam Barati  <sbarati@apple.com>
716
717         MapHash should do constant folding when it has a constant argument and its legal to hash that value
718         https://bugs.webkit.org/show_bug.cgi?id=161639
719
720         Reviewed by Filip Pizlo.
721
722         * microbenchmarks/map-constant-key.js: Added.
723         (assert):
724         (test):
725         (foo):
726
727 2016-09-12  Michael Saboff  <msaboff@apple.com>
728
729         JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
730         https://bugs.webkit.org/show_bug.cgi?id=161863
731
732         Reviewed by Saam Barati.
733
734         * ChakraCore.yaml:
735         Disabled Bugs/bug56026_trycatch.js.
736
737 2016-09-09  Michael Saboff  <msaboff@apple.com>
738
739         Unreviewed, rolling r205759 back in with a fix.
740
741         The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
742         should be named "toString.baseline-jsc".
743
744         * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
745         * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
746
747 2016-09-09  Michael Saboff  <msaboff@apple.com>
748
749         Disable three flakey Chakra Tests
750         https://bugs.webkit.org/show_bug.cgi?id=161807
751
752         Reviewed by Saam Barati.
753
754         * ChakraCore.yaml: Disabled the flakey tests
755         ChakraCore/test/Array/protoLookup_native.js
756         ChakraCore/test/LetConst/delete.js
757         ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
758
759 2016-09-08  Saam Barati  <sbarati@apple.com>
760
761         We should inline operationConvertJSValueToBoolean into JIT code
762         https://bugs.webkit.org/show_bug.cgi?id=161729
763
764         Reviewed by Filip Pizlo.
765
766         * stress/value-to-boolean.js: Added.
767         (assert):
768         (test1):
769         (test2):
770         (test3):
771
772 2016-09-08  Mark Lam  <mark.lam@apple.com>
773
774         REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
775         https://bugs.webkit.org/show_bug.cgi?id=161756
776
777         Reviewed by Saam Barati.
778
779         It looks like the 32-bit JSC bot is just too slow at running this test with the
780         dfg-maximal-flush-validate-no-cjit configuration.  We'll try excluding that
781         configuration.
782
783         * stress/rest-parameter-many-arguments.js:
784
785 2016-09-08  JF Bastien  <jfbastien@apple.com>
786
787         Delete older WebAssembly tests
788         https://bugs.webkit.org/show_bug.cgi?id=161758
789
790         Reviewed by Filip Pizlo.
791
792         They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
793
794         * stress/wasm-arithmetic-float32.js: Removed.
795         * stress/wasm-arithmetic-float64.js: Removed.
796         * stress/wasm-arithmetic-int32.js: Removed.
797         * stress/wasm-calls.js: Removed.
798         * stress/wasm-comma.js: Removed.
799         * stress/wasm-control-flow.js: Removed.
800         * stress/wasm-globals.js: Removed.
801         * stress/wasm-linear-memory.js: Removed.
802         * stress/wasm-locals.js: Removed.
803         * stress/wasm-relational.js: Removed.
804         * stress/wasm-type-conversion.js: Removed.
805         * stress/wasm/arithmetic-float32.wasm: Removed.
806         * stress/wasm/arithmetic-float64.wasm: Removed.
807         * stress/wasm/arithmetic-int32.wasm: Removed.
808         * stress/wasm/calls.wasm: Removed.
809         * stress/wasm/comma.wasm: Removed.
810         * stress/wasm/control-flow.wasm: Removed.
811         * stress/wasm/globals.wasm: Removed.
812         * stress/wasm/linear-memory.wasm: Removed.
813         * stress/wasm/locals.wasm: Removed.
814         * stress/wasm/relational.wasm: Removed.
815         * stress/wasm/type-conversion.wasm: Removed.
816
817 2016-09-08  Per Arne Vollan  <pvollan@apple.com>
818
819         [Win] Exception fuzz tests fail
820         https://bugs.webkit.org/show_bug.cgi?id=140928
821
822         Reviewed by Mark Lam.
823
824         Unskip tests.
825
826         * exceptionFuzz.yaml:
827
828 2016-09-06  Saam Barati  <sbarati@apple.com>
829
830         ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
831         https://bugs.webkit.org/show_bug.cgi?id=161558
832
833         Reviewed by Benjamin Poulain.
834
835         * stress/proxy-get-prototype-of.js:
836         * stress/proxy-set-prototype-of.js:
837         (let.handler.setPrototypeOf): Deleted.
838         * stress/proxy-underscore-proto.js: Added.
839         (assert):
840
841 2016-09-06  Saam Barati  <sbarati@apple.com>
842
843         Make JSMap and JSSet faster
844         https://bugs.webkit.org/show_bug.cgi?id=160989
845
846         Reviewed by Filip Pizlo.
847
848         * microbenchmarks/dense-set.js: Added.
849         (bench):
850         * microbenchmarks/large-map-iteration-with-additions.js: Added.
851         (bar):
852         (foo):
853         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
854         (bar):
855         (foo):
856         * microbenchmarks/large-map-iteration.js: Added.
857         (bar):
858         (foo):
859         * microbenchmarks/map-get-get-cse.js: Added.
860         (bar):
861         (foo):
862         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
863         (bar):
864         (foo):
865         * microbenchmarks/sparse-set.js: Added.
866         (bench):
867         * stress/map-cse-correctness.js: Added.
868         (assert):
869         (testHas):
870         (testGet):
871         (foo):
872         * stress/map-iteration.js: Added.
873         (assert):
874         (test1):
875         (test2):
876         (test3):
877         (test4):
878         (test5):
879         (test6):
880         (test7):
881         (test8):
882         (test9):
883         (test10):
884         (test11):
885         (test12):
886         (test13):
887         (test14):
888         (test15):
889         (test16):
890         (test17):
891         (test18):
892
893 2016-09-06  Benjamin Poulain  <bpoulain@apple.com>
894
895         [JSC] Make ArithClz32 work with Cell arguments
896         https://bugs.webkit.org/show_bug.cgi?id=161369
897
898         Reviewed by Geoffrey Garen.
899
900         * stress/arith-clz32-on-various-types.js: Added.
901
902 2016-09-06  Commit Queue  <commit-queue@webkit.org>
903
904         Unreviewed, rolling out r205504.
905         https://bugs.webkit.org/show_bug.cgi?id=161645
906
907         Broke the iOS device build (Requested by ryanhaddad on
908         #webkit).
909
910         Reverted changeset:
911
912         "Make JSMap and JSSet faster"
913         https://bugs.webkit.org/show_bug.cgi?id=160989
914         http://trac.webkit.org/changeset/205504
915
916 2016-09-06  Saam Barati  <sbarati@apple.com>
917
918         Make JSMap and JSSet faster
919         https://bugs.webkit.org/show_bug.cgi?id=160989
920
921         Reviewed by Filip Pizlo.
922
923         * microbenchmarks/dense-set.js: Added.
924         (bench):
925         * microbenchmarks/large-map-iteration-with-additions.js: Added.
926         (bar):
927         (foo):
928         * microbenchmarks/large-map-iteration-with-mutation.js: Added.
929         (bar):
930         (foo):
931         * microbenchmarks/large-map-iteration.js: Added.
932         (bar):
933         (foo):
934         * microbenchmarks/map-get-get-cse.js: Added.
935         (bar):
936         (foo):
937         * microbenchmarks/map-has-get-cse-opportunity.js: Added.
938         (bar):
939         (foo):
940         * microbenchmarks/sparse-set.js: Added.
941         (bench):
942         * stress/map-cse-correctness.js: Added.
943         (assert):
944         (testHas):
945         (testGet):
946         (foo):
947         * stress/map-iteration.js: Added.
948         (assert):
949         (test1):
950         (test2):
951         (test3):
952         (test4):
953         (test5):
954         (test6):
955         (test7):
956         (test8):
957         (test9):
958         (test10):
959         (test11):
960         (test12):
961         (test13):
962         (test14):
963         (test15):
964         (test16):
965         (test17):
966         (test18):
967
968 2016-08-31  Filip Pizlo  <fpizlo@apple.com>
969
970         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
971         https://bugs.webkit.org/show_bug.cgi?id=160125
972
973         Reviewed by Geoffrey Garen and Keith Miller.
974         
975         Most of the things I did properly covered by existing tests, but I found some simple cases of
976         unshifting that had sketchy coverage.
977
978         * stress/array-storage-array-unshift.js: Added.
979         * stress/contiguous-array-unshift.js: Added.
980         * stress/double-array-unshift.js: Added.
981         * stress/int32-array-unshift.js: Added.
982
983 2016-09-02  Michael Saboff  <msaboff@apple.com>
984
985         Unreviewed fix after importing Chakra test
986
987         * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
988         test contained tab characters.  I removed the tabs before landing.  This test depended
989         on the tab characters and now fails after they were removed.
990         test.
991
992 2016-09-01  Michael Saboff  <msaboff@apple.com>
993
994         Import Chakra tests to JSC
995         https://bugs.webkit.org/show_bug.cgi?id=154697
996
997         Reviewed by Saam Barati.
998
999         Added Chakra tests.  All these tests are under Chakra/test.  This is the same layout
1000         for tests in the Chakra tree.
1001
1002         Created a ChakraCore.yaml file to be used with run-jsc-stress-tests.  This file contains
1003         the tests that are run when the original Chakra runtests.py script is run.  That script
1004         is the test driver for *nix platforms and does not attempt to run all tests or all
1005         variations of tests.  The runtest.py driver consults rlexe.xml files in each test
1006         subdirectory to determine the test to run, the options to pass to the test and how to
1007         determine pass/fail of the test.  With runtests.py as the start, tests that didn't
1008         pass directly where either skipped, with a message describing why or through 
1009         adjustments to the test infrastructure, as described below, where made to pass.
1010         
1011         The only modification to the test infrastrucutre are:
1012
1013          1) Added simple mapping of Chakra expected exception text to JSC expected text in
1014             test/UnitTestFramework/UnitTestFramework.js.  It would make sense to also
1015             map some JSC specific exception text to more generic text for the cases where
1016             that text contains indetifier names or other source specific strings and the
1017             Chakra equivolent exception texts are generic.  
1018  
1019          2) Created JSC specific expected text files where it is clear that the text work
1020             as expected on JSC but the test output is different.  Typically the differences
1021             fall into three categories, different exception output, different output from
1022             toString() of a function, slight numeric differences, and test that rely on
1023             iteration order.
1024
1025          3) Stripped the CR's from the CR-LF line terminations of the files.  
1026
1027         No actual test .js files were modified.
1028
1029         * ChakraCore: Added.
1030         * ChakraCore.yaml: Added.
1031         * ChakraCore/CONTRIBUTING.md: Added.
1032         * ChakraCore/LICENSE.txt: Added.
1033         * ChakraCore/README.md: Added.
1034         * ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
1035         * ChakraCore/test: Added this directory and the tests included therein.
1036
1037 2016-09-01  JF Bastien  <jfbastien@apple.com>
1038
1039         GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
1040         https://bugs.webkit.org/show_bug.cgi?id=160922
1041
1042         Reviewed by Keith Miller.
1043
1044         Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
1045         The value profile is used by the calc functions, which do some mild math with the result.
1046         These benchmarks get ~4% faster with value profiling.
1047
1048         * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
1049         (A):
1050         (A.prototype.set value):
1051         (A.prototype.get value):
1052         (B.prototype.set value):
1053         (B.prototype.get value):
1054         (B):
1055         (const.bench):
1056         * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
1057         (A):
1058         (A.prototype.set value):
1059         (A.prototype.get value):
1060         (B.prototype.set value):
1061         (B.prototype.get value):
1062         (B):
1063         (const.bench):
1064         * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
1065         (value):
1066         (A):
1067         (A.prototype.set v):
1068         (A.prototype.get v):
1069         (B.prototype.set v):
1070         (B.prototype.get v):
1071         (B):
1072         (const.bench):
1073         * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
1074         (value):
1075         (A):
1076         (A.prototype.set v):
1077         (A.prototype.get v):
1078         (B.prototype.set v):
1079         (B.prototype.get v):
1080         (B):
1081         (const.bench):
1082
1083 2016-09-01  Benjamin Poulain  <bpoulain@apple.com>
1084
1085         arith-abs-on-various-types.js is flaky
1086
1087         Unreviewed.
1088
1089         * stress/arith-abs-on-various-types.js:
1090         Two compilation is too small for the worst case.
1091         Math.abs() can be typed integer->number->untyped if we are very unlucky.
1092
1093 2016-09-01  Filip Pizlo  <fpizlo@apple.com>
1094
1095         ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
1096         https://bugs.webkit.org/show_bug.cgi?id=161492
1097
1098         Reviewed by Mark Lam.
1099         
1100         This bug affected function->activation references but not object->object field references,
1101         because object->object field references are !neededForMaterialization(). So, the object
1102         test always passed but the activation/function test used to always fail. It passes now.
1103
1104         * stress/materialize-activation-referenced-from-phantom-function.js: Added.
1105         (bar):
1106         (inc):
1107         (dec):
1108         (foo):
1109         (test):
1110         * stress/materialize-object-referenced-from-phantom-object.js: Added.
1111         (bar):
1112         (foo):
1113         (test):
1114
1115 2016-08-31  Yusuke Suzuki  <utatane.tea@gmail.com>
1116
1117         stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
1118         https://bugs.webkit.org/show_bug.cgi?id=161436
1119
1120         Reviewed by Filip Pizlo.
1121
1122         The test checks Math.random() correctly produces 53bit random values.
1123         The test can fail by design, but this should be fairly rare.
1124
1125         However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
1126         increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
1127
1128         And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
1129         and reproduce the situation easily.
1130
1131         * stress/random-53bit.js:
1132         (test):
1133
1134 2016-08-29  Benjamin Poulain  <bpoulain@apple.com>
1135
1136         [JSC] Improve ArithAbs with polymorphic input
1137         https://bugs.webkit.org/show_bug.cgi?id=161286
1138
1139         Reviewed by Saam Barati.
1140
1141         * stress/arith-abs-on-various-types.js: Added.
1142         New tests.
1143
1144         * stress/arith-cos-on-various-types.js:
1145         * stress/arith-fround-on-various-types.js:
1146         * stress/arith-log-on-various-types.js:
1147         * stress/arith-sin-on-various-types.js:
1148         * stress/arith-sqrt-on-various-types.js:
1149         Extend the existing tests to cover the DCE case.
1150
1151 2016-08-26  Benjamin Poulain  <benjamin@webkit.org>
1152
1153         [JSC] Implement CompareStrictEq(String, Untyped) in FTL
1154         https://bugs.webkit.org/show_bug.cgi?id=161229
1155
1156         Reviewed by Geoffrey Garen.
1157
1158         * stress/compare-strict-eq-on-various-types.js: Added.
1159
1160 2016-08-26  Yusuke Suzuki  <utatane.tea@gmail.com>
1161
1162         [ES6] newPromiseCapabilities should check the given argument is constructor
1163         https://bugs.webkit.org/show_bug.cgi?id=161226
1164
1165         Reviewed by Mark Lam.
1166
1167         The arrow function should not be a constructor. So the error should be raised.
1168
1169         * stress/new-promise-capabilities-requires-constructor.js: Added.
1170         (shouldThrow):
1171
1172 2016-08-25  Benjamin Poulain  <bpoulain@apple.com>
1173
1174         [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
1175         https://bugs.webkit.org/show_bug.cgi?id=161181
1176
1177         Reviewed by Geoffrey Garen.
1178
1179         Extend the tests to constants.
1180         Add no-argument cases where needed.
1181
1182         * stress/arith-cos-on-various-types.js:
1183         * stress/arith-fround-on-various-types.js:
1184         * stress/arith-log-on-various-types.js:
1185         * stress/arith-sin-on-various-types.js:
1186         * stress/arith-sqrt-on-various-types.js:
1187
1188 2016-08-25  Yusuke Suzuki  <utatane.tea@gmail.com>
1189
1190         [DFG][FTL] Implement ES6 Generators in DFG / FTL
1191         https://bugs.webkit.org/show_bug.cgi?id=152723
1192
1193         Reviewed by Filip Pizlo.
1194
1195         * stress/generator-fib-ftl-and-array.js: Added.
1196         (fib):
1197         * stress/generator-fib-ftl-and-object.js: Added.
1198         (fib):
1199         * stress/generator-fib-ftl-and-string.js: Added.
1200         (fib):
1201         * stress/generator-fib-ftl.js: Added.
1202         (fib):
1203         * stress/generator-frame-empty.js: Added.
1204         (shouldThrow):
1205         (shouldThrow.fib):
1206         * stress/generator-reduced-save-point-put-to-scope.js: Added.
1207         (shouldBe):
1208         (gen):
1209         * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
1210         (shouldBe):
1211         (gen):
1212
1213 2016-08-25  JF Bastien  <jfbastien@apple.com>
1214
1215         TryGetById should have a ValueProfile so that it can predict its output type
1216         https://bugs.webkit.org/show_bug.cgi?id=160921
1217
1218         Reviewed by Saam Barati.
1219
1220         * microbenchmarks/try-get-by-id-basic.js: Added.
1221         (const.check):
1222         (const.bench.f.const.fooPlusBar.createBuiltin):
1223         * microbenchmarks/try-get-by-id-polymorphic.js: Added.
1224         (const.check):
1225         (fooPlusBar.createBuiltin):
1226         (bench):
1227
1228 2016-08-25  Caio Lima  <ticaiolima@gmail.com>
1229
1230         NewRegexp should not prevent inlining
1231         https://bugs.webkit.org/show_bug.cgi?id=154808
1232
1233         Reviewed by Geoffrey Garen.
1234
1235         Added test where functions with NewRegExp can be inlined right now.
1236
1237         * stress/new-regex-inline.js: Added.
1238         (assert):
1239         (testRegexpInline):
1240         (toInlineGlobal):
1241         (withRegexp):
1242         (inlineRegexpNotGlobal):
1243         (toInlineRecursive):
1244         (regexpContainsRecursive):
1245
1246 2016-08-24  Benjamin Poulain  <benjamin@webkit.org>
1247
1248         [JSC] Make FRound work with any type
1249         https://bugs.webkit.org/show_bug.cgi?id=161129
1250
1251         Reviewed by Geoffrey Garen.
1252
1253         * stress/arith-fround-on-various-types.js: Added.
1254
1255 2016-08-24  Filip Pizlo  <fpizlo@apple.com>
1256
1257         Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
1258
1259         * stress/array-storage-array-unshift.js: Removed.
1260         * stress/contiguous-array-unshift.js: Removed.
1261         * stress/double-array-unshift.js: Removed.
1262         * stress/int32-array-unshift.js: Removed.
1263
1264 2016-08-24  Skachkov Oleksandr  <gskachkov@gmail.com>
1265
1266         [ES2016] Allow assignment in for-in head in not-strict mode
1267         https://bugs.webkit.org/show_bug.cgi?id=160955
1268
1269         Reviewed by Saam Barati.
1270
1271         * stress/for-in-tests.js:
1272         (foo):
1273         (boo):
1274         (catch):
1275
1276 2016-08-23  Benjamin Poulain  <benjamin@webkit.org>
1277
1278         [JSC] Make ArithLog works with any type
1279         https://bugs.webkit.org/show_bug.cgi?id=161110
1280
1281         Reviewed by Geoffrey Garen.
1282
1283         * stress/arith-log-on-various-types.js: Added.
1284
1285 2016-08-23  Saam Barati  <sbarati@apple.com>
1286
1287         JSC should have a "microbenchmarks" directory instead of "regress" directory
1288         https://bugs.webkit.org/show_bug.cgi?id=161096
1289
1290         Rubber stamped by Mark Lam.
1291
1292         * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
1293
1294 2016-08-23  Keith Miller  <keith_miller@apple.com>
1295
1296         %TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
1297         https://bugs.webkit.org/show_bug.cgi?id=161031
1298         <rdar://problem/27937019>
1299
1300         Reviewed by Geoffrey Garen.
1301
1302         * stress/typedarray-slice.js:
1303         (get let):
1304         (get try):
1305         (testSpeciesWithTransferring):
1306
1307 2016-08-22  Filip Pizlo  <fpizlo@apple.com>
1308
1309         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
1310         https://bugs.webkit.org/show_bug.cgi?id=160125
1311
1312         Reviewed by Geoffrey Garen.
1313         
1314         Most of the things I did properly covered by existing tests, but I found some simple cases of
1315         unshifting that had sketchy coverage.
1316
1317         * stress/array-storage-array-unshift.js: Added.
1318         * stress/contiguous-array-unshift.js: Added.
1319         * stress/double-array-unshift.js: Added.
1320         * stress/int32-array-unshift.js: Added.
1321
1322 2016-08-23  Keith Miller  <keith_miller@apple.com>
1323
1324         Update/add new test262 tests
1325         https://bugs.webkit.org/show_bug.cgi?id=161098
1326
1327         Reviewed by Saam Barati.
1328
1329         * test262.yaml:
1330         * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
1331         * test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
1332         * test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
1333         * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
1334         (a):
1335         * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
1336         * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
1337         * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
1338         * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
1339         (AsyncFunction.async.foo):
1340         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
1341         (AsyncFunction.async):
1342         * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
1343         (async.foo):
1344         * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
1345         (AsyncFunction.async.foo):
1346         * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
1347         (AsyncFunction.async.foo):
1348         * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
1349         (AsyncFunction.async.foo):
1350         * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
1351         (AsyncFunction.async.foo):
1352         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
1353         (AsyncFunction.async.foo):
1354         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
1355         (AsyncFunction.async.foo):
1356         * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
1357         (AsyncFunction.async.foo):
1358         * test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
1359         (async.foo):
1360         * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
1361         (async.foo):
1362         * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
1363         (async.l0):
1364         (async.l1):
1365         (async.l2):
1366         * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
1367         (async.foo):
1368         * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
1369         * 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.
1370         * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
1371         * 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.
1372         * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
1373         * 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.
1374         * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
1375         * 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.
1376         * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
1377         * 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.
1378         * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
1379         * 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.
1380         * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
1381         * 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.
1382         * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
1383         * 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.
1384         * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
1385         * 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.
1386         * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
1387         * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
1388         * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
1389         * 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.
1390         * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
1391         * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
1392         * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
1393         * 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.
1394         * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
1395         * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
1396         * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
1397         * 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.
1398         * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
1399         * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
1400         * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
1401         * 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.
1402         * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
1403         * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
1404         * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
1405         * 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.
1406         * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
1407         * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
1408         * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
1409         * 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.
1410         * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
1411         * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
1412         * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
1413         * 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.
1414         * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
1415         * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
1416         * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
1417         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
1418         (A):
1419         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
1420         (A):
1421         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
1422         (A):
1423         * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
1424         (A):
1425         * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
1426         (async.f):
1427         * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
1428         (async.f):
1429         * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
1430         (let.f.async.f):
1431         * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
1432         (let.f.async.f):
1433         (let.g.async.string_appeared_here):
1434         * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
1435         (defineProperty):
1436         * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
1437         (deleteProperty):
1438         * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
1439         (uncoercible.valueOf):
1440         (get if):
1441         * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
1442         (get if):
1443         * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
1444         * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
1445         (thrower):
1446         * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
1447         (defineProperty):
1448         * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
1449         (deleteProperty):
1450         * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
1451         (ownKeys):
1452         * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
1453         * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
1454         * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
1455         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
1456         * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
1457         (fd1.valueOf):
1458         (fd2.toString):
1459         * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
1460         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
1461         * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
1462         * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
1463         * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
1464         * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
1465         * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
1466         * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
1467         (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
1468         (badProxyHandlers.allowProxyTraps.ownKeys):
1469         * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
1470         (setPrototypeOf): Deleted.
1471         * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
1472         (target.new.Proxy.Object.create.isExtensible):
1473         (target.new.Proxy.Object.create.getPrototypeOf):
1474         (target.new.Proxy.Object.create):
1475         (setPrototypeOf):
1476         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
1477         (setPrototypeOf):
1478         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
1479         (setPrototypeOf):
1480         * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
1481         (setPrototypeOf): Deleted.
1482         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
1483         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
1484         (isExtensible):
1485         (setPrototypeOf):
1486         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
1487         (getPrototypeOf):
1488         (setPrototypeOf):
1489         * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
1490         (setPrototypeOf):
1491         * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
1492         (setPrototypeOf): Deleted.
1493         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
1494         (isExtensible):
1495         (setPrototypeOf):
1496         * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
1497         (isExtensible):
1498         (getPrototypeOf):
1499         (setPrototypeOf):
1500         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
1501         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
1502         (setPrototypeOf):
1503         * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
1504         * test262/test/built-ins/RegExp/lastIndex.js: Added.
1505         * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
1506         * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
1507         (get Object):
1508         * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
1509         (get Object):
1510         * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
1511         * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
1512         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
1513         (get Object):
1514         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
1515         (get Object):
1516         * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
1517         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
1518         * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
1519         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
1520         (__re.hasOwnProperty): Deleted.
1521         (__re.propertyIsEnumerable): Deleted.
1522         (count.0): Deleted.
1523         * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
1524         (__re.hasOwnProperty): Deleted.
1525         (catch): Deleted.
1526         * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
1527         * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
1528         (get Object):
1529         * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
1530         (get Object):
1531         * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
1532         * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
1533         * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
1534         * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
1535         (get Object):
1536         * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
1537         (get Object):
1538         * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
1539         * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
1540         * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
1541         * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
1542         * test262/test/built-ins/RegExp/prototype/source/value.js: Added.
1543         * 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.
1544         * 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.
1545         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
1546         * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
1547         * 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.
1548         * 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.
1549         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
1550         * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
1551         * test262/test/built-ins/String/numeric-properties.js: Added.
1552         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
1553         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
1554         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
1555         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
1556         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
1557         (reduce):
1558         (compareFTPtoFormat):
1559         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
1560         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
1561         (obj1.valueOf):
1562         (obj2.toString):
1563         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
1564         * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
1565         * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
1566         * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
1567         * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
1568         (reduce):
1569         (compareFTPtoFormat):
1570         * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
1571         * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
1572         (obj1.valueOf):
1573         (obj2.toString):
1574         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
1575         * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
1576         * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
1577         (foo): Deleted.
1578         * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
1579         (dflt):
1580         * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
1581         (dstr):
1582         * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
1583         (rest):
1584         * 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.
1585         (foo):
1586         * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
1587         (f): Deleted.
1588         * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
1589         (catch):
1590         * test262/test/language/eval-code/direct/super-call-fn.js: Added.
1591         (f):
1592         * test262/test/language/eval-code/direct/super-call.js: Added.
1593         (catch):
1594         * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
1595         (catch):
1596         * test262/test/language/eval-code/direct/super-prop-method.js: Added.
1597         (o.method):
1598         * test262/test/language/eval-code/direct/super-prop.js: Added.
1599         (catch):
1600         * test262/test/language/eval-code/indirect/super-call.js: Added.
1601         (catch):
1602         (try.m):
1603         * test262/test/language/eval-code/indirect/super-prop.js: Added.
1604         (catch):
1605         (try.m):
1606         * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
1607         (assert.sameValue):
1608         * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
1609         * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
1610         (p.then):
1611         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
1612         (async):
1613         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
1614         (async):
1615         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
1616         (async):
1617         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
1618         (async):
1619         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
1620         (async):
1621         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
1622         (async):
1623         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
1624         (async):
1625         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
1626         (async):
1627         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
1628         (async):
1629         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
1630         (async.foo.super):
1631         * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
1632         (async):
1633         * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
1634         (async):
1635         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
1636         (async.arguments):
1637         * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
1638         (async.eval):
1639         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
1640         (async.foo):
1641         * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
1642         (async.foo):
1643         * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
1644         (async.foo):
1645         * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
1646         (async.foo):
1647         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
1648         (async.foo):
1649         * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
1650         (async.foo):
1651         * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
1652         (async.foo):
1653         * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
1654         (p.async):
1655         * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
1656         (async.foo):
1657         * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
1658         (async.await):
1659         * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
1660         (async.foo.await):
1661         (async.foo):
1662         * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
1663         (async.foo):
1664         * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
1665         (thenable.then):
1666         (async.foo):
1667         * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
1668         (thenable.then):
1669         (async.foo):
1670         * test262/test/language/expressions/await/await-in-function.js: Added.
1671         (foo):
1672         * test262/test/language/expressions/await/await-in-generator.js: Added.
1673         (foo):
1674         * test262/test/language/expressions/await/await-in-global.js: Added.
1675         * test262/test/language/expressions/await/await-in-nested-function.js: Added.
1676         (async.foo.bar):
1677         (async.foo):
1678         * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
1679         (async.foo.bar):
1680         (async.foo):
1681         * test262/test/language/expressions/await/await-throws-rejections.js: Added.
1682         (async.foo):
1683         * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
1684         (async.foo):
1685         * test262/test/language/expressions/await/no-operand.js: Added.
1686         (async.foo):
1687         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
1688         (async.foo):
1689         * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
1690         (async.foo):
1691         * test262/test/language/expressions/call/trailing-comma.js: Added.
1692         (foo):
1693         * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
1694         (f):
1695         * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
1696         (f):
1697         * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
1698         (f1):
1699         (f2):
1700         * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
1701         (assert.sameValue):
1702         * test262/test/language/expressions/function/params-trailing-comma.js: Added.
1703         * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
1704         (g):
1705         * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
1706         (g):
1707         * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
1708         (f1):
1709         (f2):
1710         * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
1711         (assert.sameValue):
1712         * test262/test/language/expressions/generators/params-trailing-comma.js: Added.
1713         * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
1714         * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
1715         (sup.method):
1716         (child.async.method):
1717         * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
1718         (sup.method):
1719         (child.async.method.x.super.method):
1720         * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
1721         (foo):
1722         * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
1723         (async.foo):
1724         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
1725         (async.foo):
1726         * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
1727         (async.foo):
1728         * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
1729         (async.foo):
1730         * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
1731         (async.foo):
1732         * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
1733         (async.foo):
1734         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
1735         (async.foo):
1736         * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
1737         (async.foo.foo.super):
1738         * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
1739         (obj.async.method):
1740         * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
1741         (obj.f1):
1742         (obj.f2):
1743         * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
1744         (obj.one):
1745         (obj.two):
1746         * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
1747         (m):
1748         * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
1749         (one):
1750         (two):
1751         * 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.
1752         (f):
1753         * test262/test/language/global-code/decl-func.js: Added.
1754         (brandNew):
1755         * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
1756         * test262/test/language/global-code/decl-lex-deletion.js: Added.
1757         (test262class):
1758         * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
1759         * test262/test/language/global-code/decl-lex.js: Added.
1760         (test262class):
1761         * test262/test/language/global-code/decl-var.js: Added.
1762         * test262/test/language/global-code/return.js: Added.
1763         * test262/test/language/global-code/script-decl-func-dups.js: Added.
1764         * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
1765         * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
1766         * test262/test/language/global-code/script-decl-func.js: Added.
1767         * test262/test/language/global-code/script-decl-lex-deletion.js: Added.
1768         * test262/test/language/global-code/script-decl-lex-lex.js: Added.
1769         (test262Class):
1770         * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
1771         * test262/test/language/global-code/script-decl-lex-var.js: Added.
1772         (test262Fn):
1773         * test262/test/language/global-code/script-decl-lex.js: Added.
1774         * test262/test/language/global-code/script-decl-var-collision.js: Added.
1775         (test262Class):
1776         * test262/test/language/global-code/script-decl-var-err.js: Added.
1777         * test262/test/language/global-code/script-decl-var.js: Added.
1778         * test262/test/language/global-code/super-call-arrow.js: Added.
1779         * test262/test/language/global-code/super-call.js: Added.
1780         * test262/test/language/global-code/super-prop-arrow.js: Added.
1781         * test262/test/language/global-code/super-prop.js: Added.
1782         * test262/test/language/global-code/yield-non-strict.js: Added.
1783         (catch):
1784         * test262/test/language/global-code/yield-strict.js: Added.
1785         * test262/test/language/literals/regexp/lastIndex.js: Added.
1786         * test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
1787         * test262/test/language/literals/regexp/y-assertion-start.js: Added.
1788         * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
1789         * test262/test/language/module-code/instn-star-err-not-found.js:
1790         * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
1791         * test262/test/language/module-code/parse-err-return.js: Added.
1792         * test262/test/language/module-code/parse-err-yield.js: Added.
1793         * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
1794         * test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
1795         (async.foo):
1796         * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
1797         (async.foo):
1798         * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
1799         (async.foo):
1800         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
1801         (async.foo):
1802         * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
1803         (async.foo):
1804         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
1805         (async.arguments):
1806         * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
1807         (async.eval):
1808         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
1809         (async.foo):
1810         * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
1811         (async.foo):
1812         * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
1813         (async.foo):
1814         * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
1815         (async.foo):
1816         * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
1817         (async.foo):
1818         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
1819         (async.foo):
1820         * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
1821         (async.foo):
1822         * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
1823         (async.foo):
1824         * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
1825         (async.foo):
1826         (foo.then):
1827         * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
1828         (async.foo):
1829         (foo.then):
1830         * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
1831         (async.foo):
1832         (foo.then):
1833         * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
1834         (async.foo):
1835         (foo.then):
1836         * test262/test/language/statements/async-function/evaluation-body.js: Added.
1837         (async.foo):
1838         * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
1839         (async.foo):
1840         (foo.then):
1841         * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
1842         (async.foo):
1843         * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
1844         (async.foo):
1845         * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
1846         (async.foo):
1847         * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
1848         (async.foo):
1849         * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
1850         (async.foo):
1851         * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
1852         (async.foo):
1853         * test262/test/language/statements/async-function/syntax-declaration.js: Added.
1854         (async.foo):
1855         (foo.then):
1856         * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
1857         (Foo.prototype.async.method):
1858         (Foo):
1859         * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
1860         (Foo.prototype.async.bar):
1861         (Foo):
1862         * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
1863         (Foo.prototype.async.foo):
1864         (Foo):
1865         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
1866         (Foo.prototype.async.foo):
1867         (Foo):
1868         * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
1869         (Foo.prototype.async.foo):
1870         (Foo):
1871         * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
1872         (Foo.prototype.async.foo):
1873         (Foo):
1874         * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
1875         (Foo.prototype.async.foo):
1876         (Foo):
1877         * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
1878         (Foo.prototype.async.foo):
1879         (Foo):
1880         * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
1881         (Foo.async.foo):
1882         (Foo):
1883         * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
1884         (Foo.prototype.async.foo):
1885         (Foo):
1886         * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
1887         (A.prototype.async.method):
1888         (A):
1889         (B.prototype.async.method):
1890         (B):
1891         * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
1892         (A.prototype.async.method):
1893         (A):
1894         (B.prototype.async.method):
1895         (B):
1896         * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
1897         (C.prototype.f1):
1898         (C.prototype.f2):
1899         (C):
1900         * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
1901         (C.prototype.one):
1902         (C.prototype.two):
1903         (C):
1904         * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
1905         (C.prototype.m):
1906         (C):
1907         * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
1908         (C.prototype.one):
1909         (C.prototype.two):
1910         (C):
1911         * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
1912         (f):
1913         * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
1914         (f):
1915         * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
1916         (f1):
1917         (f2):
1918         * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
1919         (one):
1920         (two):
1921         * test262/test/language/statements/function/params-trailing-comma.js: Added.
1922         (one):
1923         (two):
1924         * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
1925         (g):
1926         * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
1927         (g):
1928         * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
1929         (one):
1930         (two):
1931         * test262/test/language/statements/generators/params-trailing-comma.js: Added.
1932         (one):
1933         (two):
1934         * test262/test262-Revision.txt:
1935
1936 2016-08-23  Benjamin Poulain  <bpoulain@apple.com>
1937
1938         [JSC] Make Math.cos() and Math.sin() work with any argument type
1939         https://bugs.webkit.org/show_bug.cgi?id=161069
1940
1941         Reviewed by Geoffrey Garen.
1942
1943         * stress/arith-cos-on-various-types.js: Added.
1944         * stress/arith-sin-on-various-types.js: Added.
1945
1946 2016-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>
1947
1948         [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
1949         https://bugs.webkit.org/show_bug.cgi?id=161097
1950
1951         Reviewed by Keith Miller.
1952
1953         * test262.yaml:
1954
1955 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
1956
1957         [ES6] Modules' `export default function/class` should be declaration
1958         https://bugs.webkit.org/show_bug.cgi?id=160499
1959
1960         Reviewed by Saam Barati.
1961
1962         Add several module tests. And flip the failed tests flags in test262.
1963
1964         * modules/export-default-function-name-in-assignment-expression.js: Added.
1965         (export.default):
1966         * modules/export-default-function-name-in-class-declaration.js: Added.
1967         * modules/export-default-function-name-in-function-declaration.js: Added.
1968         (export.default):
1969         * modules/export-default-function-name-in-generator-declaration.js: Added.
1970         (export.default):
1971         * stress/method-name.js: Added.
1972         (testSyntax):
1973         (testSyntaxError):
1974         (testSyntaxError.Hello.prototype.hello.hello):
1975         (testSyntaxError.Hello):
1976         (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
1977         (testSyntaxError.Hello.prototype.get hello):
1978         (testSyntaxError.Hello.prototype.set hello):
1979         * test262.yaml:
1980
1981 2016-08-22  Yusuke Suzuki  <utatane.tea@gmail.com>
1982
1983         [ES6] Module should not allow HTML comments
1984         https://bugs.webkit.org/show_bug.cgi?id=161041
1985
1986         Reviewed by Saam Barati.
1987
1988         * modules/html-comments.js: Added.
1989         (shouldThrow):
1990         * test262.yaml:
1991
1992 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
1993
1994         [DFG] Should not fixup AnyIntUse in 32_64
1995         https://bugs.webkit.org/show_bug.cgi?id=161029
1996
1997         Reviewed by Saam Barati.
1998
1999         * typeProfiler/int52-dfg.js: Added.
2000         (test):
2001
2002 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2003
2004         Unreviewed, rolling out r204697
2005         https://bugs.webkit.org/show_bug.cgi?id=161029
2006
2007         * typeProfiler/int52-dfg.js: Removed.
2008         (test): Deleted.
2009         * typeProfiler/number-filter-dfg.js: Removed.
2010         (test): Deleted.
2011
2012 2016-08-21  Yusuke Suzuki  <utatane.tea@gmail.com>
2013
2014         [DFG] Should not fixup AnyIntUse in 32_64
2015         https://bugs.webkit.org/show_bug.cgi?id=161029
2016
2017         Reviewed by Saam Barati.
2018
2019         * typeProfiler/int52-dfg.js: Added.
2020         (test):
2021         * typeProfiler/number-filter-dfg.js: Added.
2022         (test):
2023
2024 2016-08-19  Benjamin Poulain  <bpoulain@apple.com>
2025
2026         [JSC] ArithSqrt should work with any argument type
2027         https://bugs.webkit.org/show_bug.cgi?id=160954
2028
2029         Reviewed by Saam Barati.
2030
2031         * stress/arith-sqrt-on-various-types.js: Added.
2032         (let.validInputTypedTestCases.validInputTestCases.map):
2033         (isIdentical):
2034         (opaqueAllTypesSqrt):
2035         (testAllTypesCall):
2036         (testSingleTypeCall):
2037         (opaqueSqrtForSideEffects):
2038         (testSideEffect.let.testObject.valueOf):
2039         (testSideEffect):
2040         (opaqueSqrtForCSE):
2041         (testCSE.let.testObject.valueOf):
2042         (testCSE):
2043         (testException.opaqueSqrtWithException):
2044         (testException):
2045
2046 2016-08-19  Joseph Pecoraro  <pecoraro@apple.com>
2047
2048         Make custom Error properties (line, column, sourceURL) configurable and writable
2049         https://bugs.webkit.org/show_bug.cgi?id=160984
2050         <rdar://problem/27905979>
2051
2052         Reviewed by Saam Barati.
2053
2054         * stress/native-error-properties.js: Added.
2055         (assert):
2056         (shouldNotThrow):
2057
2058         (checkEmptyErrorPropertiesDescriptors):
2059         (checkNonEmptyErrorPropertiesDescriptors):
2060         The spec only describes the "message" property, so
2061         ensure it has the right descriptor attributes.
2062
2063         (checkErrorPropertiesWritable):
2064         Ensure common error property names are writable.
2065         In strict mode this would have thrown an exception
2066         if they were readonly.
2067
2068 2016-08-18  Mark Lam  <mark.lam@apple.com>
2069
2070         ScopedArguments is using the wrong owner object for a write barrier.
2071         https://bugs.webkit.org/show_bug.cgi?id=160976
2072         <rdar://problem/27328506>
2073
2074         Reviewed by Keith Miller.
2075
2076         * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
2077
2078 2016-08-17  JF Bastien  <jfbastien@apple.com>
2079
2080         We allow assignments to const variables when in a for-in/for-of loop
2081         https://bugs.webkit.org/show_bug.cgi?id=156673
2082
2083         Reviewed by Filip Pizlo.
2084
2085         * stress/for-in-of-const.js: Added.
2086         (expect_nothrow):
2087         (expect_throw):
2088         (capture):
2089
2090 2016-08-17  Mark Lam  <mark.lam@apple.com>
2091
2092         Remove an invalid assertion in the DFG backend's GetById emitter.
2093         https://bugs.webkit.org/show_bug.cgi?id=160925
2094         <rdar://problem/27248961>
2095
2096         Reviewed by Filip Pizlo.
2097
2098         * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
2099
2100 2016-08-16  Ryan Haddad  <ryanhaddad@apple.com>
2101
2102         Unreviewed, rolling out r204464.
2103
2104         This is no longer needed after r204495.
2105
2106         Reverted changeset:
2107
2108         "Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
2109         https://bugs.webkit.org/show_bug.cgi?id=160662
2110         http://trac.webkit.org/changeset/204464
2111
2112 2016-08-15  Ryan Haddad  <ryanhaddad@apple.com>
2113
2114         Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
2115         https://bugs.webkit.org/show_bug.cgi?id=160662
2116
2117         Unreviewed test gardening.
2118
2119         * mozilla/ecma/LexicalConventions/7.7.3.js:
2120
2121 2016-08-14  Skachkov Oleksandr  <gskachkov@gmail.com>
2122
2123         [2016] Set correct status for test262 after implementation of Object.values&Object.entries
2124         https://bugs.webkit.org/show_bug.cgi?id=160844
2125
2126         Reviewed by Saam Barati.
2127
2128         Patch contains fix statuses of specs in the test262 test collection after implementation of 
2129         Object.values and Object.entries functions. Also patch contains small fixes in tests of the 
2130         tests for Object.values/entries functions.
2131
2132         * stress/object-entries.js:
2133         (Object.getOwnPropertyDescriptor):
2134         * stress/object-values.js:
2135         (Object.getOwnPropertyDescriptor):
2136         * test262.yaml:
2137
2138 2016-08-12  Saam Barati  <sbarati@apple.com>
2139
2140         Inline store loop for CopyRest in DFG and FTL for certain array modes
2141         https://bugs.webkit.org/show_bug.cgi?id=159612
2142
2143         Reviewed by Filip Pizlo.
2144
2145         * stress/rest-parameter-having-a-bad-time.js: Added.
2146         * stress/rest-parameter-many-arguments.js: Added.
2147         * stress/rest-parameter-various-types.js: Added.
2148
2149 2016-08-12  Skachkov Oleksandr  <gskachkov@gmail.com>
2150
2151         [ES2016] Implement Object.entries
2152         https://bugs.webkit.org/show_bug.cgi?id=160412
2153
2154         Reviewed by Saam Barati.
2155
2156         Patch contains tests for Object.entries function and 
2157         fix of wrong tests for Object.values function.
2158
2159         * stress/object-entries.js: 
2160         (compare):
2161         (string_appeared_here.forEach):
2162         (const.getInvokedFunctions.):
2163         (const.getInvokedFunctions):
2164         (Array.prototype.push):
2165         * stress/object-values.js:
2166
2167 2016-08-11  Mark Lam  <mark.lam@apple.com>
2168
2169         OverridesHasInstance should not branch across register allocations.
2170         https://bugs.webkit.org/show_bug.cgi?id=160792
2171         <rdar://problem/27361778>
2172
2173         Reviewed by Benjamin Poulain.
2174
2175         * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
2176
2177 2016-08-11  Mark Lam  <mark.lam@apple.com>
2178
2179         The jsc shell's Element host constructor should throw if it fails to construct an object.
2180         https://bugs.webkit.org/show_bug.cgi?id=160773
2181         <rdar://problem/27328608>
2182
2183         Reviewed by Saam Barati.
2184
2185         * stress/generational-opaque-roots.js:
2186
2187 2016-08-11  Mark Lam  <mark.lam@apple.com>
2188
2189         Disallow synchronous sweeping for eden GCs.
2190         https://bugs.webkit.org/show_bug.cgi?id=160716
2191
2192         Reviewed by Geoffrey Garen.
2193
2194         * stress/eden-gc-with-retired-blocks.js: Added.
2195         - This test is just in case we add back support for eden GCs with synchronous
2196           sweeping in the future.
2197
2198 2016-08-10  Michael Saboff  <msaboff@apple.com>
2199
2200         Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
2201         https://bugs.webkit.org/show_bug.cgi?id=160749
2202
2203         Reviewed by Filip Pizlo.
2204
2205         New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
2206         stubs to be generated and then throws exceptions for those stub to handle
2207         to verify that they are properly handled.
2208
2209         * stress/regress-160749.js: Added.
2210         (testCachedGetByVal.):
2211         (testCachedGetByVal.get for):
2212         (testCachedGetByVal):
2213         (testCachedPutByVal.):
2214         (testCachedPutByVal.set for):
2215         (testCachedPutByVal):
2216
2217 2016-08-10  Mark Lam  <mark.lam@apple.com>
2218
2219         DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
2220         https://bugs.webkit.org/show_bug.cgi?id=160755
2221         <rdar://problem/27488507>
2222
2223         Reviewed by Filip Pizlo.
2224
2225         * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
2226
2227 2016-08-09  Skachkov Oleksandr  <gskachkov@gmail.com>
2228
2229         [ES2016] Implement Object.values
2230         https://bugs.webkit.org/show_bug.cgi?id=160410
2231
2232         Reviewed by Saam Barati, Yusuke Suzuki.
2233
2234         * stress/object-values.js: Added.
2235         (compare):
2236         (string_appeared_here.forEach):
2237         (const.getInvokedFunctions.):
2238         (const.getInvokedFunctions):
2239         (Array.prototype.push):
2240
2241 2016-08-09  Saam Barati  <sbarati@apple.com>
2242
2243         JSBoundFunction should lazily generate its name string
2244         https://bugs.webkit.org/show_bug.cgi?id=160678
2245         <rdar://problem/27043194>
2246
2247         Reviewed by Mark Lam.
2248
2249         * stress/bound-function-lazy-name-generation.js: Added.
2250         (assert):
2251         (test.let.f):
2252         (test.f):
2253         (test):
2254
2255 2016-08-08  Mark Lam  <mark.lam@apple.com>
2256
2257         ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
2258         https://bugs.webkit.org/show_bug.cgi?id=160666
2259
2260         Reviewed by Keith Miller.
2261
2262         * stress/object-constructor-should-be-new-target-aware.js:
2263
2264 2016-08-07  Yusuke Suzuki  <utatane.tea@gmail.com>
2265
2266         [ES6] Module namespace object should not allow unset IC
2267         https://bugs.webkit.org/show_bug.cgi?id=160553
2268
2269         Reviewed by Saam Barati.
2270
2271         * modules/namespace-object-get-property.js: Added.
2272         (import.as.ns.from.string_appeared_here.shouldThrow):
2273         * modules/namespace-object-has-property.js: Added.
2274         * modules/namespace-object-inline-caching.js: Added.
2275         (import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
2276         (shouldBe.lookup.lookup):
2277         (shouldBe.lookup):
2278         * modules/namespace-object-inline-caching/a.js: Added.
2279         * modules/namespace-object-inline-caching/b.js: Added.
2280         * modules/namespace-object-try-get.js: Added.
2281         (import.as.ns.from.string_appeared_here.tryGetByIdText):
2282         (tryGetByIdTextStrict):
2283         * modules/namespace-object-typed-array-fast-path.js: Added.
2284         * test262.yaml:
2285
2286 2016-08-05  Saam Barati  <sbarati@apple.com>
2287
2288         various math operations don't properly check for an exception after calling toNumber() on the lhs
2289         https://bugs.webkit.org/show_bug.cgi?id=160154
2290
2291         Reviewed by Mark Lam.
2292
2293         * stress/to-number-throws-correct-exception.js: Added.
2294         (test.let.test.runTest.):
2295         (test.let.test.runTest.get f):
2296         (test.let.test.runTest):
2297         (test.let.test):
2298         (test):
2299         (test2.runTest.):
2300         (test2.runTest.get f):
2301         (test2.runTest):
2302         (test2):
2303
2304 2016-08-05  Saam Barati  <sbarati@apple.com>
2305
2306         Assertion failure when accessing TDZ variable in catch through eval
2307         https://bugs.webkit.org/show_bug.cgi?id=160554
2308
2309         Reviewed by Mark Lam and Keith Miller.
2310
2311         * stress/catch-variables-under-tdz.js: Added.
2312         (test):
2313
2314 2016-08-04  Yusuke Suzuki  <utatane.tea@gmail.com>
2315
2316         [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
2317         https://bugs.webkit.org/show_bug.cgi?id=160549
2318
2319         Reviewed by Saam Barati.
2320
2321         * modules/namespace-object-symbol-iterator-name.js: Added.
2322         * test262.yaml:
2323
2324 2016-08-04  Keith Miller  <keith_miller@apple.com>
2325
2326         ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
2327         https://bugs.webkit.org/show_bug.cgi?id=160562
2328
2329         Reviewed by Mark Lam.
2330
2331         * stress/instanceof-late-constant-folding.js: Added.
2332         (Constructor):
2333         (value):
2334         (body):
2335
2336 2016-08-04  Caitlin Potter  <caitp@igalia.com>
2337
2338         [JSC] fix generator-syntax.js JSTest again after yield grammar fix
2339         https://bugs.webkit.org/show_bug.cgi?id=160550
2340
2341         Reviewed by Yusuke Suzuki.
2342
2343         * stress/generator-syntax.js:
2344         (testYieldBindingIdentifier):
2345
2346 2016-08-03  Caitlin Potter  <caitp@igalia.com>
2347
2348         Clarify SyntaxErrors around yield and unskip tests
2349         https://bugs.webkit.org/show_bug.cgi?id=158460
2350
2351         Reviewed by Saam Barati.
2352
2353         Fix and unskip tests which erroneously asserted that `yield` is not a
2354         valid BindingIdentifier, and improve error message for YieldExpressions
2355         occuring in Arrow formal parameters.
2356
2357         * stress/generator-syntax.js:
2358         * stress/yield-out-of-generator.js:
2359
2360 2016-08-03  Filip Pizlo  <fpizlo@apple.com>
2361
2362         REGRESSION(r203368): broke some test262 tests
2363         https://bugs.webkit.org/show_bug.cgi?id=160479
2364
2365         Reviewed by Mark Lam.
2366         
2367         Added a stress test for this case, since we don't always run test262.
2368
2369         * stress/freeze-setter.js: Added.
2370         (let.o.set foo):
2371
2372 2016-08-03  Saam Barati  <sbarati@apple.com>
2373
2374         Implement nested rest destructuring w.r.t the ES7 spec
2375         https://bugs.webkit.org/show_bug.cgi?id=160423
2376
2377         Reviewed by Filip Pizlo.
2378
2379         * stress/destructuring-rest-element.js: Added.
2380         (assert):
2381         (test):
2382         (arr):
2383         (eq):
2384         (gen):
2385         (fakeGen.return.Symbol.iterator):
2386         (fakeGen):
2387         * stress/rest-elements.js:
2388         (testSyntaxError.String.raw):
2389         * stress/rest-parameter-is-destructuring.js: Added.
2390         (assert):
2391         (test):
2392         (foo):
2393         (bar):
2394         * test262.yaml:
2395
2396 2016-08-02  Saam Barati  <sbarati@apple.com>
2397
2398         Rename Changelog to ChangeLog
2399
2400         Rubber stamped by Keith Miller.
2401
2402         * Changelog: Removed.
2403
2404 2016-08-02  Saam Barati  <sbarati@apple.com>
2405
2406         update a class extending null w.r.t the ES7 spec
2407         https://bugs.webkit.org/show_bug.cgi?id=160417
2408
2409         Reviewed by Keith Miller.
2410
2411         * Changelog:
2412         * stress/class-derived-from-null.js: Added.
2413         (assert):
2414         (test):
2415         (test1.C):
2416         (test1):
2417         (jsNull):
2418         (test2.C):
2419         (test2):
2420         (test3.C):
2421         (test3.D):
2422         (test3.E):
2423         (test3):
2424         (test4.E):
2425         (test4):
2426         (test5.E):
2427         (test5):
2428         (test6.Base):
2429         (test6.D):
2430         (test6.E):
2431         (test6.F):
2432         (test6.G):
2433         (test6):
2434         * test262.yaml:
2435
2436 2016-08-01  Filip Pizlo  <fpizlo@apple.com>
2437
2438         Rationalize varargs stack overflow checks
2439         https://bugs.webkit.org/show_bug.cgi?id=160425
2440
2441         Reviewed by Michael Saboff.
2442
2443         * stress/arity-check-ftl-throw-more-args.js: Added.
2444         (catch):
2445
2446 2016-08-01  Keith Miller  <keith_miller@apple.com>
2447
2448         We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
2449         https://bugs.webkit.org/show_bug.cgi?id=160372
2450
2451         Rubber stamped by Geoffrey Garen.
2452
2453         This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
2454         a new top level directory, JSTests. Having the tests in the Source directory
2455         was both confusing an inconvenient for people that just want to checkout the
2456         source code of WebKit. Since there is no other obvious place to put all the
2457         JavaScript tests a new top level directory seemed the most sensible.
2458
2459         * tests/: Deleted.