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