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