1 2016-10-17 Yusuke Suzuki <utatane.tea@gmail.com>
3 [DOMJIT] Use DOMJIT::Patchpoint in IC
4 https://bugs.webkit.org/show_bug.cgi?id=163223
6 Reviewed by Saam Barati.
8 * stress/domjit-exception-ic.js: Added.
11 * stress/domjit-exception.js: Added.
14 * stress/domjit-getter-complex-with-incorrect-object.js: Added.
18 * stress/domjit-getter-complex.js: Added.
21 * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
26 2016-10-15 Saam Barati <sbarati@apple.com>
28 Assertion failed under operationToLowerCase with a rope with zero length
29 https://bugs.webkit.org/show_bug.cgi?id=163314
33 * stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
39 2016-10-14 Benjamin Poulain <bpoulain@apple.com>
41 [JSC] op_negate should with any type
42 https://bugs.webkit.org/show_bug.cgi?id=162587
44 Reviewed by Saam Barati.
46 * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
47 Cover OSR Exits when converting Math.abs() into ArithNegate.
49 * stress/arith-negate-on-various-types.js: Added.
50 Cover ArithNegate with all types.
52 2016-10-14 JF Bastien <jfbastien@apple.com>
54 Basic WebAssembly testing
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
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.
61 Details and example in README.md.
63 Basic WebAssembly testing
64 https://bugs.webkit.org/show_bug.cgi?id=163267
66 Reviewed by Keith Miller.
68 * stress/wasm/wasm.json: Removed.
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):
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):
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):
125 (CustomSectionAllBytes):
126 (CustomSectionInvalidByte):
129 (CodeSectionWithEmptyFunction):
130 (CodeSectionWithEmptyFunctionWithParameters):
131 (InvalidFunctionParameters):
133 (TwoSimpleFunctions):
134 (TwoBuildersAtTheSameTime):
135 (CheckedOpcodeArgumentsTooMany):
136 (CheckedOpcodeArgumentsNotEnough):
145 (OpcodeUnreachableCombinations):
147 * wasm/self-test/test_BuilderWebAssembly.js: Added.
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.
167 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
169 test262: @isConstructor incorrectly thinks Math.cos is a constructor
170 https://bugs.webkit.org/show_bug.cgi?id=163437
172 Reviewed by Saam Barati.
174 * stress/is-constructor.js: Added.
177 New test to cover the @isConstructor builtin.
182 2016-10-14 Ryan Haddad <ryanhaddad@apple.com>
184 Unreviewed, rolling out r207322.
186 This change caused JSC test failures
190 "Fix Array.prototype.splice ES6 compliance."
191 https://bugs.webkit.org/show_bug.cgi?id=163372
192 http://trac.webkit.org/changeset/207322
194 2016-10-14 Mark Lam <mark.lam@apple.com>
196 JSON.parse should not modify frozen objects.
197 https://bugs.webkit.org/show_bug.cgi?id=163430
199 Reviewed by Saam Barati.
201 * stress/json-parse-on-frozen-object.js: Added.
203 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
205 test262: Failure with RegExp.prototype.compile when pattern is undefined
206 https://bugs.webkit.org/show_bug.cgi?id=163431
208 Reviewed by Yusuke Suzuki.
212 2016-10-13 Joseph Pecoraro <pecoraro@apple.com>
214 Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
215 https://bugs.webkit.org/show_bug.cgi?id=163426
217 Reviewed by Geoffrey Garen.
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.
224 2016-10-13 Mark Lam <mark.lam@apple.com>
226 Fix Array.prototype.splice ES6 compliance.
227 https://bugs.webkit.org/show_bug.cgi?id=163372
229 Reviewed by Geoffrey Garen and Yusuke Suzuki.
231 * stress/array-splice-on-frozen-object.js: Added.
233 2016-10-12 Keith Miller <keith_miller@apple.com>
235 Handle non-function, non-undefined comparator in Array.prototype.sort
236 https://bugs.webkit.org/show_bug.cgi?id=163085
238 Reviewed by Yusuke Suzuki.
240 * ChakraCore/test/Array/array_sort.baseline-jsc:
241 * stress/array-sort-bad-comparator.js: Added.
244 2016-10-12 Mark Lam <mark.lam@apple.com>
246 Array.prototype.slice should not modify frozen objects.
247 https://bugs.webkit.org/show_bug.cgi?id=163338
249 Reviewed by Filip Pizlo.
251 * stress/array-slice-on-frozen-object.js: Added.
253 2016-10-11 Mark Lam <mark.lam@apple.com>
255 Array.prototype.concat should not modify frozen objects.
256 https://bugs.webkit.org/show_bug.cgi?id=163302
258 Reviewed by Filip Pizlo.
260 * stress/array-concat-on-frozen-object.js: Added.
262 2016-10-11 Saam Barati <sbarati@apple.com>
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
267 Reviewed by Filip Pizlo.
269 * microbenchmarks/string-add-constant-folding.js: Added.
275 2016-10-07 Mark Lam <mark.lam@apple.com>
277 Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
278 https://bugs.webkit.org/show_bug.cgi?id=163160
280 Reviewed by Saam Barati.
282 * stress/object-freeze-with-proxy-preventExtensions.js: Added.
283 * stress/object-seal-with-proxy-preventExtensions.js: Added.
285 2016-10-05 Yusuke Suzuki <utatane.tea@gmail.com>
287 [DOMJIT] Add initial CheckDOM and CallDOM implementations
288 https://bugs.webkit.org/show_bug.cgi?id=162941
290 Reviewed by Filip Pizlo.
292 * stress/domjit-getter-poly.js: Added.
295 * stress/domjit-getter-proto.js: Added.
298 * stress/domjit-getter-super-poly.js: Added.
301 * stress/domjit-getter.js: Added.
305 2016-10-04 Saam Barati <sbarati@apple.com>
307 String.prototype.toLowerCase should be a DFG/FTL intrinsic
308 https://bugs.webkit.org/show_bug.cgi?id=162887
310 Reviewed by Filip Pizlo and Yusuke Suzuki.
312 * microbenchmarks/to-lower-case.js: Added.
316 * stress/to-lower-case.js: Added.
320 2016-10-04 JF Bastien <jfbastien@apple.com>
322 WebAssembly: handle a few corner cases
323 https://bugs.webkit.org/show_bug.cgi?id=162884
325 Reviewed by Keith Miller.
327 * stress/wasm/generate-wasmops-header.js:
328 (const.opcodeIterator): max opcode value
330 2016-10-03 JF Bastien <jfbastien@apple.com>
332 Auto-generate WASMOps.h, share with testing JSON file
333 https://bugs.webkit.org/show_bug.cgi?id=162870
335 Reviewed by Keith Miller.
337 * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
338 (const.opcode_iterator):
340 * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
342 2016-10-03 Saam Barati <sbarati@apple.com>
344 MapHash should speculate on the type of its child node
345 https://bugs.webkit.org/show_bug.cgi?id=161922
347 Reviewed by Filip Pizlo.
349 * microbenchmarks/map-key-well-typed.js: Added.
361 2016-10-03 Yusuke Suzuki <utatane.tea@gmail.com>
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
366 Reviewed by Geoffrey Garen.
370 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
372 [ES6] Align attributes of Generator related properties to spec
373 https://bugs.webkit.org/show_bug.cgi?id=162839
375 Reviewed by Saam Barati.
379 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
381 [ES6] GeneratorFunction constructor should instantiate generator function
382 https://bugs.webkit.org/show_bug.cgi?id=162838
384 Reviewed by Saam Barati.
386 * stress/generator-function-constructor-is-subclassible.js: Added.
390 * stress/generator-function-constructor.js:
393 2016-09-30 Saam Barati <sbarati@apple.com>
395 Arrow functions should not allow duplicate parameter names
396 https://bugs.webkit.org/show_bug.cgi?id=162741
398 Reviewed by Filip Pizlo.
402 2016-09-30 Saam Barati <sbarati@apple.com>
404 Make some microbenchmarks run for less time.
406 Rubber stamped by Filip Pizlo.
408 * microbenchmarks/bound-function-construction-performance.js:
410 * microbenchmarks/getter-richards-try-catch.js:
412 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
414 Arrow functions do not infer name from computed property but normal functions do
415 https://bugs.webkit.org/show_bug.cgi?id=162720
417 Reviewed by Saam Barati.
419 * stress/inferred-names.js:
421 2016-09-29 Mark Lam <mark.lam@apple.com>
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
426 Reviewed by Keith Miller.
428 The following tests have shown to be slow running:
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
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.
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.
484 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
486 test262: class and function names should be inferred in assignment
487 https://bugs.webkit.org/show_bug.cgi?id=146262
489 Reviewed by Saam Barati.
491 * stress/arrowfunction-name.js: Added.
492 Quick tests for arrow function names.
494 * stress/inferred-names.js: Added.
495 General test for inferred function names.
498 Pass many tests checking inferred function names.
500 2016-09-29 Saam Barati <sbarati@apple.com>
502 We don't properly propagate non-simple-parameter-list when parsing a setter
503 https://bugs.webkit.org/show_bug.cgi?id=160483
505 Reviewed by Joseph Pecoraro.
509 2016-09-28 Saam Barati <sbarati@apple.com>
511 stringProtoFuncRepeatCharacter will return `null` when it should not
512 https://bugs.webkit.org/show_bug.cgi?id=161944
514 Reviewed by Yusuke Suzuki.
516 * stress/pad-start-calls-repeat-character-with-double.js: Added.
517 (logLinesWithContext):
519 2016-09-27 Filip Pizlo <fpizlo@apple.com>
521 B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
522 https://bugs.webkit.org/show_bug.cgi?id=162644
524 Reviewed by Keith Miller.
526 * stress/chill-mod-chill-mod.js: Added.
529 2016-09-26 Csaba Osztrogonác <oszi@inf.u-szeged.hu>
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
534 Unreviewed, relanding r206317 after typo fix.
536 * stress/string-joining-long-strings-should-not-crash.js:
538 2016-09-24 Caitlin Potter <caitp@igalia.com>
540 [JSTests] fix test262 expectations following r206333
541 https://bugs.webkit.org/show_bug.cgi?id=162533
543 Reviewed by Yusuke Suzuki.
547 2016-09-23 Caitlin Potter <caitp@igalia.com>
549 [JSC] Implement parsing of Async Functions
550 https://bugs.webkit.org/show_bug.cgi?id=161409
552 Reviewed by Yusuke Suzuki.
554 * stress/async-await-syntax.js: Added.
557 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
558 (testTopLevelAsyncAwaitSyntaxSloppyMode):
559 (testTopLevelAsyncAwaitSyntaxStrictMode):
560 (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
561 (testNestedAsyncAwaitSyntax.async):
562 (testNestedAsyncAwaitSyntax.foo):
563 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
565 2016-09-23 Ryan Haddad <ryanhaddad@apple.com>
567 Unreviewed, rolling out r206317.
569 This change caused timeouts on El Capitan Release JSC tests
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
578 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
580 Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
581 https://bugs.webkit.org/show_bug.cgi?id=162381
583 Reviewed by Mark Lam.
585 * mozilla/mozilla-tests.yaml:
587 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
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
592 Reviewed by Mark Lam.
594 * stress/string-joining-long-strings-should-not-crash.js:
596 2016-09-22 Benjamin Poulain <bpoulain@apple.com>
598 [JSC] Use an inline cache to generate op_negate
599 https://bugs.webkit.org/show_bug.cgi?id=162371
601 Reviewed by Saam Barati.
603 * stress/op-negate-inline-cache.js: Added.
605 2016-09-22 Mark Lam <mark.lam@apple.com>
607 Array.prototype.join should do overflow checks on string joins.
608 https://bugs.webkit.org/show_bug.cgi?id=162459
610 Reviewed by Saam Barati.
612 * stress/array-join-on-strings-need-overflow-checks.js: Added.
616 2016-09-22 Joseph Pecoraro <pecoraro@apple.com>
618 test262: Function length should be number of parameters before parameters with default values
619 https://bugs.webkit.org/show_bug.cgi?id=162377
621 Reviewed by Saam Barati.
623 * stress/es6-default-parameters.js:
624 Add our own tests for function lengths with default parameters.
627 We now pass all dflt-length tests.
629 2016-09-20 Benjamin Poulain <bpoulain@apple.com>
631 [JSC] Do not use EagerRun on tests counting recompilation
632 https://bugs.webkit.org/show_bug.cgi?id=162248
634 Reviewed by Geoffrey Garen.
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.
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:
654 * stress/compare-strict-eq-on-various-types.js:
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.
660 2016-09-20 Filip Pizlo <fpizlo@apple.com>
662 Make MarkedBlock state tracking support overlapped allocation and marking state
663 https://bugs.webkit.org/show_bug.cgi?id=161581
665 Reviewed by Geoffrey Garen.
667 Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
669 * microbenchmarks/switching-size-classes.js: Added.
671 2016-09-20 Saam Barati <sbarati@apple.com>
673 Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
675 * stress/has-own-property-called-on-non-object.js: Added.
680 2016-09-20 Yusuke Suzuki <utatane.tea@gmail.com>
682 [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
683 https://bugs.webkit.org/show_bug.cgi?id=162253
685 Reviewed by Sam Weinig.
687 * microbenchmarks/is-symbol-mixed.js: Added.
689 (i.let.pair.of.list.String):
690 * microbenchmarks/is-symbol.js: Added.
693 2016-09-19 Saam Barati <sbarati@apple.com>
695 Make HasOwnProperty faster
696 https://bugs.webkit.org/show_bug.cgi?id=161708
698 Reviewed by Geoffrey Garen.
700 * microbenchmarks/has-own-property-name-cache.js: Added.
702 * stress/has-own-property-cache-basics.js: Added.
705 * stress/has-own-property-name-cache-string-keys.js: Added.
708 * stress/has-own-property-name-cache-symbol-keys.js: Added.
711 * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
715 2016-09-19 Benjamin Poulain <bpoulain@apple.com>
717 [JSC] Make the rounding-related nodes support any type
718 https://bugs.webkit.org/show_bug.cgi?id=161895
720 Reviewed by Geoffrey Garen.
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.
727 2016-09-18 Yusuke Suzuki <utatane.tea@gmail.com>
729 [JSC] Do not need to use defineProperty to define methods for object literals
730 https://bugs.webkit.org/show_bug.cgi?id=162111
732 Reviewed by Saam Barati.
734 * stress/object-literal-methods.js: Added.
736 (throw.new.Error.let.object.get name):
738 (shouldBe.let.object.get name):
739 (shouldBe.let.object.get prototype):
740 (shouldBe.let.object.get 42):
742 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
744 [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
745 https://bugs.webkit.org/show_bug.cgi?id=162000
747 Reviewed by Filip Pizlo.
749 * microbenchmarks/is-array-for-array.js: Added.
751 * microbenchmarks/is-array-for-mixed-case.js: Added.
753 * microbenchmarks/is-array-for-non-array-object.js: Added.
755 * microbenchmarks/is-array-for-proxy.js: Added.
757 (isArray.proxy.throw.new.Error.isArray):
758 (isArray.proxy.throw.new.Error):
760 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
762 Unreviewed, gardening test262 results
764 Some tests are now passed with JSC, but marked as failed.
768 2016-09-16 Joseph Pecoraro <pecoraro@apple.com>
770 test262: Various Constructors length properties should be configurable
771 https://bugs.webkit.org/show_bug.cgi?id=161998
773 Reviewed by Saam Barati.
777 2016-09-15 Commit Queue <commit-queue@webkit.org>
779 Unreviewed, rolling out r205931.
780 https://bugs.webkit.org/show_bug.cgi?id=162021
782 Tests for this change fail on 32-bit JSC bots (Requested by
783 ryanhaddad on #webkit).
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
791 2016-09-15 Joseph Pecoraro <pecoraro@apple.com>
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
796 Reviewed by Saam Barati.
798 * stress/es6-default-parameters.js:
801 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
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
806 Reviewed by Saam Barati.
808 * stress/spread-calling.js:
811 2016-09-14 Michael Saboff <msaboff@apple.com>
813 YARR doesn't check for invalid flags for literal regular expressions
814 https://bugs.webkit.org/show_bug.cgi?id=161995
816 Reviewed by Mark Lam.
820 * stress/regress-161995.js: Added.
824 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
826 test262: TypedArray constructors length should be 3 and configurable
827 https://bugs.webkit.org/show_bug.cgi?id=161955
829 Reviewed by Mark Lam.
833 2016-09-14 Benjamin Poulain <bpoulain@apple.com>
835 [JSC] Make the rounding-related nodes support any type
836 https://bugs.webkit.org/show_bug.cgi?id=161895
838 Reviewed by Geoffrey Garen.
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.
845 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
847 TaggedTemplateString function calls should emit tail position calls
848 https://bugs.webkit.org/show_bug.cgi?id=161948
850 Reviewed by Yusuke Suzuki.
852 * stress/tail-call-recognize.js:
854 Ensure a tagged template string function call is tail call.
859 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
861 test262: Array.prototype.slice should always set length
862 https://bugs.webkit.org/show_bug.cgi?id=161953
864 Reviewed by Mark Lam.
868 2016-09-13 JF Bastien <jfbastien@apple.com>
870 Support jsc shell builtin `read`
871 https://bugs.webkit.org/show_bug.cgi?id=161662
873 Reviewed by Keith Miller.
875 * stress/jsc-read.js: Added.
876 (test): test `read` and `readFile` shell builtins, in string and binary mode.
878 2016-09-12 Skachkov Oleksandr <gskachkov@gmail.com>
880 ES6: Classes: Should be allowed to create a static method with name "arguments"
881 https://bugs.webkit.org/show_bug.cgi?id=152985
883 Reviewed by Keith Miller.
887 2016-09-12 Saam Barati <sbarati@apple.com>
889 Speed up Function.prototype.bind a bit by making it a builtin
890 https://bugs.webkit.org/show_bug.cgi?id=161879
892 Reviewed by Filip Pizlo.
894 * microbenchmarks/function-bind-inlining.js: Added.
899 * microbenchmarks/function-bind-no-inlining.js: Added.
905 2016-09-12 Saam Barati <sbarati@apple.com>
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
910 Reviewed by Geoffrey Garen.
912 * microbenchmarks/map-rehash.js: Added.
913 * stress/map-delete.js: Added.
915 * stress/map-rehash-2.js: Added.
917 * stress/map-rehash.js: Added.
920 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
922 Unreviewed, fix tests for different libm environments
923 https://bugs.webkit.org/show_bug.cgi?id=161857
925 * stress/ftl-arithtan.js:
927 2016-09-12 Benjamin Poulain <bpoulain@apple.com>
929 [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
930 https://bugs.webkit.org/show_bug.cgi?id=161671
932 Reviewed by Geoffrey Garen.
934 * stress/get-array-length-on-undecided.js: Added.
936 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
938 [DFG][FTL] Add ArithTan
939 https://bugs.webkit.org/show_bug.cgi?id=161857
941 Reviewed by Filip Pizlo.
943 * microbenchmarks/tan.js: Added.
944 * stress/arith-tan-on-various-types.js: Added.
945 (let.validInputTypedTestCases.validInputTestCases.map):
947 (opaqueTanNoArgument):
951 (testTangleTypeCall):
953 (opaqueTanForSideEffects):
954 (testSideEffect.let.testObject.valueOf):
957 (testCSE.let.testObject.valueOf):
960 (testDCE.let.testObject.valueOf):
962 (testException.opaqueTanWithException):
964 * stress/ftl-arithtan.js: Added.
967 2016-09-12 Saam Barati <sbarati@apple.com>
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
972 Reviewed by Filip Pizlo.
974 * microbenchmarks/map-constant-key.js: Added.
979 2016-09-12 Michael Saboff <msaboff@apple.com>
981 JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
982 https://bugs.webkit.org/show_bug.cgi?id=161863
984 Reviewed by Saam Barati.
987 Disabled Bugs/bug56026_trycatch.js.
989 2016-09-09 Michael Saboff <msaboff@apple.com>
991 Unreviewed, rolling r205759 back in with a fix.
993 The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
994 should be named "toString.baseline-jsc".
996 * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
997 * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
999 2016-09-09 Michael Saboff <msaboff@apple.com>
1001 Disable three flakey Chakra Tests
1002 https://bugs.webkit.org/show_bug.cgi?id=161807
1004 Reviewed by Saam Barati.
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
1011 2016-09-08 Saam Barati <sbarati@apple.com>
1013 We should inline operationConvertJSValueToBoolean into JIT code
1014 https://bugs.webkit.org/show_bug.cgi?id=161729
1016 Reviewed by Filip Pizlo.
1018 * stress/value-to-boolean.js: Added.
1024 2016-09-08 Mark Lam <mark.lam@apple.com>
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
1029 Reviewed by Saam Barati.
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
1035 * stress/rest-parameter-many-arguments.js:
1037 2016-09-08 JF Bastien <jfbastien@apple.com>
1039 Delete older WebAssembly tests
1040 https://bugs.webkit.org/show_bug.cgi?id=161758
1042 Reviewed by Filip Pizlo.
1044 They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
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.
1069 2016-09-08 Per Arne Vollan <pvollan@apple.com>
1071 [Win] Exception fuzz tests fail
1072 https://bugs.webkit.org/show_bug.cgi?id=140928
1074 Reviewed by Mark Lam.
1078 * exceptionFuzz.yaml:
1080 2016-09-06 Saam Barati <sbarati@apple.com>
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
1085 Reviewed by Benjamin Poulain.
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.
1093 2016-09-06 Saam Barati <sbarati@apple.com>
1095 Make JSMap and JSSet faster
1096 https://bugs.webkit.org/show_bug.cgi?id=160989
1098 Reviewed by Filip Pizlo.
1100 * microbenchmarks/dense-set.js: Added.
1102 * microbenchmarks/large-map-iteration-with-additions.js: Added.
1105 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
1108 * microbenchmarks/large-map-iteration.js: Added.
1111 * microbenchmarks/map-get-get-cse.js: Added.
1114 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
1117 * microbenchmarks/sparse-set.js: Added.
1119 * stress/map-cse-correctness.js: Added.
1124 * stress/map-iteration.js: Added.
1145 2016-09-06 Benjamin Poulain <bpoulain@apple.com>
1147 [JSC] Make ArithClz32 work with Cell arguments
1148 https://bugs.webkit.org/show_bug.cgi?id=161369
1150 Reviewed by Geoffrey Garen.
1152 * stress/arith-clz32-on-various-types.js: Added.
1154 2016-09-06 Commit Queue <commit-queue@webkit.org>
1156 Unreviewed, rolling out r205504.
1157 https://bugs.webkit.org/show_bug.cgi?id=161645
1159 Broke the iOS device build (Requested by ryanhaddad on
1164 "Make JSMap and JSSet faster"
1165 https://bugs.webkit.org/show_bug.cgi?id=160989
1166 http://trac.webkit.org/changeset/205504
1168 2016-09-06 Saam Barati <sbarati@apple.com>
1170 Make JSMap and JSSet faster
1171 https://bugs.webkit.org/show_bug.cgi?id=160989
1173 Reviewed by Filip Pizlo.
1175 * microbenchmarks/dense-set.js: Added.
1177 * microbenchmarks/large-map-iteration-with-additions.js: Added.
1180 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
1183 * microbenchmarks/large-map-iteration.js: Added.
1186 * microbenchmarks/map-get-get-cse.js: Added.
1189 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
1192 * microbenchmarks/sparse-set.js: Added.
1194 * stress/map-cse-correctness.js: Added.
1199 * stress/map-iteration.js: Added.
1220 2016-08-31 Filip Pizlo <fpizlo@apple.com>
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
1225 Reviewed by Geoffrey Garen and Keith Miller.
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.
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.
1235 2016-09-02 Michael Saboff <msaboff@apple.com>
1237 Unreviewed fix after importing Chakra test
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.
1244 2016-09-01 Michael Saboff <msaboff@apple.com>
1246 Import Chakra tests to JSC
1247 https://bugs.webkit.org/show_bug.cgi?id=154697
1249 Reviewed by Saam Barati.
1251 Added Chakra tests. All these tests are under Chakra/test. This is the same layout
1252 for tests in the Chakra tree.
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.
1263 The only modification to the test infrastrucutre are:
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.
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
1277 3) Stripped the CR's from the CR-LF line terminations of the files.
1279 No actual test .js files were modified.
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.
1289 2016-09-01 JF Bastien <jfbastien@apple.com>
1291 GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
1292 https://bugs.webkit.org/show_bug.cgi?id=160922
1294 Reviewed by Keith Miller.
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.
1300 * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
1302 (A.prototype.set value):
1303 (A.prototype.get value):
1304 (B.prototype.set value):
1305 (B.prototype.get value):
1308 * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
1310 (A.prototype.set value):
1311 (A.prototype.get value):
1312 (B.prototype.set value):
1313 (B.prototype.get value):
1316 * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
1319 (A.prototype.set v):
1320 (A.prototype.get v):
1321 (B.prototype.set v):
1322 (B.prototype.get v):
1325 * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
1328 (A.prototype.set v):
1329 (A.prototype.get v):
1330 (B.prototype.set v):
1331 (B.prototype.get v):
1335 2016-09-01 Benjamin Poulain <bpoulain@apple.com>
1337 arith-abs-on-various-types.js is flaky
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.
1345 2016-09-01 Filip Pizlo <fpizlo@apple.com>
1347 ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
1348 https://bugs.webkit.org/show_bug.cgi?id=161492
1350 Reviewed by Mark Lam.
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.
1356 * stress/materialize-activation-referenced-from-phantom-function.js: Added.
1362 * stress/materialize-object-referenced-from-phantom-object.js: Added.
1367 2016-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
1369 stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
1370 https://bugs.webkit.org/show_bug.cgi?id=161436
1372 Reviewed by Filip Pizlo.
1374 The test checks Math.random() correctly produces 53bit random values.
1375 The test can fail by design, but this should be fairly rare.
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.
1380 And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
1381 and reproduce the situation easily.
1383 * stress/random-53bit.js:
1386 2016-08-29 Benjamin Poulain <bpoulain@apple.com>
1388 [JSC] Improve ArithAbs with polymorphic input
1389 https://bugs.webkit.org/show_bug.cgi?id=161286
1391 Reviewed by Saam Barati.
1393 * stress/arith-abs-on-various-types.js: Added.
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.
1403 2016-08-26 Benjamin Poulain <benjamin@webkit.org>
1405 [JSC] Implement CompareStrictEq(String, Untyped) in FTL
1406 https://bugs.webkit.org/show_bug.cgi?id=161229
1408 Reviewed by Geoffrey Garen.
1410 * stress/compare-strict-eq-on-various-types.js: Added.
1412 2016-08-26 Yusuke Suzuki <utatane.tea@gmail.com>
1414 [ES6] newPromiseCapabilities should check the given argument is constructor
1415 https://bugs.webkit.org/show_bug.cgi?id=161226
1417 Reviewed by Mark Lam.
1419 The arrow function should not be a constructor. So the error should be raised.
1421 * stress/new-promise-capabilities-requires-constructor.js: Added.
1424 2016-08-25 Benjamin Poulain <bpoulain@apple.com>
1426 [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
1427 https://bugs.webkit.org/show_bug.cgi?id=161181
1429 Reviewed by Geoffrey Garen.
1431 Extend the tests to constants.
1432 Add no-argument cases where needed.
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:
1440 2016-08-25 Yusuke Suzuki <utatane.tea@gmail.com>
1442 [DFG][FTL] Implement ES6 Generators in DFG / FTL
1443 https://bugs.webkit.org/show_bug.cgi?id=152723
1445 Reviewed by Filip Pizlo.
1447 * stress/generator-fib-ftl-and-array.js: Added.
1449 * stress/generator-fib-ftl-and-object.js: Added.
1451 * stress/generator-fib-ftl-and-string.js: Added.
1453 * stress/generator-fib-ftl.js: Added.
1455 * stress/generator-frame-empty.js: Added.
1458 * stress/generator-reduced-save-point-put-to-scope.js: Added.
1461 * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
1465 2016-08-25 JF Bastien <jfbastien@apple.com>
1467 TryGetById should have a ValueProfile so that it can predict its output type
1468 https://bugs.webkit.org/show_bug.cgi?id=160921
1470 Reviewed by Saam Barati.
1472 * microbenchmarks/try-get-by-id-basic.js: Added.
1474 (const.bench.f.const.fooPlusBar.createBuiltin):
1475 * microbenchmarks/try-get-by-id-polymorphic.js: Added.
1477 (fooPlusBar.createBuiltin):
1480 2016-08-25 Caio Lima <ticaiolima@gmail.com>
1482 NewRegexp should not prevent inlining
1483 https://bugs.webkit.org/show_bug.cgi?id=154808
1485 Reviewed by Geoffrey Garen.
1487 Added test where functions with NewRegExp can be inlined right now.
1489 * stress/new-regex-inline.js: Added.
1494 (inlineRegexpNotGlobal):
1495 (toInlineRecursive):
1496 (regexpContainsRecursive):
1498 2016-08-24 Benjamin Poulain <benjamin@webkit.org>
1500 [JSC] Make FRound work with any type
1501 https://bugs.webkit.org/show_bug.cgi?id=161129
1503 Reviewed by Geoffrey Garen.
1505 * stress/arith-fround-on-various-types.js: Added.
1507 2016-08-24 Filip Pizlo <fpizlo@apple.com>
1509 Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
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.
1516 2016-08-24 Skachkov Oleksandr <gskachkov@gmail.com>
1518 [ES2016] Allow assignment in for-in head in not-strict mode
1519 https://bugs.webkit.org/show_bug.cgi?id=160955
1521 Reviewed by Saam Barati.
1523 * stress/for-in-tests.js:
1528 2016-08-23 Benjamin Poulain <benjamin@webkit.org>
1530 [JSC] Make ArithLog works with any type
1531 https://bugs.webkit.org/show_bug.cgi?id=161110
1533 Reviewed by Geoffrey Garen.
1535 * stress/arith-log-on-various-types.js: Added.
1537 2016-08-23 Saam Barati <sbarati@apple.com>
1539 JSC should have a "microbenchmarks" directory instead of "regress" directory
1540 https://bugs.webkit.org/show_bug.cgi?id=161096
1542 Rubber stamped by Mark Lam.
1544 * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
1546 2016-08-23 Keith Miller <keith_miller@apple.com>
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>
1552 Reviewed by Geoffrey Garen.
1554 * stress/typedarray-slice.js:
1557 (testSpeciesWithTransferring):
1559 2016-08-22 Filip Pizlo <fpizlo@apple.com>
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
1564 Reviewed by Geoffrey Garen.
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.
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.
1574 2016-08-23 Keith Miller <keith_miller@apple.com>
1576 Update/add new test262 tests
1577 https://bugs.webkit.org/show_bug.cgi?id=161098
1579 Reviewed by Saam Barati.
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.
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.
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.
1612 * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
1614 * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
1618 * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
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.
1671 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
1673 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
1675 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
1677 * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
1679 * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
1681 * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
1683 * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
1685 (let.g.async.string_appeared_here):
1686 * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
1688 * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
1690 * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
1691 (uncoercible.valueOf):
1693 * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
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.
1698 * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
1700 * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
1702 * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
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.
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):
1728 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
1730 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
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.
1738 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
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.
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.
1748 * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
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.
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.
1760 * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
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.
1766 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
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.
1775 * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
1776 (__re.hasOwnProperty): 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.
1781 * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
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.
1788 * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
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.
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.
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.
1821 (compareFTPtoFormat):
1822 * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
1823 * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
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:
1830 * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
1832 * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
1834 * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
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.
1838 * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
1840 * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
1842 * test262/test/language/eval-code/direct/super-call-fn.js: Added.
1844 * test262/test/language/eval-code/direct/super-call.js: Added.
1846 * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
1848 * test262/test/language/eval-code/direct/super-prop-method.js: Added.
1850 * test262/test/language/eval-code/direct/super-prop.js: Added.
1852 * test262/test/language/eval-code/indirect/super-call.js: Added.
1855 * test262/test/language/eval-code/indirect/super-prop.js: Added.
1858 * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
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.
1863 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
1865 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
1867 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
1869 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
1871 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
1873 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
1875 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
1877 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
1879 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
1881 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
1883 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
1885 * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
1887 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
1889 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
1891 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
1893 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
1895 * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
1897 * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
1899 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
1901 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
1903 * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
1905 * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
1907 * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
1909 * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
1911 * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
1914 * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
1916 * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
1919 * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
1922 * test262/test/language/expressions/await/await-in-function.js: Added.
1924 * test262/test/language/expressions/await/await-in-generator.js: Added.
1926 * test262/test/language/expressions/await/await-in-global.js: Added.
1927 * test262/test/language/expressions/await/await-in-nested-function.js: Added.
1930 * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
1933 * test262/test/language/expressions/await/await-throws-rejections.js: Added.
1935 * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
1937 * test262/test/language/expressions/await/no-operand.js: Added.
1939 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
1941 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
1943 * test262/test/language/expressions/call/trailing-comma.js: Added.
1945 * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
1947 * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
1949 * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
1952 * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
1954 * test262/test/language/expressions/function/params-trailing-comma.js: Added.
1955 * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
1957 * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
1959 * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
1962 * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
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.
1968 (child.async.method):
1969 * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
1971 (child.async.method.x.super.method):
1972 * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
1974 * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
1976 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
1978 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
1980 * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
1982 * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
1984 * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
1986 * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
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.
1992 * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
1995 * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
1998 * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
2000 * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
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.
2005 * test262/test/language/global-code/decl-func.js: Added.
2007 * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
2008 * test262/test/language/global-code/decl-lex-deletion.js: Added.
2010 * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
2011 * test262/test/language/global-code/decl-lex.js: Added.
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.
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.
2025 * test262/test/language/global-code/script-decl-lex.js: Added.
2026 * test262/test/language/global-code/script-decl-var-collision.js: Added.
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.
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.
2048 * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
2050 * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
2052 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
2054 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
2056 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
2058 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
2060 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
2062 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
2064 * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
2066 * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
2068 * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
2070 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
2072 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
2074 * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
2076 * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
2079 * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
2082 * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
2085 * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
2088 * test262/test/language/statements/async-function/evaluation-body.js: Added.
2090 * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
2093 * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
2095 * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
2097 * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
2099 * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
2101 * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
2103 * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
2105 * test262/test/language/statements/async-function/syntax-declaration.js: Added.
2108 * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
2109 (Foo.prototype.async.method):
2111 * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
2112 (Foo.prototype.async.bar):
2114 * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
2115 (Foo.prototype.async.foo):
2117 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
2118 (Foo.prototype.async.foo):
2120 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
2121 (Foo.prototype.async.foo):
2123 * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
2124 (Foo.prototype.async.foo):
2126 * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
2127 (Foo.prototype.async.foo):
2129 * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
2130 (Foo.prototype.async.foo):
2132 * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
2135 * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
2136 (Foo.prototype.async.foo):
2138 * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
2139 (A.prototype.async.method):
2141 (B.prototype.async.method):
2143 * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
2144 (A.prototype.async.method):
2146 (B.prototype.async.method):
2148 * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
2152 * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
2156 * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
2159 * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
2163 * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
2165 * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
2167 * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
2170 * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
2173 * test262/test/language/statements/function/params-trailing-comma.js: Added.
2176 * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
2178 * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
2180 * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
2183 * test262/test/language/statements/generators/params-trailing-comma.js: Added.
2186 * test262/test262-Revision.txt:
2188 2016-08-23 Benjamin Poulain <bpoulain@apple.com>
2190 [JSC] Make Math.cos() and Math.sin() work with any argument type
2191 https://bugs.webkit.org/show_bug.cgi?id=161069
2193 Reviewed by Geoffrey Garen.
2195 * stress/arith-cos-on-various-types.js: Added.
2196 * stress/arith-sin-on-various-types.js: Added.
2198 2016-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
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
2203 Reviewed by Keith Miller.
2207 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
2209 [ES6] Modules' `export default function/class` should be declaration
2210 https://bugs.webkit.org/show_bug.cgi?id=160499
2212 Reviewed by Saam Barati.
2214 Add several module tests. And flip the failed tests flags in test262.
2216 * modules/export-default-function-name-in-assignment-expression.js: Added.
2218 * modules/export-default-function-name-in-class-declaration.js: Added.
2219 * modules/export-default-function-name-in-function-declaration.js: Added.
2221 * modules/export-default-function-name-in-generator-declaration.js: Added.
2223 * stress/method-name.js: Added.
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):
2233 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
2235 [ES6] Module should not allow HTML comments
2236 https://bugs.webkit.org/show_bug.cgi?id=161041
2238 Reviewed by Saam Barati.
2240 * modules/html-comments.js: Added.
2244 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2246 [DFG] Should not fixup AnyIntUse in 32_64
2247 https://bugs.webkit.org/show_bug.cgi?id=161029
2249 Reviewed by Saam Barati.
2251 * typeProfiler/int52-dfg.js: Added.
2254 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2256 Unreviewed, rolling out r204697
2257 https://bugs.webkit.org/show_bug.cgi?id=161029
2259 * typeProfiler/int52-dfg.js: Removed.
2261 * typeProfiler/number-filter-dfg.js: Removed.
2264 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2266 [DFG] Should not fixup AnyIntUse in 32_64
2267 https://bugs.webkit.org/show_bug.cgi?id=161029
2269 Reviewed by Saam Barati.
2271 * typeProfiler/int52-dfg.js: Added.
2273 * typeProfiler/number-filter-dfg.js: Added.
2276 2016-08-19 Benjamin Poulain <bpoulain@apple.com>
2278 [JSC] ArithSqrt should work with any argument type
2279 https://bugs.webkit.org/show_bug.cgi?id=160954
2281 Reviewed by Saam Barati.
2283 * stress/arith-sqrt-on-various-types.js: Added.
2284 (let.validInputTypedTestCases.validInputTestCases.map):
2286 (opaqueAllTypesSqrt):
2288 (testSingleTypeCall):
2289 (opaqueSqrtForSideEffects):
2290 (testSideEffect.let.testObject.valueOf):
2293 (testCSE.let.testObject.valueOf):
2295 (testException.opaqueSqrtWithException):
2298 2016-08-19 Joseph Pecoraro <pecoraro@apple.com>
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>
2304 Reviewed by Saam Barati.
2306 * stress/native-error-properties.js: Added.
2310 (checkEmptyErrorPropertiesDescriptors):
2311 (checkNonEmptyErrorPropertiesDescriptors):
2312 The spec only describes the "message" property, so
2313 ensure it has the right descriptor attributes.
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.
2320 2016-08-18 Mark Lam <mark.lam@apple.com>
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>
2326 Reviewed by Keith Miller.
2328 * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
2330 2016-08-17 JF Bastien <jfbastien@apple.com>
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
2335 Reviewed by Filip Pizlo.
2337 * stress/for-in-of-const.js: Added.
2342 2016-08-17 Mark Lam <mark.lam@apple.com>
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>
2348 Reviewed by Filip Pizlo.
2350 * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
2352 2016-08-16 Ryan Haddad <ryanhaddad@apple.com>
2354 Unreviewed, rolling out r204464.
2356 This is no longer needed after r204495.
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
2364 2016-08-15 Ryan Haddad <ryanhaddad@apple.com>
2366 Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
2367 https://bugs.webkit.org/show_bug.cgi?id=160662
2369 Unreviewed test gardening.
2371 * mozilla/ecma/LexicalConventions/7.7.3.js:
2373 2016-08-14 Skachkov Oleksandr <gskachkov@gmail.com>
2375 [2016] Set correct status for test262 after implementation of Object.values&Object.entries
2376 https://bugs.webkit.org/show_bug.cgi?id=160844
2378 Reviewed by Saam Barati.
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.
2384 * stress/object-entries.js:
2385 (Object.getOwnPropertyDescriptor):
2386 * stress/object-values.js:
2387 (Object.getOwnPropertyDescriptor):
2390 2016-08-12 Saam Barati <sbarati@apple.com>
2392 Inline store loop for CopyRest in DFG and FTL for certain array modes
2393 https://bugs.webkit.org/show_bug.cgi?id=159612
2395 Reviewed by Filip Pizlo.
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.
2401 2016-08-12 Skachkov Oleksandr <gskachkov@gmail.com>
2403 [ES2016] Implement Object.entries
2404 https://bugs.webkit.org/show_bug.cgi?id=160412
2406 Reviewed by Saam Barati.
2408 Patch contains tests for Object.entries function and
2409 fix of wrong tests for Object.values function.
2411 * stress/object-entries.js:
2413 (string_appeared_here.forEach):
2414 (const.getInvokedFunctions.):
2415 (const.getInvokedFunctions):
2416 (Array.prototype.push):
2417 * stress/object-values.js:
2419 2016-08-11 Mark Lam <mark.lam@apple.com>
2421 OverridesHasInstance should not branch across register allocations.
2422 https://bugs.webkit.org/show_bug.cgi?id=160792
2423 <rdar://problem/27361778>
2425 Reviewed by Benjamin Poulain.
2427 * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
2429 2016-08-11 Mark Lam <mark.lam@apple.com>
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>
2435 Reviewed by Saam Barati.
2437 * stress/generational-opaque-roots.js:
2439 2016-08-11 Mark Lam <mark.lam@apple.com>
2441 Disallow synchronous sweeping for eden GCs.
2442 https://bugs.webkit.org/show_bug.cgi?id=160716
2444 Reviewed by Geoffrey Garen.
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.
2450 2016-08-10 Michael Saboff <msaboff@apple.com>
2452 Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
2453 https://bugs.webkit.org/show_bug.cgi?id=160749
2455 Reviewed by Filip Pizlo.
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.
2461 * stress/regress-160749.js: Added.
2462 (testCachedGetByVal.):
2463 (testCachedGetByVal.get for):
2464 (testCachedGetByVal):
2465 (testCachedPutByVal.):
2466 (testCachedPutByVal.set for):
2467 (testCachedPutByVal):
2469 2016-08-10 Mark Lam <mark.lam@apple.com>
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>
2475 Reviewed by Filip Pizlo.
2477 * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
2479 2016-08-09 Skachkov Oleksandr <gskachkov@gmail.com>
2481 [ES2016] Implement Object.values
2482 https://bugs.webkit.org/show_bug.cgi?id=160410
2484 Reviewed by Saam Barati, Yusuke Suzuki.
2486 * stress/object-values.js: Added.
2488 (string_appeared_here.forEach):
2489 (const.getInvokedFunctions.):
2490 (const.getInvokedFunctions):
2491 (Array.prototype.push):
2493 2016-08-09 Saam Barati <sbarati@apple.com>
2495 JSBoundFunction should lazily generate its name string
2496 https://bugs.webkit.org/show_bug.cgi?id=160678
2497 <rdar://problem/27043194>
2499 Reviewed by Mark Lam.
2501 * stress/bound-function-lazy-name-generation.js: Added.
2507 2016-08-08 Mark Lam <mark.lam@apple.com>
2509 ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
2510 https://bugs.webkit.org/show_bug.cgi?id=160666
2512 Reviewed by Keith Miller.
2514 * stress/object-constructor-should-be-new-target-aware.js:
2516 2016-08-07 Yusuke Suzuki <utatane.tea@gmail.com>
2518 [ES6] Module namespace object should not allow unset IC
2519 https://bugs.webkit.org/show_bug.cgi?id=160553
2521 Reviewed by Saam Barati.
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):
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.
2538 2016-08-05 Saam Barati <sbarati@apple.com>
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
2543 Reviewed by Mark Lam.
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):
2552 (test2.runTest.get f):
2556 2016-08-05 Saam Barati <sbarati@apple.com>
2558 Assertion failure when accessing TDZ variable in catch through eval
2559 https://bugs.webkit.org/show_bug.cgi?id=160554
2561 Reviewed by Mark Lam and Keith Miller.
2563 * stress/catch-variables-under-tdz.js: Added.
2566 2016-08-04 Yusuke Suzuki <utatane.tea@gmail.com>
2568 [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
2569 https://bugs.webkit.org/show_bug.cgi?id=160549
2571 Reviewed by Saam Barati.
2573 * modules/namespace-object-symbol-iterator-name.js: Added.
2576 2016-08-04 Keith Miller <keith_miller@apple.com>
2578 ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
2579 https://bugs.webkit.org/show_bug.cgi?id=160562
2581 Reviewed by Mark Lam.
2583 * stress/instanceof-late-constant-folding.js: Added.
2588 2016-08-04 Caitlin Potter <caitp@igalia.com>
2590 [JSC] fix generator-syntax.js JSTest again after yield grammar fix
2591 https://bugs.webkit.org/show_bug.cgi?id=160550
2593 Reviewed by Yusuke Suzuki.
2595 * stress/generator-syntax.js:
2596 (testYieldBindingIdentifier):
2598 2016-08-03 Caitlin Potter <caitp@igalia.com>
2600 Clarify SyntaxErrors around yield and unskip tests
2601 https://bugs.webkit.org/show_bug.cgi?id=158460
2603 Reviewed by Saam Barati.
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.
2609 * stress/generator-syntax.js:
2610 * stress/yield-out-of-generator.js:
2612 2016-08-03 Filip Pizlo <fpizlo@apple.com>
2614 REGRESSION(r203368): broke some test262 tests
2615 https://bugs.webkit.org/show_bug.cgi?id=160479
2617 Reviewed by Mark Lam.
2619 Added a stress test for this case, since we don't always run test262.
2621 * stress/freeze-setter.js: Added.
2624 2016-08-03 Saam Barati <sbarati@apple.com>
2626 Implement nested rest destructuring w.r.t the ES7 spec
2627 https://bugs.webkit.org/show_bug.cgi?id=160423
2629 Reviewed by Filip Pizlo.
2631 * stress/destructuring-rest-element.js: Added.
2637 (fakeGen.return.Symbol.iterator):
2639 * stress/rest-elements.js:
2640 (testSyntaxError.String.raw):
2641 * stress/rest-parameter-is-destructuring.js: Added.
2648 2016-08-02 Saam Barati <sbarati@apple.com>
2650 Rename Changelog to ChangeLog
2652 Rubber stamped by Keith Miller.
2654 * Changelog: Removed.
2656 2016-08-02 Saam Barati <sbarati@apple.com>
2658 update a class extending null w.r.t the ES7 spec
2659 https://bugs.webkit.org/show_bug.cgi?id=160417
2661 Reviewed by Keith Miller.
2664 * stress/class-derived-from-null.js: Added.
2688 2016-08-01 Filip Pizlo <fpizlo@apple.com>
2690 Rationalize varargs stack overflow checks
2691 https://bugs.webkit.org/show_bug.cgi?id=160425
2693 Reviewed by Michael Saboff.
2695 * stress/arity-check-ftl-throw-more-args.js: Added.
2698 2016-08-01 Keith Miller <keith_miller@apple.com>
2700 We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
2701 https://bugs.webkit.org/show_bug.cgi?id=160372
2703 Rubber stamped by Geoffrey Garen.
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.