1 2016-10-20 Caitlin Potter <caitp@igalia.com>
3 [JSC] disallow references to `await` in AsyncFunction formal parameters
4 https://bugs.webkit.org/show_bug.cgi?id=163694
6 Reviewed by Saam Barati.
8 * stress/async-await-syntax.js:
10 2016-10-20 Keith Miller <keith_miller@apple.com>
12 Invalid assertion in arguments elimination
13 https://bugs.webkit.org/show_bug.cgi?id=163740
14 <rdar://problem/27911462>
16 Reviewed by Michael Saboff.
18 * stress/direct-arguments-osr-entry.js: Added.
22 2016-10-20 Caitlin Potter <caitp@igalia.com>
24 [JSC] throw TypeError when constructing dynamically created JSGeneratorFunction
25 https://bugs.webkit.org/show_bug.cgi?id=163714
29 Add missing test coverage that dynamically created
30 JSGeneratorFunctions can not be constructed.
32 * stress/generator-function-constructor.js:
35 2016-10-19 JF Bastien <jfbastien@apple.com>
37 JavaScript WebAssembly API: baby steps
39 - Expand WebAssembly constructors into their own files. This requires a lot of
40 boilerplate, as well as adding the .lut.h files. All of the
41 JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
42 currently the same between the 4 specified WebAssembly constructors. It'll be
43 easy to implement individual functions on constructed objects as per the
44 spec, and have each of these files diverge. The error constructors are also
45 similar, except that their instance derives from ErrorInstance.
46 - Use constructor macro when initializing the global object.
47 - Dramatically improve testing of the WebAssembly API by checking for
48 properties specified in the spec [*].
49 - Clean up assert.js' exception testing.
50 - Fix a copy-paste bug in wasm.json: floating-point const return values were
53 [*] https://github.com/WebAssembly/design/blob/master/JS.md
55 Implement more of the JavaScript WebAssembly API
56 https://bugs.webkit.org/show_bug.cgi?id=163571
58 Reviewed by Keith Miller.
61 (export.const.isUndef): add this useful helper
62 (export.const.throws): fold other throw checks into this one, and check message as well
63 * wasm/js-api/test_basic_api.js:
64 (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
65 * wasm/self-test/test_BuilderJSON.js:
66 (const.assertOpThrows): use new assert API
67 (CheckedOpcodeArgumentsTooMany): ditto
68 (CheckedOpcodeArgumentsNotEnough): ditto
70 (I32ConstInvalid): ditto
71 (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
72 (F64ConstInvalid): ditto
73 * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
74 * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
75 * wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly).
76 * wasm/wasm.json: fix copy-paste
78 2016-10-19 Caitlin Potter <caitp@igalia.com>
80 [JSC] forbid "use strict" directive in generator functions with non-simple parameters
81 https://bugs.webkit.org/show_bug.cgi?id=163683
83 Reviewed by Geoffrey Garen.
85 Update various generator*-non-simple-param.js tests to be passing.
89 2016-10-18 Mark Lam <mark.lam@apple.com>
91 Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
92 https://bugs.webkit.org/show_bug.cgi?id=154377
93 <rdar://problem/27330808>
95 Reviewed by Filip Pizlo and Saam Barati.
97 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.
99 2016-10-18 Keith Miller <keith_miller@apple.com>
101 GetByVal to GetById conversion in the DFG is incorrect for getters with control flow
102 https://bugs.webkit.org/show_bug.cgi?id=163629
104 Reviewed by Yusuke Suzuki.
106 * stress/get-by-val-to-id-with-getter.js: Added.
110 2016-10-15 Filip Pizlo <fpizlo@apple.com>
112 DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable
113 https://bugs.webkit.org/show_bug.cgi?id=163371
115 Reviewed by Geoffrey Garen and Saam Barati.
117 Add microbenchmarks for all of the cases that this patch optimizes.
119 * microbenchmarks/direct-call-arity-mismatch.js: Added.
122 * microbenchmarks/direct-call.js: Added.
125 * microbenchmarks/direct-construct-arity-mismatch.js: Added.
128 * microbenchmarks/direct-construct.js: Added.
131 * microbenchmarks/direct-tail-call-arity-mismatch.js: Added.
134 * microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added.
138 * microbenchmarks/direct-tail-call-inlined-caller.js: Added.
142 * microbenchmarks/direct-tail-call.js: Added.
146 2016-10-18 Caitlin Potter <caitp@igalia.com>
148 [JSC] ES6 Method functions should not have prototype
149 https://bugs.webkit.org/show_bug.cgi?id=162530
151 Reviewed by Saam Barati.
153 Fix test262 expectations about MethodDefinitions
155 * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
156 * stress/reflect-set.js:
159 2016-10-17 Keith Miller <keith_miller@apple.com>
161 Add support for WASM Memory.
162 https://bugs.webkit.org/show_bug.cgi?id=161710
164 Reviewed by Geoffrey Garen.
166 Add store and load opcodes to wasm.json. Additionally, add new
167 enums for those opcodes in the generator.
169 * stress/wasm/generate-wasmops-header.js:
170 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
171 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):
173 2016-10-17 Saam Barati <sbarati@apple.com>
175 Add more tests for the double->String conversion in ValueAdd constant folding
176 https://bugs.webkit.org/show_bug.cgi?id=163517
178 Reviewed by Yusuke Suzuki.
180 * microbenchmarks/string-add-constant-folding.js:
183 2016-10-17 JF Bastien <jfbastien@apple.com>
185 WebAssembly JS API: implement basic stub
187 Implement the global WebAssembly JavaScript object, and its constructor +
188 function properties as described in:
189 https://github.com/WebAssembly/design/blob/master/JS.md
191 These don't do anything at the moment, the parent bug will take care of adding
192 more functionality and associated tests.
194 WebAssembly JS API: implement basic stub
195 https://bugs.webkit.org/show_bug.cgi?id=163404
197 Reviewed by Keith Miller.
200 * wasm/js-api/test_basic_api.js: Added.
201 (const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
202 (const.c.of.constructorProperties.catch):
204 2016-10-17 Yusuke Suzuki <utatane.tea@gmail.com>
206 [DOMJIT] Use DOMJIT::Patchpoint in IC
207 https://bugs.webkit.org/show_bug.cgi?id=163223
209 Reviewed by Saam Barati.
211 * stress/domjit-exception-ic.js: Added.
214 * stress/domjit-exception.js: Added.
217 * stress/domjit-getter-complex-with-incorrect-object.js: Added.
221 * stress/domjit-getter-complex.js: Added.
224 * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
229 2016-10-15 Saam Barati <sbarati@apple.com>
231 Assertion failed under operationToLowerCase with a rope with zero length
232 https://bugs.webkit.org/show_bug.cgi?id=163314
234 Reviewed by Mark Lam.
236 * stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
242 2016-10-14 Benjamin Poulain <bpoulain@apple.com>
244 [JSC] op_negate should with any type
245 https://bugs.webkit.org/show_bug.cgi?id=162587
247 Reviewed by Saam Barati.
249 * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
250 Cover OSR Exits when converting Math.abs() into ArithNegate.
252 * stress/arith-negate-on-various-types.js: Added.
253 Cover ArithNegate with all types.
255 2016-10-14 JF Bastien <jfbastien@apple.com>
257 Basic WebAssembly testing
259 Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
260 https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
262 This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.
264 Details and example in README.md.
266 Basic WebAssembly testing
267 https://bugs.webkit.org/show_bug.cgi?id=163267
269 Reviewed by Keith Miller.
271 * stress/wasm/wasm.json: Removed.
273 * wasm/Builder.js: Added.
274 (const._isValidValue):
275 (const._BuildWebAssemblyBinary):
276 (export.default.Builder):
277 (export.default.Builder.prototype.setChecked):
278 (export.default.Builder.prototype.setPreamble):
279 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
280 (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
281 (export.default.Builder.prototype._registerSectionBuilders):
282 (export.default.Builder.prototype._addSection):
283 (export.default.Builder.prototype.optimize):
284 (export.default.Builder.prototype.json):
285 (export.default.Builder.prototype.AsmJS):
286 (export.default.Builder.prototype.WebAssembly):
287 * wasm/LowLevelBinary.js: Added.
288 (const._getterRangeCheck):
290 (export.default.LowLevelBinary):
291 (export.default.LowLevelBinary.prototype.newPatchable):
292 (export.default.LowLevelBinary.prototype.hexdump):
293 (export.default.LowLevelBinary.prototype._maybeGrow):
294 (export.default.LowLevelBinary.prototype._push8):
295 (export.default.LowLevelBinary.prototype.uint8):
296 (export.default.LowLevelBinary.prototype.uint16):
297 (export.default.LowLevelBinary.prototype.uint32):
298 (export.default.LowLevelBinary.prototype.varuint):
299 (export.default.LowLevelBinary.prototype.varint):
300 (export.default.LowLevelBinary.prototype.varuint7):
301 (export.default.LowLevelBinary.prototype.string):
302 (export.default.LowLevelBinary.prototype.getSize):
303 (export.default.LowLevelBinary.prototype.getUint8):
304 (export.default.LowLevelBinary.prototype.getUint16):
305 (export.default.LowLevelBinary.prototype.getUint32):
306 (export.default.LowLevelBinary.prototype.getVaruint):
307 (export.default.LowLevelBinary.prototype.getVarint):
308 (export.default.LowLevelBinary.prototype.getVaruint7):
309 (export.default.LowLevelBinary.prototype.getString):
310 (PatchableLowLevelBinary):
311 (PatchableLowLevelBinary.prototype._push8):
312 (PatchableLowLevelBinary.prototype.apply):
313 * wasm/README.md: Added.
314 * wasm/WASM.js: Added.
315 * wasm/assert.js: Added.
316 (export.const.notUndef):
319 (export.const.throwsError):
320 (export.const.throwsRangeError):
321 * wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
322 * wasm/self-test/test_BuilderJSON.js: Added.
323 (const.assertOpThrows):
328 (CustomSectionAllBytes):
329 (CustomSectionInvalidByte):
332 (CodeSectionWithEmptyFunction):
333 (CodeSectionWithEmptyFunctionWithParameters):
334 (InvalidFunctionParameters):
336 (TwoSimpleFunctions):
337 (TwoBuildersAtTheSameTime):
338 (CheckedOpcodeArgumentsTooMany):
339 (CheckedOpcodeArgumentsNotEnough):
348 (OpcodeUnreachableCombinations):
350 * wasm/self-test/test_BuilderWebAssembly.js: Added.
354 * wasm/self-test/test_LowLevelBinary_encode.js: Added.
355 * wasm/self-test/test_LowLevelBinary_string.js: Added.
356 * wasm/self-test/test_LowLevelBinary_uint16.js: Added.
357 * wasm/self-test/test_LowLevelBinary_uint32.js: Added.
358 * wasm/self-test/test_LowLevelBinary_uint8.js: Added.
359 * wasm/self-test/test_LowLevelBinary_varint.js: Added.
360 * wasm/self-test/test_LowLevelBinary_varuint.js: Added.
361 * wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
362 * wasm/self-test/test_WASM.js: Added.
363 * wasm/test.sh: Added.
364 * wasm/utilities.js: Added.
365 (const._read.filename.switch):
366 (const._load.filename.switch):
367 (const._json.filename.switch):
368 * wasm/wasm.json: Added.
370 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
372 test262: @isConstructor incorrectly thinks Math.cos is a constructor
373 https://bugs.webkit.org/show_bug.cgi?id=163437
375 Reviewed by Saam Barati.
377 * stress/is-constructor.js: Added.
380 New test to cover the @isConstructor builtin.
385 2016-10-14 Ryan Haddad <ryanhaddad@apple.com>
387 Unreviewed, rolling out r207322.
389 This change caused JSC test failures
393 "Fix Array.prototype.splice ES6 compliance."
394 https://bugs.webkit.org/show_bug.cgi?id=163372
395 http://trac.webkit.org/changeset/207322
397 2016-10-14 Mark Lam <mark.lam@apple.com>
399 JSON.parse should not modify frozen objects.
400 https://bugs.webkit.org/show_bug.cgi?id=163430
402 Reviewed by Saam Barati.
404 * stress/json-parse-on-frozen-object.js: Added.
406 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
408 test262: Failure with RegExp.prototype.compile when pattern is undefined
409 https://bugs.webkit.org/show_bug.cgi?id=163431
411 Reviewed by Yusuke Suzuki.
415 2016-10-13 Joseph Pecoraro <pecoraro@apple.com>
417 Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
418 https://bugs.webkit.org/show_bug.cgi?id=163426
420 Reviewed by Geoffrey Garen.
422 * ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
423 * ChakraCore/test/Object/null.baseline-jsc:
424 * stress/exception-in-to-property-key-should-be-handled-early.js:
425 Better exception messages.
427 2016-10-13 Mark Lam <mark.lam@apple.com>
429 Fix Array.prototype.splice ES6 compliance.
430 https://bugs.webkit.org/show_bug.cgi?id=163372
432 Reviewed by Geoffrey Garen and Yusuke Suzuki.
434 * stress/array-splice-on-frozen-object.js: Added.
436 2016-10-12 Keith Miller <keith_miller@apple.com>
438 Handle non-function, non-undefined comparator in Array.prototype.sort
439 https://bugs.webkit.org/show_bug.cgi?id=163085
441 Reviewed by Yusuke Suzuki.
443 * ChakraCore/test/Array/array_sort.baseline-jsc:
444 * stress/array-sort-bad-comparator.js: Added.
447 2016-10-12 Mark Lam <mark.lam@apple.com>
449 Array.prototype.slice should not modify frozen objects.
450 https://bugs.webkit.org/show_bug.cgi?id=163338
452 Reviewed by Filip Pizlo.
454 * stress/array-slice-on-frozen-object.js: Added.
456 2016-10-11 Mark Lam <mark.lam@apple.com>
458 Array.prototype.concat should not modify frozen objects.
459 https://bugs.webkit.org/show_bug.cgi?id=163302
461 Reviewed by Filip Pizlo.
463 * stress/array-concat-on-frozen-object.js: Added.
465 2016-10-11 Saam Barati <sbarati@apple.com>
467 ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
468 https://bugs.webkit.org/show_bug.cgi?id=163182
470 Reviewed by Filip Pizlo.
472 * microbenchmarks/string-add-constant-folding.js: Added.
478 2016-10-07 Mark Lam <mark.lam@apple.com>
480 Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
481 https://bugs.webkit.org/show_bug.cgi?id=163160
483 Reviewed by Saam Barati.
485 * stress/object-freeze-with-proxy-preventExtensions.js: Added.
486 * stress/object-seal-with-proxy-preventExtensions.js: Added.
488 2016-10-05 Yusuke Suzuki <utatane.tea@gmail.com>
490 [DOMJIT] Add initial CheckDOM and CallDOM implementations
491 https://bugs.webkit.org/show_bug.cgi?id=162941
493 Reviewed by Filip Pizlo.
495 * stress/domjit-getter-poly.js: Added.
498 * stress/domjit-getter-proto.js: Added.
501 * stress/domjit-getter-super-poly.js: Added.
504 * stress/domjit-getter.js: Added.
508 2016-10-04 Saam Barati <sbarati@apple.com>
510 String.prototype.toLowerCase should be a DFG/FTL intrinsic
511 https://bugs.webkit.org/show_bug.cgi?id=162887
513 Reviewed by Filip Pizlo and Yusuke Suzuki.
515 * microbenchmarks/to-lower-case.js: Added.
519 * stress/to-lower-case.js: Added.
523 2016-10-04 JF Bastien <jfbastien@apple.com>
525 WebAssembly: handle a few corner cases
526 https://bugs.webkit.org/show_bug.cgi?id=162884
528 Reviewed by Keith Miller.
530 * stress/wasm/generate-wasmops-header.js:
531 (const.opcodeIterator): max opcode value
533 2016-10-03 JF Bastien <jfbastien@apple.com>
535 Auto-generate WASMOps.h, share with testing JSON file
536 https://bugs.webkit.org/show_bug.cgi?id=162870
538 Reviewed by Keith Miller.
540 * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
541 (const.opcode_iterator):
543 * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
545 2016-10-03 Saam Barati <sbarati@apple.com>
547 MapHash should speculate on the type of its child node
548 https://bugs.webkit.org/show_bug.cgi?id=161922
550 Reviewed by Filip Pizlo.
552 * microbenchmarks/map-key-well-typed.js: Added.
564 2016-10-03 Yusuke Suzuki <utatane.tea@gmail.com>
566 [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
567 https://bugs.webkit.org/show_bug.cgi?id=162849
569 Reviewed by Geoffrey Garen.
573 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
575 [ES6] Align attributes of Generator related properties to spec
576 https://bugs.webkit.org/show_bug.cgi?id=162839
578 Reviewed by Saam Barati.
582 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
584 [ES6] GeneratorFunction constructor should instantiate generator function
585 https://bugs.webkit.org/show_bug.cgi?id=162838
587 Reviewed by Saam Barati.
589 * stress/generator-function-constructor-is-subclassible.js: Added.
593 * stress/generator-function-constructor.js:
596 2016-09-30 Saam Barati <sbarati@apple.com>
598 Arrow functions should not allow duplicate parameter names
599 https://bugs.webkit.org/show_bug.cgi?id=162741
601 Reviewed by Filip Pizlo.
605 2016-09-30 Saam Barati <sbarati@apple.com>
607 Make some microbenchmarks run for less time.
609 Rubber stamped by Filip Pizlo.
611 * microbenchmarks/bound-function-construction-performance.js:
613 * microbenchmarks/getter-richards-try-catch.js:
615 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
617 Arrow functions do not infer name from computed property but normal functions do
618 https://bugs.webkit.org/show_bug.cgi?id=162720
620 Reviewed by Saam Barati.
622 * stress/inferred-names.js:
624 2016-09-29 Mark Lam <mark.lam@apple.com>
626 Break some slow running tests into smaller bits so they don't time out.
627 https://bugs.webkit.org/show_bug.cgi?id=162743
629 Reviewed by Keith Miller.
631 The following tests have shown to be slow running:
640 These tests auto-generate permutations of values to apply to binary operations.
641 They also test the operations with 3 permutations of value types:
642 1. VarVar - both operands variables
643 2. VarConst - variable operand 1, constant / literal operand 2
644 3. ConstVar - constant / literal operand 1, variable operand 2
646 We can prevent these tests from timing out by breaking each up to only run 1 of
647 the 3 permutations of value types.
649 * stress/op_div-ConstVar.js: Added.
650 * stress/op_div-VarConst.js: Added.
651 * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
652 (o1.valueOf): Deleted.
653 * stress/op_div.js: Removed.
654 * stress/op_lshift-ConstVar.js: Added.
655 * stress/op_lshift-VarConst.js: Added.
656 * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
657 (o1.valueOf): Deleted.
658 * stress/op_lshift.js: Removed.
659 * stress/op_mod-ConstVar.js: Added.
660 * stress/op_mod-VarConst.js: Added.
661 * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
662 (o1.valueOf): Deleted.
663 * stress/op_mod.js: Removed.
664 * stress/op_mul-ConstVar.js: Added.
665 * stress/op_mul-VarConst.js: Added.
666 * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
667 (o1.valueOf): Deleted.
668 * stress/op_mul.js: Removed.
669 * stress/op_rshift-ConstVar.js: Added.
670 * stress/op_rshift-VarConst.js: Added.
671 * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
672 (o1.valueOf): Deleted.
673 * stress/op_rshift.js: Removed.
674 * stress/op_sub-ConstVar.js: Added.
675 * stress/op_sub-VarConst.js: Added.
676 * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
677 (o1.valueOf): Deleted.
678 * stress/op_sub.js: Removed.
679 * stress/op_urshift-ConstVar.js: Added.
680 * stress/op_urshift-VarConst.js: Added.
681 * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
682 (o1.valueOf): Deleted.
683 * stress/op_urshift.js: Removed.
684 * stress/resources/binary-op-values.js: Added.
687 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
689 test262: class and function names should be inferred in assignment
690 https://bugs.webkit.org/show_bug.cgi?id=146262
692 Reviewed by Saam Barati.
694 * stress/arrowfunction-name.js: Added.
695 Quick tests for arrow function names.
697 * stress/inferred-names.js: Added.
698 General test for inferred function names.
701 Pass many tests checking inferred function names.
703 2016-09-29 Saam Barati <sbarati@apple.com>
705 We don't properly propagate non-simple-parameter-list when parsing a setter
706 https://bugs.webkit.org/show_bug.cgi?id=160483
708 Reviewed by Joseph Pecoraro.
712 2016-09-28 Saam Barati <sbarati@apple.com>
714 stringProtoFuncRepeatCharacter will return `null` when it should not
715 https://bugs.webkit.org/show_bug.cgi?id=161944
717 Reviewed by Yusuke Suzuki.
719 * stress/pad-start-calls-repeat-character-with-double.js: Added.
720 (logLinesWithContext):
722 2016-09-27 Filip Pizlo <fpizlo@apple.com>
724 B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
725 https://bugs.webkit.org/show_bug.cgi?id=162644
727 Reviewed by Keith Miller.
729 * stress/chill-mod-chill-mod.js: Added.
732 2016-09-26 Csaba Osztrogonác <oszi@inf.u-szeged.hu>
734 Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
735 https://bugs.webkit.org/show_bug.cgi?id=162386
737 Unreviewed, relanding r206317 after typo fix.
739 * stress/string-joining-long-strings-should-not-crash.js:
741 2016-09-24 Caitlin Potter <caitp@igalia.com>
743 [JSTests] fix test262 expectations following r206333
744 https://bugs.webkit.org/show_bug.cgi?id=162533
746 Reviewed by Yusuke Suzuki.
750 2016-09-23 Caitlin Potter <caitp@igalia.com>
752 [JSC] Implement parsing of Async Functions
753 https://bugs.webkit.org/show_bug.cgi?id=161409
755 Reviewed by Yusuke Suzuki.
757 * stress/async-await-syntax.js: Added.
760 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
761 (testTopLevelAsyncAwaitSyntaxSloppyMode):
762 (testTopLevelAsyncAwaitSyntaxStrictMode):
763 (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
764 (testNestedAsyncAwaitSyntax.async):
765 (testNestedAsyncAwaitSyntax.foo):
766 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
768 2016-09-23 Ryan Haddad <ryanhaddad@apple.com>
770 Unreviewed, rolling out r206317.
772 This change caused timeouts on El Capitan Release JSC tests
776 "Skip stress/string-joining-long-strings-should-not-crash.js
777 on memory limited devices"
778 https://bugs.webkit.org/show_bug.cgi?id=162386
779 http://trac.webkit.org/changeset/206317
781 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
783 Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
784 https://bugs.webkit.org/show_bug.cgi?id=162381
786 Reviewed by Mark Lam.
788 * mozilla/mozilla-tests.yaml:
790 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
792 Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
793 https://bugs.webkit.org/show_bug.cgi?id=162386
795 Reviewed by Mark Lam.
797 * stress/string-joining-long-strings-should-not-crash.js:
799 2016-09-22 Benjamin Poulain <bpoulain@apple.com>
801 [JSC] Use an inline cache to generate op_negate
802 https://bugs.webkit.org/show_bug.cgi?id=162371
804 Reviewed by Saam Barati.
806 * stress/op-negate-inline-cache.js: Added.
808 2016-09-22 Mark Lam <mark.lam@apple.com>
810 Array.prototype.join should do overflow checks on string joins.
811 https://bugs.webkit.org/show_bug.cgi?id=162459
813 Reviewed by Saam Barati.
815 * stress/array-join-on-strings-need-overflow-checks.js: Added.
819 2016-09-22 Joseph Pecoraro <pecoraro@apple.com>
821 test262: Function length should be number of parameters before parameters with default values
822 https://bugs.webkit.org/show_bug.cgi?id=162377
824 Reviewed by Saam Barati.
826 * stress/es6-default-parameters.js:
827 Add our own tests for function lengths with default parameters.
830 We now pass all dflt-length tests.
832 2016-09-20 Benjamin Poulain <bpoulain@apple.com>
834 [JSC] Do not use EagerRun on tests counting recompilation
835 https://bugs.webkit.org/show_bug.cgi?id=162248
837 Reviewed by Geoffrey Garen.
839 This patch adds defaultNoEagerRun to all the tests
840 for which recompilation is the symptom of a bug.
841 The reason is that an OSR Exit can be unrelated to the tested
842 nodes when we are running in Eager mode.
844 * stress/arith-abs-on-various-types.js:
845 * stress/arith-ceil-on-various-types.js:
846 * stress/arith-clz32-on-various-types.js:
847 * stress/arith-cos-on-various-types.js:
848 * stress/arith-floor-on-various-types.js:
849 * stress/arith-fround-on-various-types.js:
850 * stress/arith-log-on-various-types.js:
851 * stress/arith-round-on-various-types.js:
852 * stress/arith-sin-on-various-types.js:
853 * stress/arith-sqrt-on-various-types.js:
854 * stress/arith-tan-on-various-types.js:
855 * stress/arith-trunc-on-various-types.js:
857 * stress/compare-strict-eq-on-various-types.js:
859 The value 2 came from the other tests.
860 CompareStrictEq supports many more cases, the worst case
861 is bool->int->int52->number->polymorphic.
863 2016-09-20 Filip Pizlo <fpizlo@apple.com>
865 Make MarkedBlock state tracking support overlapped allocation and marking state
866 https://bugs.webkit.org/show_bug.cgi?id=161581
868 Reviewed by Geoffrey Garen.
870 Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
872 * microbenchmarks/switching-size-classes.js: Added.
874 2016-09-20 Saam Barati <sbarati@apple.com>
876 Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
878 * stress/has-own-property-called-on-non-object.js: Added.
883 2016-09-20 Yusuke Suzuki <utatane.tea@gmail.com>
885 [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
886 https://bugs.webkit.org/show_bug.cgi?id=162253
888 Reviewed by Sam Weinig.
890 * microbenchmarks/is-symbol-mixed.js: Added.
892 (i.let.pair.of.list.String):
893 * microbenchmarks/is-symbol.js: Added.
896 2016-09-19 Saam Barati <sbarati@apple.com>
898 Make HasOwnProperty faster
899 https://bugs.webkit.org/show_bug.cgi?id=161708
901 Reviewed by Geoffrey Garen.
903 * microbenchmarks/has-own-property-name-cache.js: Added.
905 * stress/has-own-property-cache-basics.js: Added.
908 * stress/has-own-property-name-cache-string-keys.js: Added.
911 * stress/has-own-property-name-cache-symbol-keys.js: Added.
914 * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
918 2016-09-19 Benjamin Poulain <bpoulain@apple.com>
920 [JSC] Make the rounding-related nodes support any type
921 https://bugs.webkit.org/show_bug.cgi?id=161895
923 Reviewed by Geoffrey Garen.
925 * stress/arith-ceil-on-various-types.js: Added.
926 * stress/arith-floor-on-various-types.js: Added.
927 * stress/arith-round-on-various-types.js: Added.
928 * stress/arith-trunc-on-various-types.js: Added.
930 2016-09-18 Yusuke Suzuki <utatane.tea@gmail.com>
932 [JSC] Do not need to use defineProperty to define methods for object literals
933 https://bugs.webkit.org/show_bug.cgi?id=162111
935 Reviewed by Saam Barati.
937 * stress/object-literal-methods.js: Added.
939 (throw.new.Error.let.object.get name):
941 (shouldBe.let.object.get name):
942 (shouldBe.let.object.get prototype):
943 (shouldBe.let.object.get 42):
945 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
947 [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
948 https://bugs.webkit.org/show_bug.cgi?id=162000
950 Reviewed by Filip Pizlo.
952 * microbenchmarks/is-array-for-array.js: Added.
954 * microbenchmarks/is-array-for-mixed-case.js: Added.
956 * microbenchmarks/is-array-for-non-array-object.js: Added.
958 * microbenchmarks/is-array-for-proxy.js: Added.
960 (isArray.proxy.throw.new.Error.isArray):
961 (isArray.proxy.throw.new.Error):
963 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
965 Unreviewed, gardening test262 results
967 Some tests are now passed with JSC, but marked as failed.
971 2016-09-16 Joseph Pecoraro <pecoraro@apple.com>
973 test262: Various Constructors length properties should be configurable
974 https://bugs.webkit.org/show_bug.cgi?id=161998
976 Reviewed by Saam Barati.
980 2016-09-15 Commit Queue <commit-queue@webkit.org>
982 Unreviewed, rolling out r205931.
983 https://bugs.webkit.org/show_bug.cgi?id=162021
985 Tests for this change fail on 32-bit JSC bots (Requested by
986 ryanhaddad on #webkit).
990 "[JSC] Make the rounding-related nodes support any type"
991 https://bugs.webkit.org/show_bug.cgi?id=161895
992 http://trac.webkit.org/changeset/205931
994 2016-09-15 Joseph Pecoraro <pecoraro@apple.com>
996 test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
997 https://bugs.webkit.org/show_bug.cgi?id=162013
999 Reviewed by Saam Barati.
1001 * stress/es6-default-parameters.js:
1004 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
1006 ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
1007 https://bugs.webkit.org/show_bug.cgi?id=162003
1009 Reviewed by Saam Barati.
1011 * stress/spread-calling.js:
1014 2016-09-14 Michael Saboff <msaboff@apple.com>
1016 YARR doesn't check for invalid flags for literal regular expressions
1017 https://bugs.webkit.org/show_bug.cgi?id=161995
1019 Reviewed by Mark Lam.
1023 * stress/regress-161995.js: Added.
1027 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
1029 test262: TypedArray constructors length should be 3 and configurable
1030 https://bugs.webkit.org/show_bug.cgi?id=161955
1032 Reviewed by Mark Lam.
1036 2016-09-14 Benjamin Poulain <bpoulain@apple.com>
1038 [JSC] Make the rounding-related nodes support any type
1039 https://bugs.webkit.org/show_bug.cgi?id=161895
1041 Reviewed by Geoffrey Garen.
1043 * stress/arith-ceil-on-various-types.js: Added.
1044 * stress/arith-floor-on-various-types.js: Added.
1045 * stress/arith-round-on-various-types.js: Added.
1046 * stress/arith-trunc-on-various-types.js: Added.
1048 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
1050 TaggedTemplateString function calls should emit tail position calls
1051 https://bugs.webkit.org/show_bug.cgi?id=161948
1053 Reviewed by Yusuke Suzuki.
1055 * stress/tail-call-recognize.js:
1057 Ensure a tagged template string function call is tail call.
1062 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
1064 test262: Array.prototype.slice should always set length
1065 https://bugs.webkit.org/show_bug.cgi?id=161953
1067 Reviewed by Mark Lam.
1071 2016-09-13 JF Bastien <jfbastien@apple.com>
1073 Support jsc shell builtin `read`
1074 https://bugs.webkit.org/show_bug.cgi?id=161662
1076 Reviewed by Keith Miller.
1078 * stress/jsc-read.js: Added.
1079 (test): test `read` and `readFile` shell builtins, in string and binary mode.
1081 2016-09-12 Skachkov Oleksandr <gskachkov@gmail.com>
1083 ES6: Classes: Should be allowed to create a static method with name "arguments"
1084 https://bugs.webkit.org/show_bug.cgi?id=152985
1086 Reviewed by Keith Miller.
1090 2016-09-12 Saam Barati <sbarati@apple.com>
1092 Speed up Function.prototype.bind a bit by making it a builtin
1093 https://bugs.webkit.org/show_bug.cgi?id=161879
1095 Reviewed by Filip Pizlo.
1097 * microbenchmarks/function-bind-inlining.js: Added.
1102 * microbenchmarks/function-bind-no-inlining.js: Added.
1108 2016-09-12 Saam Barati <sbarati@apple.com>
1110 HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
1111 https://bugs.webkit.org/show_bug.cgi?id=161640
1113 Reviewed by Geoffrey Garen.
1115 * microbenchmarks/map-rehash.js: Added.
1116 * stress/map-delete.js: Added.
1118 * stress/map-rehash-2.js: Added.
1120 * stress/map-rehash.js: Added.
1123 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
1125 Unreviewed, fix tests for different libm environments
1126 https://bugs.webkit.org/show_bug.cgi?id=161857
1128 * stress/ftl-arithtan.js:
1130 2016-09-12 Benjamin Poulain <bpoulain@apple.com>
1132 [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
1133 https://bugs.webkit.org/show_bug.cgi?id=161671
1135 Reviewed by Geoffrey Garen.
1137 * stress/get-array-length-on-undecided.js: Added.
1139 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
1141 [DFG][FTL] Add ArithTan
1142 https://bugs.webkit.org/show_bug.cgi?id=161857
1144 Reviewed by Filip Pizlo.
1146 * microbenchmarks/tan.js: Added.
1147 * stress/arith-tan-on-various-types.js: Added.
1148 (let.validInputTypedTestCases.validInputTestCases.map):
1150 (opaqueTanNoArgument):
1152 (opaqueAllTypesTan):
1154 (testTangleTypeCall):
1156 (opaqueTanForSideEffects):
1157 (testSideEffect.let.testObject.valueOf):
1160 (testCSE.let.testObject.valueOf):
1163 (testDCE.let.testObject.valueOf):
1165 (testException.opaqueTanWithException):
1167 * stress/ftl-arithtan.js: Added.
1170 2016-09-12 Saam Barati <sbarati@apple.com>
1172 MapHash should do constant folding when it has a constant argument and its legal to hash that value
1173 https://bugs.webkit.org/show_bug.cgi?id=161639
1175 Reviewed by Filip Pizlo.
1177 * microbenchmarks/map-constant-key.js: Added.
1182 2016-09-12 Michael Saboff <msaboff@apple.com>
1184 JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
1185 https://bugs.webkit.org/show_bug.cgi?id=161863
1187 Reviewed by Saam Barati.
1190 Disabled Bugs/bug56026_trycatch.js.
1192 2016-09-09 Michael Saboff <msaboff@apple.com>
1194 Unreviewed, rolling r205759 back in with a fix.
1196 The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
1197 should be named "toString.baseline-jsc".
1199 * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
1200 * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
1202 2016-09-09 Michael Saboff <msaboff@apple.com>
1204 Disable three flakey Chakra Tests
1205 https://bugs.webkit.org/show_bug.cgi?id=161807
1207 Reviewed by Saam Barati.
1209 * ChakraCore.yaml: Disabled the flakey tests
1210 ChakraCore/test/Array/protoLookup_native.js
1211 ChakraCore/test/LetConst/delete.js
1212 ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
1214 2016-09-08 Saam Barati <sbarati@apple.com>
1216 We should inline operationConvertJSValueToBoolean into JIT code
1217 https://bugs.webkit.org/show_bug.cgi?id=161729
1219 Reviewed by Filip Pizlo.
1221 * stress/value-to-boolean.js: Added.
1227 2016-09-08 Mark Lam <mark.lam@apple.com>
1229 REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
1230 https://bugs.webkit.org/show_bug.cgi?id=161756
1232 Reviewed by Saam Barati.
1234 It looks like the 32-bit JSC bot is just too slow at running this test with the
1235 dfg-maximal-flush-validate-no-cjit configuration. We'll try excluding that
1238 * stress/rest-parameter-many-arguments.js:
1240 2016-09-08 JF Bastien <jfbastien@apple.com>
1242 Delete older WebAssembly tests
1243 https://bugs.webkit.org/show_bug.cgi?id=161758
1245 Reviewed by Filip Pizlo.
1247 They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
1249 * stress/wasm-arithmetic-float32.js: Removed.
1250 * stress/wasm-arithmetic-float64.js: Removed.
1251 * stress/wasm-arithmetic-int32.js: Removed.
1252 * stress/wasm-calls.js: Removed.
1253 * stress/wasm-comma.js: Removed.
1254 * stress/wasm-control-flow.js: Removed.
1255 * stress/wasm-globals.js: Removed.
1256 * stress/wasm-linear-memory.js: Removed.
1257 * stress/wasm-locals.js: Removed.
1258 * stress/wasm-relational.js: Removed.
1259 * stress/wasm-type-conversion.js: Removed.
1260 * stress/wasm/arithmetic-float32.wasm: Removed.
1261 * stress/wasm/arithmetic-float64.wasm: Removed.
1262 * stress/wasm/arithmetic-int32.wasm: Removed.
1263 * stress/wasm/calls.wasm: Removed.
1264 * stress/wasm/comma.wasm: Removed.
1265 * stress/wasm/control-flow.wasm: Removed.
1266 * stress/wasm/globals.wasm: Removed.
1267 * stress/wasm/linear-memory.wasm: Removed.
1268 * stress/wasm/locals.wasm: Removed.
1269 * stress/wasm/relational.wasm: Removed.
1270 * stress/wasm/type-conversion.wasm: Removed.
1272 2016-09-08 Per Arne Vollan <pvollan@apple.com>
1274 [Win] Exception fuzz tests fail
1275 https://bugs.webkit.org/show_bug.cgi?id=140928
1277 Reviewed by Mark Lam.
1281 * exceptionFuzz.yaml:
1283 2016-09-06 Saam Barati <sbarati@apple.com>
1285 ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
1286 https://bugs.webkit.org/show_bug.cgi?id=161558
1288 Reviewed by Benjamin Poulain.
1290 * stress/proxy-get-prototype-of.js:
1291 * stress/proxy-set-prototype-of.js:
1292 (let.handler.setPrototypeOf): Deleted.
1293 * stress/proxy-underscore-proto.js: Added.
1296 2016-09-06 Saam Barati <sbarati@apple.com>
1298 Make JSMap and JSSet faster
1299 https://bugs.webkit.org/show_bug.cgi?id=160989
1301 Reviewed by Filip Pizlo.
1303 * microbenchmarks/dense-set.js: Added.
1305 * microbenchmarks/large-map-iteration-with-additions.js: Added.
1308 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
1311 * microbenchmarks/large-map-iteration.js: Added.
1314 * microbenchmarks/map-get-get-cse.js: Added.
1317 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
1320 * microbenchmarks/sparse-set.js: Added.
1322 * stress/map-cse-correctness.js: Added.
1327 * stress/map-iteration.js: Added.
1348 2016-09-06 Benjamin Poulain <bpoulain@apple.com>
1350 [JSC] Make ArithClz32 work with Cell arguments
1351 https://bugs.webkit.org/show_bug.cgi?id=161369
1353 Reviewed by Geoffrey Garen.
1355 * stress/arith-clz32-on-various-types.js: Added.
1357 2016-09-06 Commit Queue <commit-queue@webkit.org>
1359 Unreviewed, rolling out r205504.
1360 https://bugs.webkit.org/show_bug.cgi?id=161645
1362 Broke the iOS device build (Requested by ryanhaddad on
1367 "Make JSMap and JSSet faster"
1368 https://bugs.webkit.org/show_bug.cgi?id=160989
1369 http://trac.webkit.org/changeset/205504
1371 2016-09-06 Saam Barati <sbarati@apple.com>
1373 Make JSMap and JSSet faster
1374 https://bugs.webkit.org/show_bug.cgi?id=160989
1376 Reviewed by Filip Pizlo.
1378 * microbenchmarks/dense-set.js: Added.
1380 * microbenchmarks/large-map-iteration-with-additions.js: Added.
1383 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
1386 * microbenchmarks/large-map-iteration.js: Added.
1389 * microbenchmarks/map-get-get-cse.js: Added.
1392 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
1395 * microbenchmarks/sparse-set.js: Added.
1397 * stress/map-cse-correctness.js: Added.
1402 * stress/map-iteration.js: Added.
1423 2016-08-31 Filip Pizlo <fpizlo@apple.com>
1425 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
1426 https://bugs.webkit.org/show_bug.cgi?id=160125
1428 Reviewed by Geoffrey Garen and Keith Miller.
1430 Most of the things I did properly covered by existing tests, but I found some simple cases of
1431 unshifting that had sketchy coverage.
1433 * stress/array-storage-array-unshift.js: Added.
1434 * stress/contiguous-array-unshift.js: Added.
1435 * stress/double-array-unshift.js: Added.
1436 * stress/int32-array-unshift.js: Added.
1438 2016-09-02 Michael Saboff <msaboff@apple.com>
1440 Unreviewed fix after importing Chakra test
1442 * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
1443 test contained tab characters. I removed the tabs before landing. This test depended
1444 on the tab characters and now fails after they were removed.
1447 2016-09-01 Michael Saboff <msaboff@apple.com>
1449 Import Chakra tests to JSC
1450 https://bugs.webkit.org/show_bug.cgi?id=154697
1452 Reviewed by Saam Barati.
1454 Added Chakra tests. All these tests are under Chakra/test. This is the same layout
1455 for tests in the Chakra tree.
1457 Created a ChakraCore.yaml file to be used with run-jsc-stress-tests. This file contains
1458 the tests that are run when the original Chakra runtests.py script is run. That script
1459 is the test driver for *nix platforms and does not attempt to run all tests or all
1460 variations of tests. The runtest.py driver consults rlexe.xml files in each test
1461 subdirectory to determine the test to run, the options to pass to the test and how to
1462 determine pass/fail of the test. With runtests.py as the start, tests that didn't
1463 pass directly where either skipped, with a message describing why or through
1464 adjustments to the test infrastructure, as described below, where made to pass.
1466 The only modification to the test infrastrucutre are:
1468 1) Added simple mapping of Chakra expected exception text to JSC expected text in
1469 test/UnitTestFramework/UnitTestFramework.js. It would make sense to also
1470 map some JSC specific exception text to more generic text for the cases where
1471 that text contains indetifier names or other source specific strings and the
1472 Chakra equivolent exception texts are generic.
1474 2) Created JSC specific expected text files where it is clear that the text work
1475 as expected on JSC but the test output is different. Typically the differences
1476 fall into three categories, different exception output, different output from
1477 toString() of a function, slight numeric differences, and test that rely on
1480 3) Stripped the CR's from the CR-LF line terminations of the files.
1482 No actual test .js files were modified.
1484 * ChakraCore: Added.
1485 * ChakraCore.yaml: Added.
1486 * ChakraCore/CONTRIBUTING.md: Added.
1487 * ChakraCore/LICENSE.txt: Added.
1488 * ChakraCore/README.md: Added.
1489 * ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
1490 * ChakraCore/test: Added this directory and the tests included therein.
1492 2016-09-01 JF Bastien <jfbastien@apple.com>
1494 GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
1495 https://bugs.webkit.org/show_bug.cgi?id=160922
1497 Reviewed by Keith Miller.
1499 Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
1500 The value profile is used by the calc functions, which do some mild math with the result.
1501 These benchmarks get ~4% faster with value profiling.
1503 * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
1505 (A.prototype.set value):
1506 (A.prototype.get value):
1507 (B.prototype.set value):
1508 (B.prototype.get value):
1511 * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
1513 (A.prototype.set value):
1514 (A.prototype.get value):
1515 (B.prototype.set value):
1516 (B.prototype.get value):
1519 * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
1522 (A.prototype.set v):
1523 (A.prototype.get v):
1524 (B.prototype.set v):
1525 (B.prototype.get v):
1528 * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
1531 (A.prototype.set v):
1532 (A.prototype.get v):
1533 (B.prototype.set v):
1534 (B.prototype.get v):
1538 2016-09-01 Benjamin Poulain <bpoulain@apple.com>
1540 arith-abs-on-various-types.js is flaky
1544 * stress/arith-abs-on-various-types.js:
1545 Two compilation is too small for the worst case.
1546 Math.abs() can be typed integer->number->untyped if we are very unlucky.
1548 2016-09-01 Filip Pizlo <fpizlo@apple.com>
1550 ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
1551 https://bugs.webkit.org/show_bug.cgi?id=161492
1553 Reviewed by Mark Lam.
1555 This bug affected function->activation references but not object->object field references,
1556 because object->object field references are !neededForMaterialization(). So, the object
1557 test always passed but the activation/function test used to always fail. It passes now.
1559 * stress/materialize-activation-referenced-from-phantom-function.js: Added.
1565 * stress/materialize-object-referenced-from-phantom-object.js: Added.
1570 2016-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
1572 stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
1573 https://bugs.webkit.org/show_bug.cgi?id=161436
1575 Reviewed by Filip Pizlo.
1577 The test checks Math.random() correctly produces 53bit random values.
1578 The test can fail by design, but this should be fairly rare.
1580 However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
1581 increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
1583 And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
1584 and reproduce the situation easily.
1586 * stress/random-53bit.js:
1589 2016-08-29 Benjamin Poulain <bpoulain@apple.com>
1591 [JSC] Improve ArithAbs with polymorphic input
1592 https://bugs.webkit.org/show_bug.cgi?id=161286
1594 Reviewed by Saam Barati.
1596 * stress/arith-abs-on-various-types.js: Added.
1599 * stress/arith-cos-on-various-types.js:
1600 * stress/arith-fround-on-various-types.js:
1601 * stress/arith-log-on-various-types.js:
1602 * stress/arith-sin-on-various-types.js:
1603 * stress/arith-sqrt-on-various-types.js:
1604 Extend the existing tests to cover the DCE case.
1606 2016-08-26 Benjamin Poulain <benjamin@webkit.org>
1608 [JSC] Implement CompareStrictEq(String, Untyped) in FTL
1609 https://bugs.webkit.org/show_bug.cgi?id=161229
1611 Reviewed by Geoffrey Garen.
1613 * stress/compare-strict-eq-on-various-types.js: Added.
1615 2016-08-26 Yusuke Suzuki <utatane.tea@gmail.com>
1617 [ES6] newPromiseCapabilities should check the given argument is constructor
1618 https://bugs.webkit.org/show_bug.cgi?id=161226
1620 Reviewed by Mark Lam.
1622 The arrow function should not be a constructor. So the error should be raised.
1624 * stress/new-promise-capabilities-requires-constructor.js: Added.
1627 2016-08-25 Benjamin Poulain <bpoulain@apple.com>
1629 [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
1630 https://bugs.webkit.org/show_bug.cgi?id=161181
1632 Reviewed by Geoffrey Garen.
1634 Extend the tests to constants.
1635 Add no-argument cases where needed.
1637 * stress/arith-cos-on-various-types.js:
1638 * stress/arith-fround-on-various-types.js:
1639 * stress/arith-log-on-various-types.js:
1640 * stress/arith-sin-on-various-types.js:
1641 * stress/arith-sqrt-on-various-types.js:
1643 2016-08-25 Yusuke Suzuki <utatane.tea@gmail.com>
1645 [DFG][FTL] Implement ES6 Generators in DFG / FTL
1646 https://bugs.webkit.org/show_bug.cgi?id=152723
1648 Reviewed by Filip Pizlo.
1650 * stress/generator-fib-ftl-and-array.js: Added.
1652 * stress/generator-fib-ftl-and-object.js: Added.
1654 * stress/generator-fib-ftl-and-string.js: Added.
1656 * stress/generator-fib-ftl.js: Added.
1658 * stress/generator-frame-empty.js: Added.
1661 * stress/generator-reduced-save-point-put-to-scope.js: Added.
1664 * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
1668 2016-08-25 JF Bastien <jfbastien@apple.com>
1670 TryGetById should have a ValueProfile so that it can predict its output type
1671 https://bugs.webkit.org/show_bug.cgi?id=160921
1673 Reviewed by Saam Barati.
1675 * microbenchmarks/try-get-by-id-basic.js: Added.
1677 (const.bench.f.const.fooPlusBar.createBuiltin):
1678 * microbenchmarks/try-get-by-id-polymorphic.js: Added.
1680 (fooPlusBar.createBuiltin):
1683 2016-08-25 Caio Lima <ticaiolima@gmail.com>
1685 NewRegexp should not prevent inlining
1686 https://bugs.webkit.org/show_bug.cgi?id=154808
1688 Reviewed by Geoffrey Garen.
1690 Added test where functions with NewRegExp can be inlined right now.
1692 * stress/new-regex-inline.js: Added.
1697 (inlineRegexpNotGlobal):
1698 (toInlineRecursive):
1699 (regexpContainsRecursive):
1701 2016-08-24 Benjamin Poulain <benjamin@webkit.org>
1703 [JSC] Make FRound work with any type
1704 https://bugs.webkit.org/show_bug.cgi?id=161129
1706 Reviewed by Geoffrey Garen.
1708 * stress/arith-fround-on-various-types.js: Added.
1710 2016-08-24 Filip Pizlo <fpizlo@apple.com>
1712 Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
1714 * stress/array-storage-array-unshift.js: Removed.
1715 * stress/contiguous-array-unshift.js: Removed.
1716 * stress/double-array-unshift.js: Removed.
1717 * stress/int32-array-unshift.js: Removed.
1719 2016-08-24 Skachkov Oleksandr <gskachkov@gmail.com>
1721 [ES2016] Allow assignment in for-in head in not-strict mode
1722 https://bugs.webkit.org/show_bug.cgi?id=160955
1724 Reviewed by Saam Barati.
1726 * stress/for-in-tests.js:
1731 2016-08-23 Benjamin Poulain <benjamin@webkit.org>
1733 [JSC] Make ArithLog works with any type
1734 https://bugs.webkit.org/show_bug.cgi?id=161110
1736 Reviewed by Geoffrey Garen.
1738 * stress/arith-log-on-various-types.js: Added.
1740 2016-08-23 Saam Barati <sbarati@apple.com>
1742 JSC should have a "microbenchmarks" directory instead of "regress" directory
1743 https://bugs.webkit.org/show_bug.cgi?id=161096
1745 Rubber stamped by Mark Lam.
1747 * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
1749 2016-08-23 Keith Miller <keith_miller@apple.com>
1751 %TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
1752 https://bugs.webkit.org/show_bug.cgi?id=161031
1753 <rdar://problem/27937019>
1755 Reviewed by Geoffrey Garen.
1757 * stress/typedarray-slice.js:
1760 (testSpeciesWithTransferring):
1762 2016-08-22 Filip Pizlo <fpizlo@apple.com>
1764 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
1765 https://bugs.webkit.org/show_bug.cgi?id=160125
1767 Reviewed by Geoffrey Garen.
1769 Most of the things I did properly covered by existing tests, but I found some simple cases of
1770 unshifting that had sketchy coverage.
1772 * stress/array-storage-array-unshift.js: Added.
1773 * stress/contiguous-array-unshift.js: Added.
1774 * stress/double-array-unshift.js: Added.
1775 * stress/int32-array-unshift.js: Added.
1777 2016-08-23 Keith Miller <keith_miller@apple.com>
1779 Update/add new test262 tests
1780 https://bugs.webkit.org/show_bug.cgi?id=161098
1782 Reviewed by Saam Barati.
1785 * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
1786 * test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
1787 * test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
1788 * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
1790 * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
1791 * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
1792 * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
1793 * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
1794 (AsyncFunction.async.foo):
1795 * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
1796 (AsyncFunction.async):
1797 * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
1799 * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
1800 (AsyncFunction.async.foo):
1801 * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
1802 (AsyncFunction.async.foo):
1803 * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
1804 (AsyncFunction.async.foo):
1805 * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
1806 (AsyncFunction.async.foo):
1807 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
1808 (AsyncFunction.async.foo):
1809 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
1810 (AsyncFunction.async.foo):
1811 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
1812 (AsyncFunction.async.foo):
1813 * test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
1815 * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
1817 * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
1821 * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
1823 * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
1824 * 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.
1825 * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
1826 * 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.
1827 * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
1828 * 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.
1829 * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
1830 * 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.
1831 * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
1832 * 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.
1833 * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
1834 * 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.
1835 * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
1836 * 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.
1837 * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
1838 * 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.
1839 * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
1840 * 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.
1841 * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
1842 * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
1843 * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
1844 * 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.
1845 * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
1846 * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
1847 * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
1848 * 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.
1849 * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
1850 * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
1851 * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
1852 * 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.
1853 * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
1854 * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
1855 * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
1856 * 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.
1857 * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
1858 * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
1859 * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
1860 * 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.
1861 * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
1862 * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
1863 * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
1864 * 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.
1865 * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
1866 * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
1867 * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
1868 * 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.
1869 * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
1870 * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
1871 * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
1872 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
1874 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
1876 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
1878 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
1880 * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
1882 * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
1884 * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
1886 * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
1888 (let.g.async.string_appeared_here):
1889 * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
1891 * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
1893 * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
1894 (uncoercible.valueOf):
1896 * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
1898 * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
1899 * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
1901 * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
1903 * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
1905 * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
1907 * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
1908 * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
1909 * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
1910 * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
1911 * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
1914 * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
1915 * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
1916 * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
1917 * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
1918 * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
1919 * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
1920 * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
1921 * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
1922 (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
1923 (badProxyHandlers.allowProxyTraps.ownKeys):
1924 * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
1925 (setPrototypeOf): Deleted.
1926 * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
1927 (target.new.Proxy.Object.create.isExtensible):
1928 (target.new.Proxy.Object.create.getPrototypeOf):
1929 (target.new.Proxy.Object.create):
1931 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
1933 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
1935 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
1936 (setPrototypeOf): Deleted.
1937 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
1938 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
1941 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
1944 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
1946 * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
1947 (setPrototypeOf): Deleted.
1948 * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
1951 * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
1955 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
1956 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
1958 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
1959 * test262/test/built-ins/RegExp/lastIndex.js: Added.
1960 * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
1961 * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
1963 * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
1965 * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
1966 * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
1967 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
1969 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
1971 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
1972 * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
1973 * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
1974 * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
1975 (__re.hasOwnProperty): Deleted.
1976 (__re.propertyIsEnumerable): Deleted.
1978 * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
1979 (__re.hasOwnProperty): Deleted.
1981 * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
1982 * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
1984 * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
1986 * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
1987 * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
1988 * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
1989 * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
1991 * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
1993 * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
1994 * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
1995 * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
1996 * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
1997 * test262/test/built-ins/RegExp/prototype/source/value.js: Added.
1998 * 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.
1999 * 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.
2000 * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
2001 * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
2002 * 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.
2003 * 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.
2004 * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
2005 * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
2006 * test262/test/built-ins/String/numeric-properties.js: Added.
2007 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
2008 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
2009 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
2010 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
2011 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
2013 (compareFTPtoFormat):
2014 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
2015 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
2018 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
2019 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
2020 * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
2021 * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
2022 * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
2024 (compareFTPtoFormat):
2025 * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
2026 * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
2029 * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
2030 * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
2031 * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
2033 * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
2035 * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
2037 * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
2039 * 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.
2041 * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
2043 * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
2045 * test262/test/language/eval-code/direct/super-call-fn.js: Added.
2047 * test262/test/language/eval-code/direct/super-call.js: Added.
2049 * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
2051 * test262/test/language/eval-code/direct/super-prop-method.js: Added.
2053 * test262/test/language/eval-code/direct/super-prop.js: Added.
2055 * test262/test/language/eval-code/indirect/super-call.js: Added.
2058 * test262/test/language/eval-code/indirect/super-prop.js: Added.
2061 * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
2063 * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
2064 * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
2066 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
2068 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
2070 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
2072 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
2074 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
2076 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
2078 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
2080 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
2082 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
2084 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
2086 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
2088 * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
2090 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
2092 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
2094 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
2096 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
2098 * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
2100 * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
2102 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
2104 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
2106 * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
2108 * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
2110 * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
2112 * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
2114 * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
2117 * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
2119 * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
2122 * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
2125 * test262/test/language/expressions/await/await-in-function.js: Added.
2127 * test262/test/language/expressions/await/await-in-generator.js: Added.
2129 * test262/test/language/expressions/await/await-in-global.js: Added.
2130 * test262/test/language/expressions/await/await-in-nested-function.js: Added.
2133 * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
2136 * test262/test/language/expressions/await/await-throws-rejections.js: Added.
2138 * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
2140 * test262/test/language/expressions/await/no-operand.js: Added.
2142 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
2144 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
2146 * test262/test/language/expressions/call/trailing-comma.js: Added.
2148 * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
2150 * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
2152 * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
2155 * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
2157 * test262/test/language/expressions/function/params-trailing-comma.js: Added.
2158 * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
2160 * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
2162 * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
2165 * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
2167 * test262/test/language/expressions/generators/params-trailing-comma.js: Added.
2168 * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
2169 * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
2171 (child.async.method):
2172 * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
2174 (child.async.method.x.super.method):
2175 * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
2177 * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
2179 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
2181 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
2183 * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
2185 * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
2187 * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
2189 * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
2191 * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
2192 (async.foo.foo.super):
2193 * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
2195 * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
2198 * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
2201 * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
2203 * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
2206 * 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.
2208 * test262/test/language/global-code/decl-func.js: Added.
2210 * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
2211 * test262/test/language/global-code/decl-lex-deletion.js: Added.
2213 * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
2214 * test262/test/language/global-code/decl-lex.js: Added.
2216 * test262/test/language/global-code/decl-var.js: Added.
2217 * test262/test/language/global-code/return.js: Added.
2218 * test262/test/language/global-code/script-decl-func-dups.js: Added.
2219 * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
2220 * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
2221 * test262/test/language/global-code/script-decl-func.js: Added.
2222 * test262/test/language/global-code/script-decl-lex-deletion.js: Added.
2223 * test262/test/language/global-code/script-decl-lex-lex.js: Added.
2225 * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
2226 * test262/test/language/global-code/script-decl-lex-var.js: Added.
2228 * test262/test/language/global-code/script-decl-lex.js: Added.
2229 * test262/test/language/global-code/script-decl-var-collision.js: Added.
2231 * test262/test/language/global-code/script-decl-var-err.js: Added.
2232 * test262/test/language/global-code/script-decl-var.js: Added.
2233 * test262/test/language/global-code/super-call-arrow.js: Added.
2234 * test262/test/language/global-code/super-call.js: Added.
2235 * test262/test/language/global-code/super-prop-arrow.js: Added.
2236 * test262/test/language/global-code/super-prop.js: Added.
2237 * test262/test/language/global-code/yield-non-strict.js: Added.
2239 * test262/test/language/global-code/yield-strict.js: Added.
2240 * test262/test/language/literals/regexp/lastIndex.js: Added.
2241 * test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
2242 * test262/test/language/literals/regexp/y-assertion-start.js: Added.
2243 * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
2244 * test262/test/language/module-code/instn-star-err-not-found.js:
2245 * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
2246 * test262/test/language/module-code/parse-err-return.js: Added.
2247 * test262/test/language/module-code/parse-err-yield.js: Added.
2248 * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
2249 * test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
2251 * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
2253 * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
2255 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
2257 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
2259 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
2261 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
2263 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
2265 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
2267 * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
2269 * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
2271 * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
2273 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
2275 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
2277 * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
2279 * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
2282 * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
2285 * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
2288 * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
2291 * test262/test/language/statements/async-function/evaluation-body.js: Added.
2293 * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
2296 * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
2298 * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
2300 * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
2302 * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
2304 * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
2306 * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
2308 * test262/test/language/statements/async-function/syntax-declaration.js: Added.
2311 * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
2312 (Foo.prototype.async.method):
2314 * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
2315 (Foo.prototype.async.bar):
2317 * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
2318 (Foo.prototype.async.foo):
2320 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
2321 (Foo.prototype.async.foo):
2323 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
2324 (Foo.prototype.async.foo):
2326 * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
2327 (Foo.prototype.async.foo):
2329 * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
2330 (Foo.prototype.async.foo):
2332 * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
2333 (Foo.prototype.async.foo):
2335 * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
2338 * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
2339 (Foo.prototype.async.foo):
2341 * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
2342 (A.prototype.async.method):
2344 (B.prototype.async.method):
2346 * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
2347 (A.prototype.async.method):
2349 (B.prototype.async.method):
2351 * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
2355 * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
2359 * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
2362 * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
2366 * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
2368 * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
2370 * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
2373 * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
2376 * test262/test/language/statements/function/params-trailing-comma.js: Added.
2379 * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
2381 * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
2383 * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
2386 * test262/test/language/statements/generators/params-trailing-comma.js: Added.
2389 * test262/test262-Revision.txt:
2391 2016-08-23 Benjamin Poulain <bpoulain@apple.com>
2393 [JSC] Make Math.cos() and Math.sin() work with any argument type
2394 https://bugs.webkit.org/show_bug.cgi?id=161069
2396 Reviewed by Geoffrey Garen.
2398 * stress/arith-cos-on-various-types.js: Added.
2399 * stress/arith-sin-on-various-types.js: Added.
2401 2016-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
2403 [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
2404 https://bugs.webkit.org/show_bug.cgi?id=161097
2406 Reviewed by Keith Miller.
2410 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
2412 [ES6] Modules' `export default function/class` should be declaration
2413 https://bugs.webkit.org/show_bug.cgi?id=160499
2415 Reviewed by Saam Barati.
2417 Add several module tests. And flip the failed tests flags in test262.
2419 * modules/export-default-function-name-in-assignment-expression.js: Added.
2421 * modules/export-default-function-name-in-class-declaration.js: Added.
2422 * modules/export-default-function-name-in-function-declaration.js: Added.
2424 * modules/export-default-function-name-in-generator-declaration.js: Added.
2426 * stress/method-name.js: Added.
2429 (testSyntaxError.Hello.prototype.hello.hello):
2430 (testSyntaxError.Hello):
2431 (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
2432 (testSyntaxError.Hello.prototype.get hello):
2433 (testSyntaxError.Hello.prototype.set hello):
2436 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
2438 [ES6] Module should not allow HTML comments
2439 https://bugs.webkit.org/show_bug.cgi?id=161041
2441 Reviewed by Saam Barati.
2443 * modules/html-comments.js: Added.
2447 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2449 [DFG] Should not fixup AnyIntUse in 32_64
2450 https://bugs.webkit.org/show_bug.cgi?id=161029
2452 Reviewed by Saam Barati.
2454 * typeProfiler/int52-dfg.js: Added.
2457 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2459 Unreviewed, rolling out r204697
2460 https://bugs.webkit.org/show_bug.cgi?id=161029
2462 * typeProfiler/int52-dfg.js: Removed.
2464 * typeProfiler/number-filter-dfg.js: Removed.
2467 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
2469 [DFG] Should not fixup AnyIntUse in 32_64
2470 https://bugs.webkit.org/show_bug.cgi?id=161029
2472 Reviewed by Saam Barati.
2474 * typeProfiler/int52-dfg.js: Added.
2476 * typeProfiler/number-filter-dfg.js: Added.
2479 2016-08-19 Benjamin Poulain <bpoulain@apple.com>
2481 [JSC] ArithSqrt should work with any argument type
2482 https://bugs.webkit.org/show_bug.cgi?id=160954
2484 Reviewed by Saam Barati.
2486 * stress/arith-sqrt-on-various-types.js: Added.
2487 (let.validInputTypedTestCases.validInputTestCases.map):
2489 (opaqueAllTypesSqrt):
2491 (testSingleTypeCall):
2492 (opaqueSqrtForSideEffects):
2493 (testSideEffect.let.testObject.valueOf):
2496 (testCSE.let.testObject.valueOf):
2498 (testException.opaqueSqrtWithException):
2501 2016-08-19 Joseph Pecoraro <pecoraro@apple.com>
2503 Make custom Error properties (line, column, sourceURL) configurable and writable
2504 https://bugs.webkit.org/show_bug.cgi?id=160984
2505 <rdar://problem/27905979>
2507 Reviewed by Saam Barati.
2509 * stress/native-error-properties.js: Added.
2513 (checkEmptyErrorPropertiesDescriptors):
2514 (checkNonEmptyErrorPropertiesDescriptors):
2515 The spec only describes the "message" property, so
2516 ensure it has the right descriptor attributes.
2518 (checkErrorPropertiesWritable):
2519 Ensure common error property names are writable.
2520 In strict mode this would have thrown an exception
2521 if they were readonly.
2523 2016-08-18 Mark Lam <mark.lam@apple.com>
2525 ScopedArguments is using the wrong owner object for a write barrier.
2526 https://bugs.webkit.org/show_bug.cgi?id=160976
2527 <rdar://problem/27328506>
2529 Reviewed by Keith Miller.
2531 * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
2533 2016-08-17 JF Bastien <jfbastien@apple.com>
2535 We allow assignments to const variables when in a for-in/for-of loop
2536 https://bugs.webkit.org/show_bug.cgi?id=156673
2538 Reviewed by Filip Pizlo.
2540 * stress/for-in-of-const.js: Added.
2545 2016-08-17 Mark Lam <mark.lam@apple.com>
2547 Remove an invalid assertion in the DFG backend's GetById emitter.
2548 https://bugs.webkit.org/show_bug.cgi?id=160925
2549 <rdar://problem/27248961>
2551 Reviewed by Filip Pizlo.
2553 * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
2555 2016-08-16 Ryan Haddad <ryanhaddad@apple.com>
2557 Unreviewed, rolling out r204464.
2559 This is no longer needed after r204495.
2563 "Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
2564 https://bugs.webkit.org/show_bug.cgi?id=160662
2565 http://trac.webkit.org/changeset/204464
2567 2016-08-15 Ryan Haddad <ryanhaddad@apple.com>
2569 Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
2570 https://bugs.webkit.org/show_bug.cgi?id=160662
2572 Unreviewed test gardening.
2574 * mozilla/ecma/LexicalConventions/7.7.3.js:
2576 2016-08-14 Skachkov Oleksandr <gskachkov@gmail.com>
2578 [2016] Set correct status for test262 after implementation of Object.values&Object.entries
2579 https://bugs.webkit.org/show_bug.cgi?id=160844
2581 Reviewed by Saam Barati.
2583 Patch contains fix statuses of specs in the test262 test collection after implementation of
2584 Object.values and Object.entries functions. Also patch contains small fixes in tests of the
2585 tests for Object.values/entries functions.
2587 * stress/object-entries.js:
2588 (Object.getOwnPropertyDescriptor):
2589 * stress/object-values.js:
2590 (Object.getOwnPropertyDescriptor):
2593 2016-08-12 Saam Barati <sbarati@apple.com>
2595 Inline store loop for CopyRest in DFG and FTL for certain array modes
2596 https://bugs.webkit.org/show_bug.cgi?id=159612
2598 Reviewed by Filip Pizlo.
2600 * stress/rest-parameter-having-a-bad-time.js: Added.
2601 * stress/rest-parameter-many-arguments.js: Added.
2602 * stress/rest-parameter-various-types.js: Added.
2604 2016-08-12 Skachkov Oleksandr <gskachkov@gmail.com>
2606 [ES2016] Implement Object.entries
2607 https://bugs.webkit.org/show_bug.cgi?id=160412
2609 Reviewed by Saam Barati.
2611 Patch contains tests for Object.entries function and
2612 fix of wrong tests for Object.values function.
2614 * stress/object-entries.js:
2616 (string_appeared_here.forEach):
2617 (const.getInvokedFunctions.):
2618 (const.getInvokedFunctions):
2619 (Array.prototype.push):
2620 * stress/object-values.js:
2622 2016-08-11 Mark Lam <mark.lam@apple.com>
2624 OverridesHasInstance should not branch across register allocations.
2625 https://bugs.webkit.org/show_bug.cgi?id=160792
2626 <rdar://problem/27361778>
2628 Reviewed by Benjamin Poulain.
2630 * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
2632 2016-08-11 Mark Lam <mark.lam@apple.com>
2634 The jsc shell's Element host constructor should throw if it fails to construct an object.
2635 https://bugs.webkit.org/show_bug.cgi?id=160773
2636 <rdar://problem/27328608>
2638 Reviewed by Saam Barati.
2640 * stress/generational-opaque-roots.js:
2642 2016-08-11 Mark Lam <mark.lam@apple.com>
2644 Disallow synchronous sweeping for eden GCs.
2645 https://bugs.webkit.org/show_bug.cgi?id=160716
2647 Reviewed by Geoffrey Garen.
2649 * stress/eden-gc-with-retired-blocks.js: Added.
2650 - This test is just in case we add back support for eden GCs with synchronous
2651 sweeping in the future.
2653 2016-08-10 Michael Saboff <msaboff@apple.com>
2655 Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
2656 https://bugs.webkit.org/show_bug.cgi?id=160749
2658 Reviewed by Filip Pizlo.
2660 New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
2661 stubs to be generated and then throws exceptions for those stub to handle
2662 to verify that they are properly handled.
2664 * stress/regress-160749.js: Added.
2665 (testCachedGetByVal.):
2666 (testCachedGetByVal.get for):
2667 (testCachedGetByVal):
2668 (testCachedPutByVal.):
2669 (testCachedPutByVal.set for):
2670 (testCachedPutByVal):
2672 2016-08-10 Mark Lam <mark.lam@apple.com>
2674 DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
2675 https://bugs.webkit.org/show_bug.cgi?id=160755
2676 <rdar://problem/27488507>
2678 Reviewed by Filip Pizlo.
2680 * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
2682 2016-08-09 Skachkov Oleksandr <gskachkov@gmail.com>
2684 [ES2016] Implement Object.values
2685 https://bugs.webkit.org/show_bug.cgi?id=160410
2687 Reviewed by Saam Barati, Yusuke Suzuki.
2689 * stress/object-values.js: Added.
2691 (string_appeared_here.forEach):
2692 (const.getInvokedFunctions.):
2693 (const.getInvokedFunctions):
2694 (Array.prototype.push):
2696 2016-08-09 Saam Barati <sbarati@apple.com>
2698 JSBoundFunction should lazily generate its name string
2699 https://bugs.webkit.org/show_bug.cgi?id=160678
2700 <rdar://problem/27043194>
2702 Reviewed by Mark Lam.
2704 * stress/bound-function-lazy-name-generation.js: Added.
2710 2016-08-08 Mark Lam <mark.lam@apple.com>
2712 ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
2713 https://bugs.webkit.org/show_bug.cgi?id=160666
2715 Reviewed by Keith Miller.
2717 * stress/object-constructor-should-be-new-target-aware.js:
2719 2016-08-07 Yusuke Suzuki <utatane.tea@gmail.com>
2721 [ES6] Module namespace object should not allow unset IC
2722 https://bugs.webkit.org/show_bug.cgi?id=160553
2724 Reviewed by Saam Barati.
2726 * modules/namespace-object-get-property.js: Added.
2727 (import.as.ns.from.string_appeared_here.shouldThrow):
2728 * modules/namespace-object-has-property.js: Added.
2729 * modules/namespace-object-inline-caching.js: Added.
2730 (import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
2731 (shouldBe.lookup.lookup):
2733 * modules/namespace-object-inline-caching/a.js: Added.
2734 * modules/namespace-object-inline-caching/b.js: Added.
2735 * modules/namespace-object-try-get.js: Added.
2736 (import.as.ns.from.string_appeared_here.tryGetByIdText):
2737 (tryGetByIdTextStrict):
2738 * modules/namespace-object-typed-array-fast-path.js: Added.
2741 2016-08-05 Saam Barati <sbarati@apple.com>
2743 various math operations don't properly check for an exception after calling toNumber() on the lhs
2744 https://bugs.webkit.org/show_bug.cgi?id=160154
2746 Reviewed by Mark Lam.
2748 * stress/to-number-throws-correct-exception.js: Added.
2749 (test.let.test.runTest.):
2750 (test.let.test.runTest.get f):
2751 (test.let.test.runTest):
2755 (test2.runTest.get f):
2759 2016-08-05 Saam Barati <sbarati@apple.com>
2761 Assertion failure when accessing TDZ variable in catch through eval
2762 https://bugs.webkit.org/show_bug.cgi?id=160554
2764 Reviewed by Mark Lam and Keith Miller.
2766 * stress/catch-variables-under-tdz.js: Added.
2769 2016-08-04 Yusuke Suzuki <utatane.tea@gmail.com>
2771 [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
2772 https://bugs.webkit.org/show_bug.cgi?id=160549
2774 Reviewed by Saam Barati.
2776 * modules/namespace-object-symbol-iterator-name.js: Added.
2779 2016-08-04 Keith Miller <keith_miller@apple.com>
2781 ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
2782 https://bugs.webkit.org/show_bug.cgi?id=160562
2784 Reviewed by Mark Lam.
2786 * stress/instanceof-late-constant-folding.js: Added.
2791 2016-08-04 Caitlin Potter <caitp@igalia.com>
2793 [JSC] fix generator-syntax.js JSTest again after yield grammar fix
2794 https://bugs.webkit.org/show_bug.cgi?id=160550
2796 Reviewed by Yusuke Suzuki.
2798 * stress/generator-syntax.js:
2799 (testYieldBindingIdentifier):
2801 2016-08-03 Caitlin Potter <caitp@igalia.com>
2803 Clarify SyntaxErrors around yield and unskip tests
2804 https://bugs.webkit.org/show_bug.cgi?id=158460
2806 Reviewed by Saam Barati.
2808 Fix and unskip tests which erroneously asserted that `yield` is not a
2809 valid BindingIdentifier, and improve error message for YieldExpressions
2810 occuring in Arrow formal parameters.
2812 * stress/generator-syntax.js:
2813 * stress/yield-out-of-generator.js:
2815 2016-08-03 Filip Pizlo <fpizlo@apple.com>
2817 REGRESSION(r203368): broke some test262 tests
2818 https://bugs.webkit.org/show_bug.cgi?id=160479
2820 Reviewed by Mark Lam.
2822 Added a stress test for this case, since we don't always run test262.
2824 * stress/freeze-setter.js: Added.
2827 2016-08-03 Saam Barati <sbarati@apple.com>
2829 Implement nested rest destructuring w.r.t the ES7 spec
2830 https://bugs.webkit.org/show_bug.cgi?id=160423
2832 Reviewed by Filip Pizlo.
2834 * stress/destructuring-rest-element.js: Added.
2840 (fakeGen.return.Symbol.iterator):
2842 * stress/rest-elements.js:
2843 (testSyntaxError.String.raw):
2844 * stress/rest-parameter-is-destructuring.js: Added.
2851 2016-08-02 Saam Barati <sbarati@apple.com>
2853 Rename Changelog to ChangeLog
2855 Rubber stamped by Keith Miller.
2857 * Changelog: Removed.
2859 2016-08-02 Saam Barati <sbarati@apple.com>
2861 update a class extending null w.r.t the ES7 spec
2862 https://bugs.webkit.org/show_bug.cgi?id=160417
2864 Reviewed by Keith Miller.
2867 * stress/class-derived-from-null.js: Added.
2891 2016-08-01 Filip Pizlo <fpizlo@apple.com>
2893 Rationalize varargs stack overflow checks
2894 https://bugs.webkit.org/show_bug.cgi?id=160425
2896 Reviewed by Michael Saboff.
2898 * stress/arity-check-ftl-throw-more-args.js: Added.
2901 2016-08-01 Keith Miller <keith_miller@apple.com>
2903 We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
2904 https://bugs.webkit.org/show_bug.cgi?id=160372
2906 Rubber stamped by Geoffrey Garen.
2908 This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
2909 a new top level directory, JSTests. Having the tests in the Source directory
2910 was both confusing an inconvenient for people that just want to checkout the
2911 source code of WebKit. Since there is no other obvious place to put all the
2912 JavaScript tests a new top level directory seemed the most sensible.