1 2018-02-01 Keith Miller <keith_miller@apple.com>
3 Fix crashes due to mishandling custom sections.
4 https://bugs.webkit.org/show_bug.cgi?id=182404
5 <rdar://problem/36935863>
7 Reviewed by Saam Barati.
10 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
11 * wasm/js-api/validate.js:
14 2018-01-31 Saam Barati <sbarati@apple.com>
16 JSC incorrectly interpreting script, sets Global Property instead of Global Lexical variable (LiteralParser / JSONP path)
17 https://bugs.webkit.org/show_bug.cgi?id=182074
18 <rdar://problem/36846261>
22 * stress/jsonp-program-evaluate-path-must-consider-global-lexical-environment.js: Added.
28 2018-01-30 Yusuke Suzuki <utatane.tea@gmail.com>
30 Unreviewed, update test262 expects
31 https://bugs.webkit.org/show_bug.cgi?id=182232
35 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
37 [JSC] Implement trimStart and trimEnd
38 https://bugs.webkit.org/show_bug.cgi?id=182233
42 * stress/trim.js: Added.
48 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
50 [JSC] Relax line terminators in String to make JSON subset of JS
51 https://bugs.webkit.org/show_bug.cgi?id=182232
53 Reviewed by Keith Miller.
55 * ChakraCore/test/es5/Lex_u3.baseline-jsc:
56 * stress/relaxed-line-terminators-in-string.js: Added.
59 2018-01-29 Michael Saboff <msaboff@apple.com>
61 REGRESSION (r227341): DFG_ASSERT failure at JSC::DFG::AtTailAbstractState::forNode()
62 https://bugs.webkit.org/show_bug.cgi?id=182249
64 Reviewed by Keith Miller.
68 * stress/compare-clobber-untypeduse.js: Added.
70 2018-01-29 Matt Lewis <jlewis3@apple.com>
72 Unreviewed, rolling out r227725.
74 This caused internal failures.
78 "JSC Sampling Profiler: Detect tester and testee when sampling
80 https://bugs.webkit.org/show_bug.cgi?id=152729
81 https://trac.webkit.org/changeset/227725
83 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
85 JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT
86 https://bugs.webkit.org/show_bug.cgi?id=152729
88 Reviewed by Saam Barati.
90 * stress/sampling-profiler-regexp.js: Added.
91 (platformSupportsSamplingProfiler.test):
92 (platformSupportsSamplingProfiler.baz):
93 (platformSupportsSamplingProfiler):
95 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
97 [DFG][FTL] WeakMap#set should have DFG node
98 https://bugs.webkit.org/show_bug.cgi?id=180015
100 Reviewed by Saam Barati.
102 * stress/weakmap-set-change-get.js: Added.
105 * stress/weakmap-set-cse.js: Added.
108 * stress/weakset-add-change-get.js: Added.
110 * stress/weakset-add-cse.js: Added.
113 2018-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
115 DFG strength reduction fails to convert NumberToStringWithValidRadixConstant for 0 to constant '0'
116 https://bugs.webkit.org/show_bug.cgi?id=182213
118 Reviewed by Mark Lam.
120 * stress/int32-min-to-string.js: Added.
127 * stress/zero-to-string.js: Added.
135 2018-01-23 Yusuke Suzuki <utatane.tea@gmail.com>
137 Add more module scope related tests with code evaluation by string
138 https://bugs.webkit.org/show_bug.cgi?id=181983
140 Reviewed by Sam Weinig.
142 Add more module scope related tests. When the original tests are landed,
143 we do not have browser integration. This patch adds more module scope tests
144 with dynamically created script evaluation. We add tests with Function
145 constructor, direct eval, indirect eval, setTimeout, setInterval, and event handlers.
147 * modules/scopes-eval.js: Added.
152 2018-01-23 Filip Pizlo <fpizlo@apple.com>
154 Unreviewed, retire some microbenchmarks that are proportionately very slow. Benchmark running time should be proportional to their value. Microbenchmarks have little value, so they should be very fast.
156 * microbenchmarks/array-push-3.js: Removed.
157 * microbenchmarks/bigswitch-indirect-symbol-or-undefined.js: Removed.
158 * microbenchmarks/double-to-int32.js: Removed.
159 * microbenchmarks/fake-iterators-that-throw-when-finished.js: Removed.
160 * microbenchmarks/ftl-polymorphic-bitand.js: Removed.
161 * microbenchmarks/ftl-polymorphic-bitor.js: Removed.
162 * microbenchmarks/ftl-polymorphic-bitxor.js: Removed.
163 * microbenchmarks/ftl-polymorphic-lshift.js: Removed.
164 * microbenchmarks/ftl-polymorphic-rshift.js: Removed.
165 * microbenchmarks/ftl-polymorphic-sub.js: Removed.
166 * microbenchmarks/ftl-polymorphic-urshift.js: Removed.
167 * microbenchmarks/map-constant-key.js: Removed.
168 * microbenchmarks/nested-function-parsing.js: Removed.
169 * microbenchmarks/rest-parameter-allocation-elimination.js: Removed.
170 * microbenchmarks/spread-large-array.js: Removed.
171 * microbenchmarks/string-add-constant-folding.js: Removed.
172 * microbenchmarks/to-lower-case.js: Removed.
173 * microbenchmarks/undefined-property-access.js: Removed.
174 * slowMicrobenchmarks/array-push-3.js: Copied from JSTests/microbenchmarks/array-push-3.js.
175 * slowMicrobenchmarks/bigswitch-indirect-symbol-or-undefined.js: Copied from JSTests/microbenchmarks/bigswitch-indirect-symbol-or-undefined.js.
176 * slowMicrobenchmarks/double-to-int32.js: Copied from JSTests/microbenchmarks/double-to-int32.js.
177 * slowMicrobenchmarks/fake-iterators-that-throw-when-finished.js: Copied from JSTests/microbenchmarks/fake-iterators-that-throw-when-finished.js.
178 * slowMicrobenchmarks/ftl-polymorphic-bitand.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitand.js.
179 * slowMicrobenchmarks/ftl-polymorphic-bitor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitor.js.
180 * slowMicrobenchmarks/ftl-polymorphic-bitxor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitxor.js.
181 * slowMicrobenchmarks/ftl-polymorphic-lshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-lshift.js.
182 * slowMicrobenchmarks/ftl-polymorphic-rshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-rshift.js.
183 * slowMicrobenchmarks/ftl-polymorphic-sub.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-sub.js.
184 * slowMicrobenchmarks/ftl-polymorphic-urshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-urshift.js.
185 * slowMicrobenchmarks/map-constant-key.js: Copied from JSTests/microbenchmarks/map-constant-key.js.
186 * slowMicrobenchmarks/nested-function-parsing.js: Copied from JSTests/microbenchmarks/nested-function-parsing.js.
187 * slowMicrobenchmarks/rest-parameter-allocation-elimination.js: Copied from JSTests/microbenchmarks/rest-parameter-allocation-elimination.js.
188 * slowMicrobenchmarks/spread-large-array.js: Copied from JSTests/microbenchmarks/spread-large-array.js.
189 * slowMicrobenchmarks/string-add-constant-folding.js: Copied from JSTests/microbenchmarks/string-add-constant-folding.js.
190 * slowMicrobenchmarks/to-lower-case.js: Copied from JSTests/microbenchmarks/to-lower-case.js.
191 * slowMicrobenchmarks/undefined-property-access.js: Copied from JSTests/microbenchmarks/undefined-property-access.js.
193 2018-01-23 Robin Morisset <rmorisset@apple.com>
195 Update the argument count in DFGByteCodeParser::handleRecursiveCall
196 https://bugs.webkit.org/show_bug.cgi?id=181739
197 <rdar://problem/36627662>
199 Reviewed by Saam Barati.
201 * stress/recursive-tail-call-with-different-argument-count.js: Added.
205 2018-01-22 Michael Saboff <msaboff@apple.com>
207 DFG abstract interpreter needs to properly model effects of some Math ops
208 https://bugs.webkit.org/show_bug.cgi?id=181886
210 Reviewed by Saam Barati.
214 * stress/arith-nodes-abstract-interpreter-untypeduse.js: Added.
217 2018-01-20 Caio Lima <ticaiolima@gmail.com>
219 [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
220 https://bugs.webkit.org/show_bug.cgi?id=181182
222 Reviewed by Darin Adler.
224 * stress/big-int-prototype-to-string-cast-overflow.js: Added.
225 * stress/big-int-prototype-to-string-exception.js: Added.
226 * stress/big-int-prototype-to-string-wrong-values.js: Added.
227 * stress/number-prototype-to-string-cast-overflow.js: Added.
228 * stress/number-prototype-to-string-exception.js: Added.
229 * stress/number-prototype-to-string-wrong-values.js: Added.
231 2018-01-19 Ryan Haddad <ryanhaddad@apple.com>
233 Disable Atomics when SharedArrayBuffer isn’t enabled
234 https://bugs.webkit.org/show_bug.cgi?id=181572
236 Unreviewed test gardening.
238 * test262.yaml: Skip tests that fail after this change.
240 2018-01-19 Saam Barati <sbarati@apple.com>
242 Kill ArithNegate's ArithProfile assert inside BytecodeParser
243 https://bugs.webkit.org/show_bug.cgi?id=181877
244 <rdar://problem/36630552>
246 Reviewed by Mark Lam.
248 * stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js: Added.
254 (i.try.runNearStackLimit):
257 2018-01-19 Saam Barati <sbarati@apple.com>
259 Spread's effects are modeled incorrectly both in AI and in Clobberize
260 https://bugs.webkit.org/show_bug.cgi?id=181867
261 <rdar://problem/36290415>
263 Reviewed by Michael Saboff.
265 * stress/ai-needs-to-model-spreads-effects.js: Added.
266 (try.p.Symbol.iterator):
269 * stress/clobberize-needs-to-model-spread-effects.js: Added.
274 2018-01-19 Yusuke Suzuki <utatane.tea@gmail.com>
276 Unreviewed, reduce count of iteration to fix timing out debug JSC test
277 https://bugs.webkit.org/show_bug.cgi?id=181535
279 * stress/inserted-recovery-with-set-last-index.js:
281 2018-01-17 Yusuke Suzuki <utatane.tea@gmail.com>
283 [DFG][FTL] Introduce PhantomNewRegexp and RegExpExecNonGlobalOrSticky
284 https://bugs.webkit.org/show_bug.cgi?id=181535
286 Reviewed by Saam Barati.
288 * stress/inserted-recovery-with-set-last-index.js: Added.
291 * stress/materialize-regexp-at-osr-exit.js: Added.
294 * stress/materialize-regexp-cyclic-regexp-at-osr-exit.js: Added.
297 * stress/materialize-regexp-cyclic-regexp.js: Added.
301 * stress/materialize-regexp-cyclic.js: Added.
305 * stress/materialize-regexp-referenced-from-phantom-regexp-cyclic.js: Added.
309 * stress/materialize-regexp-referenced-from-phantom-regexp.js: Added.
313 * stress/materialize-regexp.js: Added.
316 * stress/phantom-regexp-regexp-exec.js: Added.
319 * stress/phantom-regexp-string-match.js: Added.
322 * stress/regexp-last-index-sinking.js: Added.
326 2018-01-17 Saam Barati <sbarati@apple.com>
328 Disable Atomics when SharedArrayBuffer isn’t enabled
329 https://bugs.webkit.org/show_bug.cgi?id=181572
330 <rdar://problem/36553206>
332 Reviewed by Michael Saboff.
334 * stress/isLockFree.js:
336 2018-01-17 Saam Barati <sbarati@apple.com>
338 DFG::Node::convertToConstant needs to clear the varargs flags
339 https://bugs.webkit.org/show_bug.cgi?id=181697
340 <rdar://problem/36497332>
342 Reviewed by Yusuke Suzuki.
344 * stress/dfg-node-convert-to-constant-must-clear-varargs-flags.js: Added.
349 2018-01-16 Ryan Haddad <ryanhaddad@apple.com>
351 Unreviewed, rolling out r226937.
353 Tests added with this change are failing due to a missing
358 "[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast
360 https://bugs.webkit.org/show_bug.cgi?id=181182
361 https://trac.webkit.org/changeset/226937
363 2018-01-13 Caio Lima <ticaiolima@gmail.com>
365 [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
366 https://bugs.webkit.org/show_bug.cgi?id=181182
368 Reviewed by Darin Adler.
371 * stress/big-int-constructor.js:
372 * stress/big-int-prototype-to-string-cast-overflow.js: Added.
374 (assertThrowRangeError):
375 * stress/number-prototype-to-string-cast-overflow.js: Added.
377 (assertThrowRangeError):
379 2018-01-12 Saam Barati <sbarati@apple.com>
381 CheckStructure can be incorrectly subsumed by CheckStructureOrEmpty
382 https://bugs.webkit.org/show_bug.cgi?id=181177
383 <rdar://problem/36205704>
385 Reviewed by Yusuke Suzuki.
387 * stress/check-structure-ir-ensures-empty-does-not-flow-through.js: Added.
388 (runNearStackLimit.t):
393 2018-01-12 Saam Barati <sbarati@apple.com>
395 Each variant of a polymorphic inlined call should be exitOK at the top of the block
396 https://bugs.webkit.org/show_bug.cgi?id=181562
397 <rdar://problem/36445624>
399 Reviewed by Yusuke Suzuki.
401 * stress/each-block-at-top-of-polymorphic-call-inlining-should-be-exitOK.js: Added.
405 2018-01-11 Saam Barati <sbarati@apple.com>
407 When inserting Unreachable in byte code parser we need to flush all the right things
408 https://bugs.webkit.org/show_bug.cgi?id=181509
409 <rdar://problem/36423110>
411 Reviewed by Mark Lam.
413 * stress/proper-flushing-when-we-insert-unreachable-after-force-exit-in-bytecode-parser.js: Added.
415 2018-01-11 Saam Barati <sbarati@apple.com>
417 JITMathIC code in the FTL is wrong when code gets duplicated
418 https://bugs.webkit.org/show_bug.cgi?id=181525
419 <rdar://problem/36351993>
421 Reviewed by Michael Saboff and Keith Miller.
423 * stress/allow-math-ic-b3-code-duplication.js: Added.
425 2018-01-11 Saam Barati <sbarati@apple.com>
427 Our for-in caching is wrong when we add indexed properties on things in the prototype chain
428 https://bugs.webkit.org/show_bug.cgi?id=181508
430 Reviewed by Yusuke Suzuki.
432 * stress/for-in-prototype-with-indexed-properties-should-prevent-caching.js: Added.
439 2018-01-09 Mark Lam <mark.lam@apple.com>
441 ASSERTION FAILED: pair.second->m_type & PropertyNode::Getter
442 https://bugs.webkit.org/show_bug.cgi?id=181388
443 <rdar://problem/36349351>
445 Reviewed by Saam Barati.
447 * stress/regress-181388.js: Added.
449 2018-01-08 JF Bastien <jfbastien@apple.com>
451 WebAssembly: mask indexed accesses to Table
452 https://bugs.webkit.org/show_bug.cgi?id=181412
453 <rdar://problem/36363236>
455 Reviewed by Saam Barati.
457 Update error messages.
459 * wasm/js-api/table.js:
460 (assert.throws.WebAssembly.Table.prototype.grow):
462 2018-01-08 Ryan Haddad <ryanhaddad@apple.com>
464 Disable SharedArrayBuffer tests missed in r226386.
465 https://bugs.webkit.org/show_bug.cgi?id=181266
467 Unreviewed test gardening.
471 2018-01-06 Yusuke Suzuki <utatane.tea@gmail.com>
473 Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
474 https://bugs.webkit.org/show_bug.cgi?id=181321
476 Reviewed by Saam Barati.
478 * stress/bound-function-does-not-have-caller-and-arguments.js: Added.
483 2018-01-05 Ryan Haddad <ryanhaddad@apple.com>
485 Unreviewed, attempt to fix test262 after r226386.
489 2018-01-04 Yusuke Suzuki <utatane.tea@gmail.com>
491 [DFG] Define defs for MapSet/SetAdd to participate in CSE
492 https://bugs.webkit.org/show_bug.cgi?id=179911
494 Reviewed by Saam Barati.
496 In addition to these tests, map-set-cse.js and set-add-cse.js work.
498 * stress/map-set-change-get.js: Added.
501 * stress/map-set-create-bucket.js: Added.
504 * stress/set-add-create-bucket.js: Added.
507 2018-01-03 Michael Saboff <msaboff@apple.com>
509 Disable SharedArrayBuffers from Web API
510 https://bugs.webkit.org/show_bug.cgi?id=181266
512 Reviewed by Saam Barati.
514 Disabled SharedArrayBuffer tests.
516 * stress/SharedArrayBuffer-opt.js:
517 * stress/SharedArrayBuffer.js:
518 * stress/array-buffer-byte-length.js:
519 * stress/atomics-add-uint32.js:
520 * stress/atomics-known-int-use.js:
521 * stress/atomics-neg-zero.js:
522 * stress/atomics-store-return.js:
523 * stress/lars-sab-workers.js:
524 * stress/regress-159779-1.js:
525 * stress/regress-159779-2.js:
526 * stress/regress-170473.js:
529 2018-01-03 Caio Lima <ticaiolima@gmail.com>
531 [ESNext][BigInt] Failing test stress/big-int-constructor-oom.js into MIPS
532 https://bugs.webkit.org/show_bug.cgi?id=181258
534 Reviewed by Antonio Gomes.
536 * stress/big-int-constructor-gc.js:
537 * stress/big-int-constructor-oom.js:
539 2018-01-03 Robin Morisset <rmorisset@apple.com>
541 Inlining of a function that ends in op_unreachable crashes
542 https://bugs.webkit.org/show_bug.cgi?id=181027
544 Reviewed by Filip Pizlo.
546 * stress/inlining-unreachable.js: Added.
551 2018-01-02 Saam Barati <sbarati@apple.com>
553 Incorrect assertion inside AccessCase
554 https://bugs.webkit.org/show_bug.cgi?id=181200
555 <rdar://problem/35494754>
557 Reviewed by Yusuke Suzuki.
559 * stress/setter-same-base-and-rhs-invalid-assertion-inside-access-case.js: Added.
564 2018-01-02 Caio Lima <ticaiolima@gmail.com>
566 [ESNext][BigInt] Implement BigIntConstructor and BigIntPrototype
567 https://bugs.webkit.org/show_bug.cgi?id=175359
569 Reviewed by Yusuke Suzuki.
572 * stress/big-int-as-key.js: Added.
573 * stress/big-int-constructor-gc.js: Added.
574 * stress/big-int-constructor-oom.js: Added.
575 * stress/big-int-constructor-properties.js: Added.
576 * stress/big-int-constructor-prototype-prop-descriptor.js: Added.
577 * stress/big-int-constructor-prototype.js: Added.
578 * stress/big-int-constructor.js: Added.
579 * stress/big-int-function-apply.js:
580 * stress/big-int-length.js: Added.
581 * stress/big-int-prop-descriptor.js: Added.
582 * stress/big-int-proto-constructor.js: Added.
583 * stress/big-int-proto-name.js: Added.
584 * stress/big-int-prototype-properties.js: Added.
585 * stress/big-int-prototype-proto.js: Added.
586 * stress/big-int-prototype-value-of.js: Added.
587 * stress/big-int-prototype-symbol-to-string-tag.js: Added.
588 * stress/big-int-prototype-to-string-apply.js: Added.
589 * stress/big-int-to-object.js: Added.
590 * stress/big-int-to-string.js: Added.
592 2017-12-28 Saam Barati <sbarati@apple.com>
594 Assertion used to determine if something is an async generator is wrong
595 https://bugs.webkit.org/show_bug.cgi?id=181168
596 <rdar://problem/35640560>
598 Reviewed by Yusuke Suzuki.
600 * stress/async-generator-assertion.js: Added.
602 2017-12-21 Guillaume Emont <guijemont@igalia.com>
604 Skip stress/splay-flash-access tests on memory limited platforms
605 https://bugs.webkit.org/show_bug.cgi?id=181086
607 Reviewed by Carlos Alberto Lopez Perez.
609 These tests use about 185M of memory, and occasionally get OOM-killed
610 on memory limited platforms.
612 * stress/splay-flash-access-1ms.js:
613 * stress/splay-flash-access.js:
615 2017-12-21 Guillaume Emont <guijemont@igalia.com>
617 Skip slow jsc tests on embedded platforms
618 https://bugs.webkit.org/show_bug.cgi?id=180937
620 Reviewed by Carlos Alberto Lopez Perez.
622 The tests typeProfiler/deltablue-for-of.js and
623 typeProfiler/getter-richards.js take a very long time in the
624 ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
625 thus always timeout. They should be skipped on these platforms.
627 * typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
628 * typeProfiler/getter-richards.js: Skip on arm*/mips.
630 2017-12-19 Yusuke Suzuki <utatane.tea@gmail.com>
632 [JSC] Do not check isValid() in op_new_regexp
633 https://bugs.webkit.org/show_bug.cgi?id=180970
635 Reviewed by Saam Barati.
637 * stress/regexp-syntax-error-invalid-flags.js: Added.
640 2017-12-18 Guillaume Emont <guijemont@igalia.com>
642 Skip stress/call-apply-exponential-bytecode-size.js unless x86-64 or arm64
643 https://bugs.webkit.org/show_bug.cgi?id=180712
645 Reviewed by Michael Catanzaro.
647 stress/call-apply-exponential-bytecode-size.js crashes if the
648 ExecutableAllocator's fixedExecutableMemoryPoolSize is less than 64
649 MB. Currently it is 64 MB or more only on x86-64 and arm64, so we
650 should skip the test on other platforms.
652 * stress/call-apply-exponential-bytecode-size.js:
654 2017-12-17 Yusuke Suzuki <utatane.tea@gmail.com>
656 [FTL] NewArrayBuffer should be sinked if it is only used for spreading
657 https://bugs.webkit.org/show_bug.cgi?id=179762
659 Reviewed by Saam Barati.
661 * stress/call-varargs-double-new-array-buffer.js: Added.
665 * stress/call-varargs-spread-new-array-buffer.js: Added.
669 * stress/call-varargs-spread-new-array-buffer2.js: Added.
673 * stress/forward-varargs-double-new-array-buffer.js: Added.
679 * stress/new-array-buffer-sinking-osrexit.js: Added.
682 * stress/new-array-with-spread-double-new-array-buffer.js: Added.
685 * stress/new-array-with-spread-with-phantom-new-array-buffer.js: Added.
689 * stress/phantom-new-array-buffer-forward-varargs.js: Added.
702 * stress/phantom-new-array-buffer-forward-varargs2.js: Added.
708 * stress/phantom-new-array-buffer-osr-exit.js: Added.
715 2017-12-14 Saam Barati <sbarati@apple.com>
717 The CleanUp after LICM is erroneously removing a Check
718 https://bugs.webkit.org/show_bug.cgi?id=180852
719 <rdar://problem/36063494>
721 Reviewed by Filip Pizlo.
723 * stress/dont-run-cleanup-after-licm.js: Added.
725 2017-12-14 Michael Saboff <msaboff@apple.com>
727 REGRESSION (r225695): Repro crash on yahoo login page
728 https://bugs.webkit.org/show_bug.cgi?id=180761
730 Reviewed by JF Bastien.
734 * stress/regress-180761.js: Added.
736 2017-12-13 Keith Miller <keith_miller@apple.com>
738 JSObjects should have a mask for loading indexed properties
739 https://bugs.webkit.org/show_bug.cgi?id=180768
741 Reviewed by Mark Lam.
743 * stress/int16-put-by-val-in-and-out-of-bounds.js:
746 2017-12-13 Saam Barati <sbarati@apple.com>
748 Arrow functions need their own structure because they have different properties than sloppy functions
749 https://bugs.webkit.org/show_bug.cgi?id=180779
750 <rdar://problem/35814591>
752 Reviewed by Mark Lam.
754 * stress/arrow-function-needs-its-own-structure.js: Added.
760 2017-12-13 Saam Barati <sbarati@apple.com>
762 Fix how JSFunction handles "caller" and "arguments" for functions that don't have those properties
763 https://bugs.webkit.org/show_bug.cgi?id=163579
764 <rdar://problem/35455798>
766 Reviewed by Mark Lam.
768 * stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Added.
777 2017-12-13 Saam Barati <sbarati@apple.com>
779 TypeCheckHoistingPhase needs to emit a CheckStructureOrEmpty if it's doing it for |this|
780 https://bugs.webkit.org/show_bug.cgi?id=180734
781 <rdar://problem/35640547>
783 Reviewed by Yusuke Suzuki.
785 * stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js: Added.
786 (__isPropertyOfType):
795 2017-12-12 Saam Barati <sbarati@apple.com>
797 We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize
798 https://bugs.webkit.org/show_bug.cgi?id=180725
799 <rdar://problem/35970511>
801 Reviewed by Michael Saboff.
803 * stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added.
808 2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com>
810 [JSC] Implement optimized WeakMap and WeakSet
811 https://bugs.webkit.org/show_bug.cgi?id=179929
813 Reviewed by Saam Barati.
815 * microbenchmarks/weak-map-key.js:
816 * microbenchmarks/weak-set-key.js: Copied from JSTests/microbenchmarks/weak-map-key.js.
819 (let.start.Date.now):
820 * stress/basic-weakmap.js: Added.
823 * stress/basic-weakset.js: Added.
826 * stress/weakmap-cse-set-break.js: Added.
829 * stress/weakmap-cse.js: Added.
832 * stress/weakmap-gc.js: Added.
834 * stress/weakset-cse-add-break.js: Added.
837 * stress/weakset-cse.js: Added.
840 * stress/weakset-gc.js: Added.
845 2017-12-12 Saam Barati <sbarati@apple.com>
847 ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices
848 https://bugs.webkit.org/show_bug.cgi?id=180723
849 <rdar://problem/35859726>
851 Reviewed by JF Bastien.
853 * stress/get-my-argument-by-val-constant-folding.js: Added.
857 2017-12-12 Caio Lima <ticaiolima@gmail.com>
859 [ESNext][BigInt] Implement BigInt literals and JSBigInt
860 https://bugs.webkit.org/show_bug.cgi?id=179000
862 Reviewed by Darin Adler and Yusuke Suzuki.
864 * bigIntTests.yaml: Added.
865 * stress/big-int-literal-line-terminator.js: Added.
866 * stress/big-int-literals.js: Added.
867 * stress/big-int-operations-error.js: Added.
868 * stress/big-int-type-of.js: Added.
869 * stress/big-int-white-space-trailing-leading.js: Added.
870 * stress/big-int-function-apply.js: Added.
872 2017-12-11 Saam Barati <sbarati@apple.com>
874 We need to disableCaching() in ErrorInstance when we materialize properties
875 https://bugs.webkit.org/show_bug.cgi?id=180343
876 <rdar://problem/35833002>
878 Reviewed by Mark Lam.
880 * stress/disable-caching-when-lazy-materializing-error-property-on-put.js: Added.
884 (storeToStackAlreadyMaterialized):
886 2017-12-05 JF Bastien <jfbastien@apple.com>
888 WebAssembly: don't eagerly checksum
889 https://bugs.webkit.org/show_bug.cgi?id=180441
890 <rdar://problem/35156628>
892 Reviewed by Saam Barati.
894 Checksum is now disabled, so tests only have <?> as the module
897 * wasm/function-tests/nameSection.js:
898 * wasm/function-tests/stack-overflow.js:
899 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
900 (assertOverflows.assertThrows):
902 * wasm/function-tests/stack-trace.js:
904 2017-12-04 JF Bastien <jfbastien@apple.com>
906 Proxy all functions, except the $ objects
907 https://bugs.webkit.org/show_bug.cgi?id=180375
909 Reviewed by Saam Barati.
911 It looks like this test may have broken some executions because I
912 call some internal objects. Explicitly ignore objects whose name
913 starts with "$" because it's a bad idea anyways.
915 * stress/proxy-all-the-parameters.js:
919 2017-12-04 Saam Barati <sbarati@apple.com>
921 We need to leave room on the top of the stack for the FTL TailCall slow path so it doesn't overwrite things we want to retrieve when doing a stack walk when throwing an exception
922 https://bugs.webkit.org/show_bug.cgi?id=180366
923 <rdar://problem/35685877>
925 Reviewed by Michael Saboff.
927 * stress/ftl-tail-call-throw-exception-from-slow-path-recover-stack-values.js: Added.
929 (test1.base.getParentStaticValue):
931 (test1.__v_24888.prototype.set prop):
933 (test2.base.getParentStaticValue):
935 (test2.__v_24888.prototype.set prop):
939 2017-12-01 JF Bastien <jfbastien@apple.com>
941 Try proxying all function arguments
942 https://bugs.webkit.org/show_bug.cgi?id=180306
944 Reviewed by Saam Barati.
946 * stress/proxy-all-the-parameters.js: Added.
953 (let.o.of.getObjects.let.f.of.getFunctions.catch):
955 2017-12-01 JF Bastien <jfbastien@apple.com>
957 JavaScriptCore: missing exception checks in Math functions that take more than one argument
958 https://bugs.webkit.org/show_bug.cgi?id=180297
959 <rdar://problem/35745556>
961 Reviewed by Mark Lam.
963 * stress/math-exceptions.js: Added.
967 2017-12-01 JF Bastien <jfbastien@apple.com>
969 JavaScriptCore: add test for weird class static getters
970 https://bugs.webkit.org/show_bug.cgi?id=180281
971 <rdar://problem/35592139>
973 Reviewed by Mark Lam.
975 I fixed a bug for it in r224927 and didn't add a test. Do so.
977 * stress/class-static-get-weird.js: Added.
978 (c.prototype.get name):
980 (c.prototype.get arguments):
981 (c.prototype.get caller):
982 (c.prototype.get length):
984 2017-12-01 Saam Barati <sbarati@apple.com>
986 Having a bad time needs to handle ArrayClass indexing type as well
987 https://bugs.webkit.org/show_bug.cgi?id=180274
988 <rdar://problem/35667869>
990 Reviewed by Keith Miller and Mark Lam.
992 * stress/array-prototype-slow-put-having-a-bad-time-2.js: Added.
994 * stress/array-prototype-slow-put-having-a-bad-time.js: Added.
997 2017-12-01 JF Bastien <jfbastien@apple.com>
999 WebAssembly: restore cached stack limit after out-call
1000 https://bugs.webkit.org/show_bug.cgi?id=179106
1001 <rdar://problem/35337525>
1003 Reviewed by Saam Barati.
1005 * wasm/function-tests/double-instance.js: Added.
1007 (const.imp.get callAnother):
1009 2017-11-30 JF Bastien <jfbastien@apple.com>
1011 WebAssembly: improve stack trace
1012 https://bugs.webkit.org/show_bug.cgi?id=179343
1014 Reviewed by Saam Barati.
1016 Update the tests to follow the new format. Notably, SHA1 module
1017 hash is now included in traces, and stubs are properly identified.
1019 * wasm/assert.js: Add an assertion which matches regular expressions.
1020 * wasm/function-tests/nameSection.js:
1021 * wasm/function-tests/stack-overflow.js:
1022 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
1023 (assertOverflows.assertThrows.wasm.1):
1024 (assertOverflows.assertThrows.wasm.0):
1025 (assertOverflows.assertThrows):
1027 * wasm/function-tests/stack-trace.js:
1028 (import.Builder.from.string_appeared_here.assert): Deleted.
1029 * wasm/function-tests/trap-after-cross-instance-call.js:
1030 (wasmFrameCountFromError):
1031 * wasm/function-tests/trap-load-2.js:
1032 (wasmFrameCountFromError):
1033 * wasm/function-tests/trap-load.js:
1034 (wasmFrameCountFromError):
1036 2017-11-30 Mark Lam <mark.lam@apple.com>
1038 jsc shell's flashHeapAccess() should not do JS work after releasing access to the heap.
1039 https://bugs.webkit.org/show_bug.cgi?id=180219
1040 <rdar://problem/35696536>
1042 Reviewed by Filip Pizlo.
1044 * stress/regress-180219.js: Added.
1046 2017-11-30 Yusuke Suzuki <utatane.tea@gmail.com>
1048 [DFG][FTL] operationHasIndexedProperty does not consider negative int32_t
1049 https://bugs.webkit.org/show_bug.cgi?id=180190
1051 Reviewed by Mark Lam.
1053 * stress/operation-in-may-have-negative-int32-array-storage.js: Added.
1056 * stress/operation-in-may-have-negative-int32-contiguous-array.js: Added.
1059 * stress/operation-in-may-have-negative-int32-double-array.js: Added.
1062 * stress/operation-in-may-have-negative-int32-generic-array.js: Added.
1065 * stress/operation-in-may-have-negative-int32-int32-array.js: Added.
1068 * stress/operation-in-may-have-negative-int32.js: Added.
1071 * stress/operation-in-negative-int32-cast.js: Added.
1075 2017-11-28 JF Bastien <jfbastien@apple.com>
1077 Strict and sloppy functions shouldn't share structure
1078 https://bugs.webkit.org/show_bug.cgi?id=180103
1079 <rdar://problem/35667847>
1081 Reviewed by Saam Barati.
1083 * stress/get-by-id-strict-arguments.js: Added. Used to not throw
1084 because the IC was wrong.
1089 * stress/get-by-id-strict-callee.js: Added. Not strictly necessary
1090 in this patch, but may as well test odd strict mode corner cases.
1094 * stress/get-by-id-strict-caller.js: Added. Also IC'd wrong.
1099 * stress/get-by-id-strict-nested-arguments-2.js: Added. Same as
1100 next file, but with invalidation of the FunctionExecutable's
1101 singletonFunction() to hit SpeculativeJIT::compileNewFunction's
1108 * stress/get-by-id-strict-nested-arguments.js: Added. Make sure
1109 strict nesting works correctly.
1113 * stress/strict-function-structure.js: Added. The test used to
1114 assert in objectProtoFuncHasOwnProperty.
1118 * stress/strict-nested-function-structure.js: Added. Nesting.
1124 2017-11-29 Robin Morisset <rmorisset@apple.com>
1126 The recursive tail call optimisation is wrong on closures
1127 https://bugs.webkit.org/show_bug.cgi?id=179835
1129 Reviewed by Saam Barati.
1131 * stress/closure-recursive-tail-call.js: Added.
1134 2017-11-27 JF Bastien <jfbastien@apple.com>
1136 JavaScript rest function parameter with negative index leads to bad DFG abstract interpretation
1137 https://bugs.webkit.org/show_bug.cgi?id=180051
1138 <rdar://problem/35614371>
1140 Reviewed by Saam Barati.
1142 * stress/rest-parameter-negative.js: Added.
1148 2017-11-27 Saam Barati <sbarati@apple.com>
1150 Spread can escape when CreateRest does not
1151 https://bugs.webkit.org/show_bug.cgi?id=180057
1152 <rdar://problem/35676119>
1154 Reviewed by JF Bastien.
1156 * stress/spread-escapes-but-create-rest-does-not.js: Added.
1162 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
1164 [DFG] Add NormalizeMapKey DFG IR
1165 https://bugs.webkit.org/show_bug.cgi?id=179912
1167 Reviewed by Saam Barati.
1169 * stress/map-untyped-normalize-cse.js: Added.
1172 * stress/map-untyped-normalize.js: Added.
1175 * stress/set-untyped-normalize-cse.js: Added.
1177 (set return.set has.set has):
1178 * stress/set-untyped-normalize.js: Added.
1180 (set return.set has):
1182 2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
1184 [FTL] Support DeleteById and DeleteByVal
1185 https://bugs.webkit.org/show_bug.cgi?id=180022
1187 Reviewed by Saam Barati.
1189 * stress/delete-by-id.js: Added.
1193 * stress/delete-by-val-ftl.js: Added.
1198 2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
1200 [DFG] Introduce {Set,Map,WeakMap}Fields
1201 https://bugs.webkit.org/show_bug.cgi?id=179925
1203 Reviewed by Saam Barati.
1205 * stress/map-set-clobber-map-get.js: Added.
1208 * stress/map-set-does-not-clobber-set-has.js: Added.
1210 * stress/map-set-does-not-clobber-weak-map-get.js: Added.
1213 * stress/set-add-clobber-set-has.js: Added.
1215 * stress/set-add-does-not-clobber-map-get.js: Added.
1218 2017-11-24 Mark Lam <mark.lam@apple.com>
1220 Move unsafe jsc shell test functions to the $vm object.
1221 https://bugs.webkit.org/show_bug.cgi?id=179980
1223 Reviewed by Yusuke Suzuki.
1225 * controlFlowProfiler/driver/driver.js:
1226 * controlFlowProfiler/execution-count.js:
1227 * controlFlowProfiler/if-statement.js:
1228 * controlFlowProfiler/loop-statements.js:
1229 * controlFlowProfiler/switch-statements.js:
1230 * controlFlowProfiler/test-jit.js:
1231 * exceptionFuzz/3d-cube.js:
1232 * exceptionFuzz/date-format-xparb.js:
1233 * exceptionFuzz/earley-boyer.js:
1234 * heapProfiler/basic-edges.js:
1235 * heapProfiler/property-edge-types.js:
1236 * microbenchmarks/try-get-by-id-basic.js:
1237 * microbenchmarks/try-get-by-id-polymorphic.js:
1238 * modules/namespace-object-try-get.js:
1239 * stress/argument-count-bytecode.js:
1240 * stress/argument-intrinsic-basic.js:
1241 * stress/argument-intrinsic-inlining-use-caller-arg.js:
1242 * stress/argument-intrinsic-inlining-with-result-escape.js:
1243 * stress/argument-intrinsic-inlining-with-vararg-with-enough-arguments.js:
1244 * stress/argument-intrinsic-inlining-with-vararg.js:
1245 * stress/argument-intrinsic-nested-inlining.js:
1246 * stress/argument-intrinsic-not-convert-to-get-argument.js:
1247 * stress/argument-intrinsic-with-stack-write.js:
1248 * stress/arity-mismatch-get-argument.js:
1249 * stress/array-message-passing.js:
1250 * stress/array-push-with-force-exit.js:
1251 * stress/check-dom-with-signature.js:
1252 * stress/check-sub-class.js:
1253 * stress/compare-eq-incomplete-profile.js:
1254 * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js:
1255 * stress/do-eval-virtual-call-correctly.js:
1256 * stress/dom-jit-with-poly-proto.js:
1257 * stress/domjit-exception-ic.js:
1258 * stress/domjit-exception.js:
1259 * stress/domjit-getter-complex-with-incorrect-object.js:
1260 * stress/domjit-getter-complex.js:
1261 * stress/domjit-getter-poly.js:
1262 * stress/domjit-getter-proto.js:
1263 * stress/domjit-getter-super-poly.js:
1264 * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js:
1265 * stress/domjit-getter-type-check.js:
1266 * stress/domjit-getter.js:
1267 * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js:
1268 * stress/for-in-proxy-target-changed-structure.js:
1269 * stress/for-in-proxy.js:
1270 * stress/generational-opaque-roots.js:
1271 * stress/global-const-redeclaration-setting-2.js:
1272 * stress/global-const-redeclaration-setting-3.js:
1273 * stress/global-const-redeclaration-setting-4.js:
1274 * stress/global-const-redeclaration-setting-5.js:
1275 * stress/global-const-redeclaration-setting.js:
1276 * stress/import-basic.js:
1277 * stress/import-from-eval.js:
1278 * stress/import-reject-with-exception.js:
1279 * stress/import-syntax.js:
1280 * stress/impure-get-own-property-slot-inline-cache.js:
1281 * stress/is-constructor.js:
1282 * stress/istypedarrayview-intrinsic.js:
1283 * stress/jsc-setImpureGetterDelegate-on-bad-type.js:
1284 * stress/jsc-test-functions-should-be-more-robust.js:
1285 * stress/object-toString-with-proxy.js:
1286 * stress/poly-proto-custom-value-and-accessor.js:
1287 * stress/proxy-inline-cache.js:
1288 * stress/re-execute-error-module.js:
1289 * stress/regress-150532.js:
1290 * stress/regress-156992.js:
1291 * stress/regress-179619.js:
1292 * stress/resources/shadow-chicken-support.js:
1293 * stress/runtime-array.js:
1294 * stress/sampling-profiler-microtasks.js:
1295 * stress/shadow-chicken-enabled.js:
1296 * stress/spread-correct-global-object-on-exception.js:
1297 * stress/super-get-by-id.js:
1298 * stress/tailCallForwardArguments.js:
1299 * stress/to-object-intrinsic-boolean-edge.js:
1300 * stress/to-object-intrinsic-null-or-undefined-edge.js:
1301 * stress/to-object-intrinsic-number-edge.js:
1302 * stress/to-object-intrinsic-object-edge.js:
1303 * stress/to-object-intrinsic-string-edge.js:
1304 * stress/to-object-intrinsic-symbol-edge.js:
1305 * stress/to-object-intrinsic.js:
1306 * stress/try-catch-custom-getter-as-get-by-id.js:
1307 * stress/try-get-by-id-poly-proto.js:
1308 * stress/try-get-by-id-should-spill-registers-dfg.js:
1309 * stress/try-get-by-id.js:
1310 * typeProfiler/arrow-functions.js:
1311 * typeProfiler/basic.js:
1312 * typeProfiler/captured.js:
1313 * typeProfiler/classes.js:
1314 * typeProfiler/dfg-jit-optimizations.js:
1315 * typeProfiler/dictionary-mode.js:
1316 * typeProfiler/es6-block-scoping.js:
1317 * typeProfiler/es6-classes.js:
1318 * typeProfiler/inheritance.js:
1319 * typeProfiler/int52-dfg.js:
1320 * typeProfiler/loop.js:
1321 * typeProfiler/optional-fields.js:
1322 * typeProfiler/overflow.js:
1323 * typeProfiler/return.js:
1324 * typeProfiler/symbol.js:
1325 * typeProfiler/weird-prototype-chain.js:
1327 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
1329 [DFG][FTL] Support MapSet / SetAdd intrinsics
1330 https://bugs.webkit.org/show_bug.cgi?id=179858
1332 Reviewed by Saam Barati.
1334 * microbenchmarks/map-has-and-set.js: Added.
1336 * stress/map-set-check-failure.js: Added.
1340 * stress/map-set-cse.js: Added.
1343 * stress/set-add-check-failure.js: Added.
1347 * stress/set-add-cse.js: Added.
1350 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
1352 [JSC] Allow poly proto for intrinsic getters
1353 https://bugs.webkit.org/show_bug.cgi?id=179550
1355 Reviewed by Saam Barati.
1357 This change is also tested by existing tests.
1359 1. stress/intrinsic-getter-with-poly-proto.js
1360 2. stress/poly-proto-intrinsic-getter-correctness.js
1362 * stress/intrinsic-getter-with-poly-proto-getter-change.js: Added.
1364 (makePolyProtoObject.foo.C):
1365 (makePolyProtoObject.foo):
1366 (makePolyProtoObject):
1368 * stress/intrinsic-getter-with-poly-proto-proto-change.js: Added.
1370 (makePolyProtoObject.foo.C):
1371 (makePolyProtoObject.foo):
1372 (makePolyProtoObject):
1375 2017-11-20 Guillaume Emont <guijemont@igalia.com>
1377 Skip stress/unshiftCountSlowCase-correct-postCapacity.js on embedded Linux
1378 https://bugs.webkit.org/show_bug.cgi?id=179744
1380 Reviewed by Michael Catanzaro.
1382 This test uses too much memory for our buildbots on these platforms
1383 and gets OOM-killed.
1385 * stress/unshiftCountSlowCase-correct-postCapacity.js:
1386 Skip if $memoryLimited and linux.
1388 2017-11-17 JF Bastien <jfbastien@apple.com>
1390 WebAssembly JS API: throw when a promise can't be created
1391 https://bugs.webkit.org/show_bug.cgi?id=179826
1392 <rdar://problem/35455813>
1394 Reviewed by Mark Lam.
1396 Test WebAssembly.{compile,instantiate} where promise creation
1397 fails because of a stack overflow.
1399 * wasm/js-api/promise-stack-overflow.js: Added.
1400 (const.runNearStackLimit.f.const.t):
1401 (async.testCompile):
1402 (async.testInstantiate):
1404 2017-11-16 Yusuke Suzuki <utatane.tea@gmail.com>
1406 Unreviewed, mark regress-178385.js as memory exhausting
1408 * stress/regress-178385.js:
1410 2017-11-16 Ryan Haddad <ryanhaddad@apple.com>
1412 Mark test262/test/language/statements/class/definition/fn-name-static-precedence.js as passing after r224927.
1414 Unreviewed test gardening.
1418 2017-11-16 Robin Morisset <rmorisset@apple.com>
1420 REGRESSION (r224592): oss-fuzz: jsc: Null-dereference READ in JSC::JSCell::isObject (4216)
1421 https://bugs.webkit.org/show_bug.cgi?id=179763
1422 <rdar://problem/35550513>
1424 Reviewed by Keith Miller.
1426 Just adding a slightly cleaned-up version of the original fuzzer-found test.
1428 * stress/tdz-this-in-try-catch.js: Added.
1432 2017-11-14 Yusuke Suzuki <utatane.tea@gmail.com>
1434 [DFG][FTL] Support Array::DirectArguments with OutOfBounds
1435 https://bugs.webkit.org/show_bug.cgi?id=179594
1437 Reviewed by Saam Barati.
1439 * stress/direct-arguments-in-bounds-to-out-of-bounds.js: Added.
1442 * stress/direct-arguments-out-of-bounds-watchpoint.js: Added.
1446 2017-11-14 Saam Barati <sbarati@apple.com>
1448 We need to set topCallFrame when calling Wasm::Memory::grow from the JIT
1449 https://bugs.webkit.org/show_bug.cgi?id=179639
1450 <rdar://problem/35513018>
1452 Reviewed by JF Bastien.
1454 * wasm/function-tests/grow-memory-cause-gc.js: Added.
1458 2017-11-13 Mark Lam <mark.lam@apple.com>
1460 Add more overflow check book-keeping for MarkedArgumentBuffer.
1461 https://bugs.webkit.org/show_bug.cgi?id=179634
1462 <rdar://problem/35492517>
1464 Reviewed by Saam Barati.
1466 * stress/regress-179634.js: Added.
1468 2017-11-13 Mark Lam <mark.lam@apple.com>
1470 Make the jsc shell loadGetterFromGetterSetter() function more robust.
1471 https://bugs.webkit.org/show_bug.cgi?id=179619
1472 <rdar://problem/35492518>
1474 Reviewed by Saam Barati.
1476 * stress/regress-179619.js: Added.
1478 2017-11-12 Mark Lam <mark.lam@apple.com>
1480 We should ensure that operationStrCat2 and operationStrCat3 are never passed Symbols as arguments.
1481 https://bugs.webkit.org/show_bug.cgi?id=179562
1482 <rdar://problem/35467022>
1484 Reviewed by Saam Barati.
1486 * regress-179562.js: Added.
1488 2017-11-08 Saam Barati <sbarati@apple.com>
1490 A JSFunction's ObjectAllocationProfile should watch the poly prototype watchpoint so it can clear its object allocation profile
1491 https://bugs.webkit.org/show_bug.cgi?id=177792
1493 Reviewed by Yusuke Suzuki.
1495 * microbenchmarks/poly-proto-clear-js-function-allocation-profile.js: Added.
1497 (foo.Foo.prototype.ensureX):
1502 2017-11-08 Ryan Haddad <ryanhaddad@apple.com>
1504 Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
1505 https://bugs.webkit.org/show_bug.cgi?id=178592
1507 Unreviewed test gardening.
1511 2017-11-08 Robin Morisset <rmorisset@apple.com>
1513 Turn recursive tail calls into loops
1514 https://bugs.webkit.org/show_bug.cgi?id=176601
1516 Reviewed by Saam Barati.
1518 Relanding after https://bugs.webkit.org/show_bug.cgi?id=178834.
1520 Add some simple test that computes factorial in several ways, and other trivial computations.
1521 They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
1522 Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
1523 I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
1524 (which it doesn't if that tail call is transformed into a loop in the unsound cases).
1526 * stress/inline-call-to-recursive-tail-call.js: Added.
1541 2017-11-07 Mark Lam <mark.lam@apple.com>
1543 AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
1544 https://bugs.webkit.org/show_bug.cgi?id=179355
1545 <rdar://problem/35263053>
1547 Reviewed by Saam Barati.
1549 * stress/regress-179355.js: Added.
1551 2017-11-05 Yusuke Suzuki <utatane.tea@gmail.com>
1553 JIT call inline caches should cache calls to objects with getCallData/getConstructData traps
1554 https://bugs.webkit.org/show_bug.cgi?id=144458
1556 Reviewed by Saam Barati.
1558 * microbenchmarks/dfg-internal-function-call.js: Added.
1560 * microbenchmarks/dfg-internal-function-construct.js: Added.
1562 * microbenchmarks/dfg-internal-function-not-handled-call.js: Added.
1564 * microbenchmarks/dfg-internal-function-not-handled-construct.js: Added.
1566 * stress/dfg-internal-function-call.js: Added.
1569 * stress/dfg-internal-function-construct.js: Added.
1572 * stress/internal-function-call.js: Added.
1574 * stress/internal-function-construct.js: Added.
1577 2017-11-05 Per Arne Vollan <pvollan@apple.com>
1579 [Win] Skip stress/regress-178385.js.
1580 https://bugs.webkit.org/show_bug.cgi?id=179298
1582 Unreviewed test gardening.
1584 * stress/regress-178385.js:
1586 2017-11-03 Keith Miller <keith_miller@apple.com>
1588 Add test for ic with side effects
1589 https://bugs.webkit.org/show_bug.cgi?id=179268
1591 Reviewed by Saam Barati.
1593 * stress/put-inline-cache-side-effects.js: Added.
1594 (let.i.of.objs.keys):
1597 2017-11-03 Mark Lam <mark.lam@apple.com>
1599 CachedCall (and its clients) needs overflow checks.
1600 https://bugs.webkit.org/show_bug.cgi?id=179185
1602 Reviewed by JF Bastien.
1604 * stress/regress-179185.js: Added.
1606 2017-11-02 Michael Saboff <msaboff@apple.com>
1608 DFG needs to handle code motion of code in for..in loop bodies
1609 https://bugs.webkit.org/show_bug.cgi?id=179212
1611 Reviewed by Keith Miller.
1613 New regression test.
1615 * stress/for-in-side-effects.js: Added.
1623 2017-11-02 Filip Pizlo <fpizlo@apple.com>
1625 AI does not correctly model the clobber case of ArithClz32
1626 https://bugs.webkit.org/show_bug.cgi?id=179188
1628 Reviewed by Michael Saboff.
1630 * stress/arith-clz32-effects.js: Added.
1634 2017-11-01 Michael Saboff <msaboff@apple.com>
1636 Integer overflow in code generated by LoadVarargs processing in DFG and FTL.
1637 https://bugs.webkit.org/show_bug.cgi?id=179140
1639 Reviewed by Saam Barati.
1641 New regression test.
1643 * stress/regress-179140.js: Added.
1647 2017-11-01 Yusuke Suzuki <utatane.tea@gmail.com>
1649 [JSC] Introduce @toObject
1650 https://bugs.webkit.org/show_bug.cgi?id=178726
1652 Reviewed by Saam Barati.
1654 * stress/array-copywithin.js:
1656 * stress/object-constructor-boolean-edge.js: Added.
1659 * stress/object-constructor-global.js: Added.
1661 * stress/object-constructor-null-edge.js: Added.
1664 * stress/object-constructor-number-edge.js: Added.
1667 * stress/object-constructor-object-edge.js: Added.
1671 * stress/object-constructor-string-edge.js: Added.
1674 * stress/object-constructor-symbol-edge.js: Added.
1677 * stress/object-constructor-undefined-edge.js: Added.
1680 * stress/symbol-array-from.js: Added.
1682 * stress/to-object-intrinsic-boolean-edge.js: Added.
1684 (builtin.createBuiltin):
1685 * stress/to-object-intrinsic-null-or-undefined-edge.js: Added.
1687 * stress/to-object-intrinsic-number-edge.js: Added.
1689 (builtin.createBuiltin):
1690 * stress/to-object-intrinsic-object-edge.js: Added.
1692 (builtin.createBuiltin):
1694 * stress/to-object-intrinsic-string-edge.js: Added.
1696 (builtin.createBuiltin):
1697 * stress/to-object-intrinsic-symbol-edge.js: Added.
1699 (builtin.createBuiltin):
1700 * stress/to-object-intrinsic.js: Added.
1703 (builtin.createBuiltin):
1705 2017-10-27 Yusuke Suzuki <utatane.tea@gmail.com>
1707 [DFG][FTL] Introduce StringSlice
1708 https://bugs.webkit.org/show_bug.cgi?id=178934
1710 Reviewed by Saam Barati.
1712 * microbenchmarks/string-slice-empty.js: Added.
1714 * microbenchmarks/string-slice-one-char.js: Added.
1716 * microbenchmarks/string-slice.js: Added.
1719 2017-10-26 Michael Saboff <msaboff@apple.com>
1721 REGRESSION(r222601): We fail to properly backtrack into a sub pattern of a parenthesis with non-zero minimum
1722 https://bugs.webkit.org/show_bug.cgi?id=178890
1724 Reviewed by Keith Miller.
1726 New regression test.
1728 * stress/regress-178890.js: Added.
1730 2017-10-26 Mark Lam <mark.lam@apple.com>
1732 JSRopeString::RopeBuilder::append() should check for overflows.
1733 https://bugs.webkit.org/show_bug.cgi?id=178385
1734 <rdar://problem/35027468>
1736 Reviewed by Saam Barati.
1738 * stress/regress-178385.js: Added.
1740 2017-10-26 Ryan Haddad <ryanhaddad@apple.com>
1742 Unreviewed, rolling out r223961.
1744 The change that required this has been rolled out.
1748 "Mark test262.yaml/test262/test/language/statements/try/tco-
1749 catch.js as passing."
1750 https://bugs.webkit.org/show_bug.cgi?id=178592
1751 https://trac.webkit.org/changeset/223961
1753 2017-10-25 Commit Queue <commit-queue@webkit.org>
1755 Unreviewed, rolling out r223691 and r223729.
1756 https://bugs.webkit.org/show_bug.cgi?id=178834
1758 Broke Speedometer 2 React-Redux-TodoMVC test case (Requested
1759 by rniwa on #webkit).
1761 Reverted changesets:
1763 "Turn recursive tail calls into loops"
1764 https://bugs.webkit.org/show_bug.cgi?id=176601
1765 https://trac.webkit.org/changeset/223691
1767 "REGRESSION(r223691): DFGByteCodeParser.cpp:1483:83: warning:
1768 comparison is always false due to limited range of data type
1770 https://bugs.webkit.org/show_bug.cgi?id=178543
1771 https://trac.webkit.org/changeset/223729
1773 2017-10-25 Ryan Haddad <ryanhaddad@apple.com>
1775 Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
1776 https://bugs.webkit.org/show_bug.cgi?id=178592
1778 Unreviewed test gardening.
1782 2017-10-24 Yusuke Suzuki <utatane.tea@gmail.com>
1784 [FTL] Support NewStringObject
1785 https://bugs.webkit.org/show_bug.cgi?id=178737
1787 Reviewed by Saam Barati.
1789 * stress/new-string-object.js: Added.
1793 2017-10-15 Yusuke Suzuki <utatane.tea@gmail.com>
1795 [JSC] modules can be visited more than once when resolving bindings through "star" exports as long as the exportName is different each time
1796 https://bugs.webkit.org/show_bug.cgi?id=178308
1798 Reviewed by Mark Lam.
1802 2017-10-23 Yusuke Suzuki <utatane.tea@gmail.com>
1804 [JSC] Use fastJoin in Array#toString
1805 https://bugs.webkit.org/show_bug.cgi?id=178062
1807 Reviewed by Darin Adler.
1809 * microbenchmarks/contiguous-array-to-string.js: Added.
1811 * microbenchmarks/double-array-to-string.js: Added.
1813 * microbenchmarks/int32-array-to-string.js: Added.
1816 2017-10-22 Zan Dobersek <zdobersek@igalia.com>
1818 stress/check-string-ident.js is improperly skipped
1819 https://bugs.webkit.org/show_bug.cgi?id=178642
1821 Reviewed by Saam Barati.
1823 * stress/check-string-ident.js: Drop the defaultNoEagerRun directive
1824 since it enforces the run-jsc-stress-tests script to still set up the
1825 test to run, despite the skip directive that's used before.
1827 2017-10-20 Mark Lam <mark.lam@apple.com>
1829 Add a test case for r214334.
1830 https://bugs.webkit.org/show_bug.cgi?id=169941
1831 <rdar://problem/31221258>
1833 Reviewed by JF Bastien.
1835 * stress/regress-169941.js: Added.
1837 2017-10-19 JF Bastien <jfbastien@apple.com>
1839 WebAssembly: no VM / JS version of everything but Instance
1840 https://bugs.webkit.org/show_bug.cgi?id=177473
1842 Reviewed by Filip Pizlo, Saam Barati.
1844 - Exceeding max on memory growth now returns a range error as per
1845 spec. This is a (very minor) breaking change: it used to throw OOM
1846 error. Update the corresponding test.
1848 * wasm/js-api/memory-grow.js:
1850 * wasm/js-api/table.js:
1853 2017-10-19 Mark Lam <mark.lam@apple.com>
1855 Stringifier::appendStringifiedValue() is missing an exception check.
1856 https://bugs.webkit.org/show_bug.cgi?id=178386
1857 <rdar://problem/35027610>
1859 Reviewed by Saam Barati.
1861 * stress/regress-178386.js: Added.
1863 2017-10-19 Michael Saboff <msaboff@apple.com>
1865 Test262: RegExp/property-escapes/generated/Emoji_Component.js fails with current RegExp Unicode Properties implementation
1866 https://bugs.webkit.org/show_bug.cgi?id=178521
1868 Reviewed by JF Bastien.
1870 * test262.yaml: Enabled test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js as it
1871 now passes with the current version (5.0) of the Emoji spec.
1873 2017-10-19 Robin Morisset <rmorisset@apple.com>
1875 Turn recursive tail calls into loops
1876 https://bugs.webkit.org/show_bug.cgi?id=176601
1878 Reviewed by Saam Barati.
1880 Add some simple test that computes factorial in several ways, and other trivial computations.
1881 They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
1882 Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
1883 I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
1884 (which it doesn't if that tail call is transformed into a loop in the unsound cases).
1886 * stress/inline-call-to-recursive-tail-call.js: Added.
1898 2017-10-18 Mark Lam <mark.lam@apple.com>
1900 RegExpObject::defineOwnProperty() does not need to compare values if no descriptor value is specified.
1901 https://bugs.webkit.org/show_bug.cgi?id=177600
1902 <rdar://problem/34710985>
1904 Reviewed by Saam Barati.
1906 * stress/regress-177600.js: Added.
1908 2017-10-18 Mark Lam <mark.lam@apple.com>
1910 The compiler should always register a structure when it adds its transitionWatchPointSet.
1911 https://bugs.webkit.org/show_bug.cgi?id=178420
1912 <rdar://problem/34814024>
1914 Reviewed by Saam Barati and Filip Pizlo.
1916 * stress/regress-178420.js: Added.
1917 (new.Array.10000.map):
1919 2017-10-18 Yusuke Suzuki <utatane.tea@gmail.com>
1921 [JSC] __proto__ getter should be fast
1922 https://bugs.webkit.org/show_bug.cgi?id=178067
1924 Reviewed by Saam Barati.
1926 * stress/dfg-object-proto-accessor.js: Added.
1930 * stress/dfg-object-proto-getter.js: Added.
1934 * stress/dfg-object-prototype-of.js: Added.
1938 * stress/dfg-reflect-get-prototype-of.js: Added.
1942 * stress/intrinsic-getter-with-poly-proto.js: Added.
1944 (makePolyProtoObject.foo.C):
1945 (makePolyProtoObject.foo):
1946 (makePolyProtoObject):
1948 * stress/object-get-prototype-of-filtered.js: Added.
1953 * stress/object-get-prototype-of-mono-proto.js: Added.
1955 (makePolyProtoObject.foo.C):
1956 (makePolyProtoObject.foo):
1957 (makePolyProtoObject):
1959 * stress/object-get-prototype-of-poly-mono-proto.js: Added.
1961 (makePolyProtoObject.foo.C):
1962 (makePolyProtoObject.foo):
1963 (makePolyProtoObject):
1965 * stress/object-get-prototype-of-poly-proto.js: Added.
1967 (makePolyProtoObject.foo.C):
1968 (makePolyProtoObject.foo):
1969 (makePolyProtoObject):
1971 * stress/object-proto-getter-filtered.js: Added.
1976 * stress/object-proto-getter-poly-mono-proto.js: Added.
1978 (makePolyProtoObject.foo.C):
1979 (makePolyProtoObject.foo):
1980 (makePolyProtoObject):
1982 * stress/object-proto-getter-poly-proto.js: Added.
1984 (makePolyProtoObject.foo.C):
1985 (makePolyProtoObject.foo):
1986 (makePolyProtoObject):
1988 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
1989 * stress/string-proto.js: Added.
1993 2017-10-17 Ryan Haddad <ryanhaddad@apple.com>
1995 Unreviewed, rolling out r223523.
1997 A test for this change is failing on debug JSC bots.
2001 "[JSC] __proto__ getter should be fast"
2002 https://bugs.webkit.org/show_bug.cgi?id=178067
2003 https://trac.webkit.org/changeset/223523
2005 2017-10-10 Yusuke Suzuki <utatane.tea@gmail.com>
2007 [JSC] __proto__ getter should be fast
2008 https://bugs.webkit.org/show_bug.cgi?id=178067
2010 Reviewed by Saam Barati.
2012 * stress/dfg-object-proto-accessor.js: Added.
2016 * stress/dfg-object-proto-getter.js: Added.
2020 * stress/dfg-object-prototype-of.js: Added.
2024 * stress/dfg-reflect-get-prototype-of.js: Added.
2028 * stress/object-get-prototype-of-filtered.js: Added.
2033 * stress/object-get-prototype-of-mono-proto.js: Added.
2035 (makePolyProtoObject.foo.C):
2036 (makePolyProtoObject.foo):
2037 (makePolyProtoObject):
2039 * stress/object-get-prototype-of-poly-mono-proto.js: Added.
2041 (makePolyProtoObject.foo.C):
2042 (makePolyProtoObject.foo):
2043 (makePolyProtoObject):
2045 * stress/object-get-prototype-of-poly-proto.js: Added.
2047 (makePolyProtoObject.foo.C):
2048 (makePolyProtoObject.foo):
2049 (makePolyProtoObject):
2051 * stress/object-proto-getter-filtered.js: Added.
2056 * stress/object-proto-getter-poly-mono-proto.js: Added.
2058 (makePolyProtoObject.foo.C):
2059 (makePolyProtoObject.foo):
2060 (makePolyProtoObject):
2062 * stress/object-proto-getter-poly-proto.js: Added.
2064 (makePolyProtoObject.foo.C):
2065 (makePolyProtoObject.foo):
2066 (makePolyProtoObject):
2068 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
2069 * stress/string-proto.js: Added.
2073 2017-10-14 Yusuke Suzuki <utatane.tea@gmail.com>
2075 Reland "Add Above/Below comparisons for UInt32 patterns"
2076 https://bugs.webkit.org/show_bug.cgi?id=177281
2078 Reviewed by Saam Barati.
2080 * stress/uint32-comparison-jump.js: Added.
2090 * stress/uint32-comparison.js: Added.
2101 2017-10-12 Yusuke Suzuki <utatane.tea@gmail.com>
2103 WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData
2104 https://bugs.webkit.org/show_bug.cgi?id=178210
2106 Reviewed by Saam Barati.
2108 * wasm/function-tests/trap-from-start-async.js:
2109 (async.StartTrapsAsync):
2110 * wasm/function-tests/trap-from-start.js:
2112 * wasm/js-api/web-assembly-function.js:
2113 (assert.eq.Object.getPrototypeOf):
2114 * wasm/js-api/wrapper-function.js:
2115 (return.new.WebAssembly.Module):
2116 (assert.throws.makeInstance): Deleted.
2117 (assert.throws.Bar): Deleted.
2118 (assert.throws): Deleted.
2120 2017-09-29 Filip Pizlo <fpizlo@apple.com>
2122 Enable gigacage on iOS
2123 https://bugs.webkit.org/show_bug.cgi?id=177586
2125 Reviewed by JF Bastien.
2127 Add tests for when Gigacage gets runtime disabled.
2129 * stress/disable-gigacage-arrays.js: Added.
2131 * stress/disable-gigacage-strings.js: Added.
2133 * stress/disable-gigacage-typed-arrays.js: Added.
2136 2017-10-11 Yusuke Suzuki <utatane.tea@gmail.com>
2138 import.meta should not be assignable
2139 https://bugs.webkit.org/show_bug.cgi?id=178202
2141 Reviewed by Saam Barati.
2143 * modules/import-meta-assignment.js: Added.
2145 (SyntaxError.import.meta.can.shouldThrow):
2147 2017-10-11 Saam Barati <sbarati@apple.com>
2149 Unreviewed. Actually skip certain type profiler tests in debug.
2151 * typeProfiler.yaml:
2152 * typeProfiler/deltablue-for-of.js:
2153 * typeProfiler/getter-richards.js:
2155 2017-10-11 Commit Queue <commit-queue@webkit.org>
2157 Unreviewed, rolling out r223113 and r223121.
2158 https://bugs.webkit.org/show_bug.cgi?id=178182
2160 Reintroduced 20% regression on Kraken (Requested by rniwa on
2163 Reverted changesets:
2165 "Enable gigacage on iOS"
2166 https://bugs.webkit.org/show_bug.cgi?id=177586
2167 https://trac.webkit.org/changeset/223113
2169 "Use one virtual allocation for all gigacages and their
2171 https://bugs.webkit.org/show_bug.cgi?id=178050
2172 https://trac.webkit.org/changeset/223121
2174 2017-10-11 Michael Saboff <msaboff@apple.com>
2176 Disable test262 named capture group tests with direct unicode names and with references before definitions
2177 https://bugs.webkit.org/show_bug.cgi?id=178177
2179 Reviewed by Keith Miller.
2181 Bugs to track fixing these test are:
2182 https://bugs.webkit.org/show_bug.cgi?id=178174 -
2183 "Add support in named capture group identifiers for direct surrogate pairs"
2184 https://bugs.webkit.org/show_bug.cgi?id=178175 -
2185 "Test262 failure with Named Capture Groups - using a reference before the group is defined"
2189 2017-10-11 Caio Lima <ticaiolima@gmail.com>
2191 Object properties are undefined in super.call() but not in this.call()
2192 https://bugs.webkit.org/show_bug.cgi?id=177230
2194 Reviewed by Saam Barati.
2196 * stress/super-call-function-subclass.js: Added.
2200 * stress/super-dot-call-and-apply.js: Added.
2204 (A.prototype.apply):
2205 (B.prototype.testSuper):
2207 (const.obj.new.B.string_appeared_here.obj.testSuper.C):
2208 (D.prototype.testSuper):
2211 2017-10-10 Saam Barati <sbarati@apple.com>
2213 The prototype cache should be aware of the Executable it generates a Structure for
2214 https://bugs.webkit.org/show_bug.cgi?id=177907
2216 Reviewed by Filip Pizlo.
2218 * microbenchmarks/dont-confuse-structures-from-different-executable-as-poly-proto.js: Added.
2228 2017-10-09 Yusuke Suzuki <utatane.tea@gmail.com>
2230 `async` should be able to be used as an imported binding name
2231 https://bugs.webkit.org/show_bug.cgi?id=176573
2233 Reviewed by Saam Barati.
2235 * modules/import-default-async.js: Added.
2236 * modules/import-named-async-as.js: Added.
2237 * modules/import-named-async.js: Added.
2238 * modules/import-named-async/target.js: Added.
2239 * modules/import-namespace-async.js: Added.
2242 2017-09-29 Filip Pizlo <fpizlo@apple.com>
2244 Enable gigacage on iOS
2245 https://bugs.webkit.org/show_bug.cgi?id=177586
2247 Reviewed by JF Bastien.
2249 Add tests for when Gigacage gets runtime disabled.
2251 * stress/disable-gigacage-arrays.js: Added.
2253 * stress/disable-gigacage-strings.js: Added.
2255 * stress/disable-gigacage-typed-arrays.js: Added.
2258 2017-10-09 Michael Saboff <msaboff@apple.com>
2260 Implement RegExp Unicode property escapes
2261 https://bugs.webkit.org/show_bug.cgi?id=172069
2263 Reviewed by JF Bastien.
2265 Enabled Unicode Property tests.
2269 2017-10-09 Commit Queue <commit-queue@webkit.org>
2271 Unreviewed, rolling out r223015 and r223025.
2272 https://bugs.webkit.org/show_bug.cgi?id=178093
2274 Regressed Kraken on iOS by 20% (Requested by keith_mi_ on
2277 Reverted changesets:
2279 "Enable gigacage on iOS"
2280 https://bugs.webkit.org/show_bug.cgi?id=177586
2281 http://trac.webkit.org/changeset/223015
2283 "Unreviewed, disable Gigacage on ARM64 Linux"
2284 https://bugs.webkit.org/show_bug.cgi?id=177586
2285 http://trac.webkit.org/changeset/223025
2287 2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
2289 Update expectations for test262 tests that pass after r223043.
2290 https://bugs.webkit.org/show_bug.cgi?id=176685
2292 Unreviewed test gardening.
2296 2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
2298 Unreviewed, rolling out r223022.
2300 This change introduced 18 test262 failures.
2304 "`async` should be able to be used as an imported binding
2306 https://bugs.webkit.org/show_bug.cgi?id=176573
2307 http://trac.webkit.org/changeset/223022
2309 2017-10-09 Saam Barati <sbarati@apple.com>
2311 3 poly-proto JSC tests timing out on debug after r222827
2312 https://bugs.webkit.org/show_bug.cgi?id=177880
2313 <rdar://problem/34817122>
2317 I'm skipping these type profiler tests on debug since they are long running.
2319 * typeProfiler/deltablue-for-of.js:
2320 * typeProfiler/getter-richards.js:
2322 2017-10-09 Oleksandr Skachkov <gskachkov@gmail.com>
2324 Safari 10 /11 problem with if (!await get(something)).
2325 https://bugs.webkit.org/show_bug.cgi?id=176685
2327 Reviewed by Saam Barati.
2329 * stress/async-await-basic.js:
2330 (awaitEpression.async):
2331 * stress/async-await-syntax.js:
2332 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
2333 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
2335 2017-10-08 Saam Barati <sbarati@apple.com>
2337 Unreviewed. Make some type profiler tests run for less time to avoid debug timeouts.
2339 * typeProfiler/deltablue-for-of.js:
2340 * typeProfiler/getter-richards.js:
2342 2017-10-07 Yusuke Suzuki <utatane.tea@gmail.com>
2344 `async` should be able to be used as an imported binding name
2345 https://bugs.webkit.org/show_bug.cgi?id=176573
2347 Reviewed by Darin Adler.
2349 * modules/import-default-async.js: Added.
2350 * modules/import-named-async-as.js: Added.
2351 * modules/import-named-async.js: Added.
2352 * modules/import-named-async/target.js: Added.
2353 * modules/import-namespace-async.js: Added.
2355 2017-09-29 Filip Pizlo <fpizlo@apple.com>
2357 Enable gigacage on iOS
2358 https://bugs.webkit.org/show_bug.cgi?id=177586
2360 Reviewed by JF Bastien.
2362 Add tests for when Gigacage gets runtime disabled.
2364 * stress/disable-gigacage-arrays.js: Added.
2366 * stress/disable-gigacage-strings.js: Added.
2368 * stress/disable-gigacage-typed-arrays.js: Added.
2371 2017-10-06 Commit Queue <commit-queue@webkit.org>
2373 Unreviewed, rolling out r222791 and r222873.
2374 https://bugs.webkit.org/show_bug.cgi?id=178031
2376 Caused crashes with workers/wasm LayoutTests (Requested by
2377 ryanhaddad on #webkit).
2379 Reverted changesets:
2381 "WebAssembly: no VM / JS version of everything but Instance"
2382 https://bugs.webkit.org/show_bug.cgi?id=177473
2383 http://trac.webkit.org/changeset/222791
2385 "WebAssembly: address no VM / JS follow-ups"
2386 https://bugs.webkit.org/show_bug.cgi?id=177887
2387 http://trac.webkit.org/changeset/222873
2389 2017-10-05 Saam Barati <sbarati@apple.com>
2391 Make sure all prototypes under poly proto get added into the VM's prototype map
2392 https://bugs.webkit.org/show_bug.cgi?id=177909
2394 Reviewed by Keith Miller.
2396 * stress/poly-proto-prototype-map-having-a-bad-time.js: Added.
2402 2017-09-30 Yusuke Suzuki <utatane.tea@gmail.com>
2404 [JSC] Introduce import.meta
2405 https://bugs.webkit.org/show_bug.cgi?id=177703
2407 Reviewed by Filip Pizlo.
2409 * modules/import-meta-syntax.js: Added.
2412 * modules/import-meta.js: Added.
2413 * modules/import-meta/cocoa.js: Added.
2414 * modules/resources/assert.js:
2415 (export.shouldNotThrow):
2416 * stress/import-syntax.js:
2418 2017-10-04 Saam Barati <sbarati@apple.com>
2420 Make pertinent AccessCases watch the poly proto watchpoint
2421 https://bugs.webkit.org/show_bug.cgi?id=177765
2423 Reviewed by Keith Miller.
2425 * microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js: Added.
2430 * stress/poly-proto-clear-stub.js: Added.
2435 2017-10-04 Ryan Haddad <ryanhaddad@apple.com>
2437 Remove failure expectation for async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js.
2439 Unreviewed test gardening.
2443 2017-10-04 Saam Barati <sbarati@apple.com>
2445 3 poly-proto JSC tests timing out on debug after r222827
2446 https://bugs.webkit.org/show_bug.cgi?id=177880
2448 Rubber stamped by Mark Lam.
2450 * microbenchmarks/poly-proto-access.js:
2451 * typeProfiler/deltablue-for-of.js:
2452 * typeProfiler/getter-richards.js:
2454 2017-10-04 Joseph Pecoraro <pecoraro@apple.com>
2456 Unreviewed, marking tco-catch.js as a failure after test262 update
2457 https://bugs.webkit.org/show_bug.cgi?id=177859
2461 2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
2463 Unreviewed, marking one async iterator test262 test failed
2464 https://bugs.webkit.org/show_bug.cgi?id=177859
2468 2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
2470 [Test262] Update Test262 to Oct 4 version
2471 https://bugs.webkit.org/show_bug.cgi?id=177859
2473 Reviewed by Sam Weinig.
2475 Let's rebaseline test262. Since it includes the latest changes to ArrayIterator::next,
2476 we no longer need to mark it skip/fail. Also this update includes bunch of BigInt tests.
2479 * test262/harness/promiseHelper.js: Renamed from JSTests/test262/harness/PromiseHelper.js.
2481 * test262/harness/typeCoercion.js:
2482 (testCoercibleToIndexZero):
2483 (testCoercibleToIndexOne):
2484 (testCoercibleToIndexFromIndex):
2485 (testNotCoercibleToIndex.testPrimitiveValue):
2486 (testNotCoercibleToInteger):
2487 (testCoercibleToBigIntZero.testPrimitiveValue):
2488 (testCoercibleToBigIntZero):
2489 (testCoercibleToBigIntOne.testPrimitiveValue):
2490 (testCoercibleToBigIntOne):
2491 (testPrimitiveValue):
2492 (testCoercibleToBigIntFromBigInt):
2493 (testNotCoercibleToBigInt.testPrimitiveValue):
2494 (testNotCoercibleToBigInt.testStringValue):
2495 (testNotCoercibleToBigInt):
2496 * test262/test/built-ins/Array/from/proto-from-ctor-realm.js:
2497 * test262/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js:
2498 * test262/test/built-ins/Array/of/proto-from-ctor-realm.js:
2499 * test262/test/built-ins/Array/proto-from-ctor-realm.js:
2500 * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js:
2501 * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js:
2502 * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
2503 * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js:
2504 * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js:
2505 * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js:
2506 * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js:
2507 * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js:
2508 * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js:
2509 * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js:
2510 * test262/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js:
2511 * test262/test/built-ins/BigInt/asIntN/bigint-tobigint.js:
2512 (testCoercibleToBigIntZero):
2513 (testCoercibleToBigIntOne):
2514 (testNotCoercibleToBigInt):
2517 (toString): Deleted.
2518 (Symbol.toPrimitive): Deleted.
2519 * test262/test/built-ins/BigInt/asIntN/bits-toindex.js:
2520 (testCoercibleToIndexZero):
2521 (testCoercibleToIndexOne):
2522 (testNotCoercibleToIndex):
2524 (assert.sameValue.BigInt.asIntN.valueOf): Deleted.
2525 (assert.sameValue.BigInt.asIntN.toString): Deleted.
2526 (BigInt.asIntN.Symbol.toPrimitive): Deleted.
2527 (BigInt.asIntN.valueOf): Deleted.
2528 (BigInt.asIntN.toString): Deleted.
2529 * test262/test/built-ins/BigInt/asUintN/arithmetic.js: Added.
2530 * test262/test/built-ins/BigInt/asUintN/asUintN.js: Added.
2531 * test262/test/built-ins/BigInt/asUintN/bigint-tobigint.js: Added.
2532 (testCoercibleToBigIntZero):
2533 (testCoercibleToBigIntOne):
2534 (testNotCoercibleToBigInt):
2535 * test262/test/built-ins/BigInt/asUintN/bits-toindex.js: Added.
2536 (testCoercibleToIndexZero):
2537 (testCoercibleToIndexOne):
2538 (testNotCoercibleToIndex):
2539 * test262/test/built-ins/BigInt/asUintN/length.js: Added.
2540 * test262/test/built-ins/BigInt/asUintN/name.js: Added.
2541 * test262/test/built-ins/BigInt/asUintN/order-of-steps.js: Added.
2544 * test262/test/built-ins/BigInt/prototype/valueOf/length.js: Added.
2545 * test262/test/built-ins/BigInt/prototype/valueOf/name.js: Added.
2546 * test262/test/built-ins/BigInt/prototype/valueOf/prop-desc.js: Added.
2547 * test262/test/built-ins/BigInt/prototype/valueOf/return.js: Added.
2548 * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-object-throws.js: Added.
2549 * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-primitive-throws.js: Added.
2550 * test262/test/built-ins/Boolean/proto-from-ctor-realm.js:
2551 * test262/test/built-ins/DataView/proto-from-ctor-realm-sab.js:
2552 * test262/test/built-ins/DataView/proto-from-ctor-realm.js:
2553 * test262/test/built-ins/Date/proto-from-ctor-realm-one.js:
2554 * test262/test/built-ins/Date/proto-from-ctor-realm-two.js:
2555 * test262/test/built-ins/Date/proto-from-ctor-realm-zero.js:
2556 * test262/test/built-ins/Error/proto-from-ctor-realm.js:
2557 * test262/test/built-ins/Function/call-bind-this-realm-undef.js:
2558 * test262/test/built-ins/Function/call-bind-this-realm-value.js:
2559 * test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
2560 * test262/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js:
2561 * test262/test/built-ins/Function/internals/Construct/derived-return-val-realm.js:
2562 * test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:
2563 * test262/test/built-ins/Function/proto-from-ctor-realm.js:
2564 * test262/test/built-ins/Function/prototype/bind/get-fn-realm.js:
2565 * test262/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js:
2566 * test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js:
2567 * test262/test/built-ins/JSON/stringify/bigint-order.js: Added.
2569 (BigInt.prototype.toJSON):
2570 * test262/test/built-ins/JSON/stringify/bigint-replacer.js: Added.
2572 * test262/test/built-ins/JSON/stringify/bigint-tojson.js: Added.
2573 (BigInt.prototype.toJSON):
2574 * test262/test/built-ins/JSON/stringify/bigint.js:
2575 * test262/test/built-ins/Map/proto-from-ctor-realm.js:
2576 * test262/test/built-ins/Number/S9.3.1_A2_U180E.js:
2577 * test262/test/built-ins/Number/S9.3.1_A3_T1_U180E.js:
2578 * test262/test/built-ins/Number/S9.3.1_A3_T2_U180E.js:
2579 * test262/test/built-ins/Number/proto-from-ctor-realm.js:
2580 * test262/test/built-ins/Object/proto-from-ctor.js:
2581 * test262/test/built-ins/Promise/proto-from-ctor-realm.js:
2582 * test262/test/built-ins/Proxy/apply/arguments-realm.js:
2583 * test262/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js:
2584 * test262/test/built-ins/Proxy/construct/arguments-realm.js:
2585 * test262/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js:
2586 * test262/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js:
2587 * test262/test/built-ins/Proxy/defineProperty/desc-realm.js:
2588 * test262/test/built-ins/Proxy/defineProperty/null-handler-realm.js:
2589 * test262/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js:
2590 * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js:
2591 * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js:
2592 * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js:
2593 * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js:
2594 * test262/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js:
2595 * test262/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js:
2596 * test262/test/built-ins/Proxy/get-fn-realm.js:
2597 * test262/test/built-ins/Proxy/get/trap-is-not-callable-realm.js:
2598 * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js:
2599 * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js:
2600 * test262/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js:
2601 * test262/test/built-ins/Proxy/has/trap-is-not-callable-realm.js:
2602 * test262/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js:
2603 * test262/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js:
2604 * test262/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js:
2605 * test262/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js:
2606 * test262/test/built-ins/Proxy/set/trap-is-not-callable-realm.js:
2607 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js:
2608 * test262/test/built-ins/RegExp/S15.10.2.12_A1_T1.js:
2611 * test262/test/built-ins/RegExp/dotall/with-dotall-unicode.js:
2612 * test262/test/built-ins/RegExp/dotall/with-dotall.js:
2613 * test262/test/built-ins/RegExp/dotall/without-dotall-unicode.js:
2614 * test262/test/built-ins/RegExp/dotall/without-dotall.js:
2615 * test262/test/built-ins/RegExp/proto-from-ctor-realm.js:
2616 * test262/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js:
2617 * test262/test/built-ins/RegExp/u180e.js: Added.
2618 * test262/test/built-ins/Set/proto-from-ctor-realm.js:
2619 * test262/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js:
2620 * test262/test/built-ins/String/proto-from-ctor-realm.js:
2621 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js:
2622 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js:
2623 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js:
2624 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js:
2625 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js:
2626 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js:
2627 * test262/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js:
2628 * test262/test/built-ins/String/prototype/endsWith/endsWith.js:
2629 * test262/test/built-ins/String/prototype/endsWith/length.js:
2630 * test262/test/built-ins/String/prototype/endsWith/name.js:
2631 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js:
2632 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js:
2633 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js:
2634 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js:
2635 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js:
2636 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js:
2637 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js:
2638 * test262/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js:
2639 * test262/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js:
2640 * test262/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js:
2641 * test262/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js:
2642 * test262/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js:
2643 * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js:
2644 * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js:
2645 * test262/test/built-ins/String/prototype/endsWith/this-is-null-throws.js:
2646 * test262/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js:
2647 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js:
2648 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js:
2649 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js:
2650 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js:
2651 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js:
2652 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js:
2653 * test262/test/built-ins/String/prototype/includes/coerced-values-of-position.js:
2654 * test262/test/built-ins/String/prototype/includes/includes.js:
2655 * test262/test/built-ins/String/prototype/includes/length.js:
2656 * test262/test/built-ins/String/prototype/includes/name.js:
2657 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js:
2658 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position.js:
2659 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js:
2660 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js:
2661 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js:
2662 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js:
2663 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this.js:
2664 * test262/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js:
2665 * test262/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js:
2666 * test262/test/built-ins/String/prototype/includes/searchstring-found-with-position.js:
2667 * test262/test/built-ins/String/prototype/includes/searchstring-found-without-position.js:
2668 * test262/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js:
2669 * test262/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js:
2670 * test262/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js:
2671 * test262/test/built-ins/String/prototype/includes/this-is-null-throws.js:
2672 * test262/test/built-ins/String/prototype/includes/this-is-undefined-throws.js:
2673 * test262/test/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js:
2674 * test262/test/built-ins/String/prototype/toLowerCase/Final_Sigma_U180E.js:
2675 * test262/test/built-ins/String/prototype/trim/u180e.js:
2676 * test262/test/built-ins/Symbol/for/cross-realm.js:
2677 * test262/test/built-ins/Symbol/hasInstance/cross-realm.js:
2678 * test262/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js:
2679 * test262/test/built-ins/Symbol/iterator/cross-realm.js:
2680 * test262/test/built-ins/Symbol/keyFor/cross-realm.js:
2681 * test262/test/built-ins/Symbol/match/cross-realm.js:
2682 * test262/test/built-ins/Symbol/replace/cross-realm.js:
2683 * test262/test/built-ins/Symbol/search/cross-realm.js:
2684 * test262/test/built-ins/Symbol/species/cross-realm.js:
2685 * test262/test/built-ins/Symbol/split/cross-realm.js:
2686 * test262/test/built-ins/Symbol/toPrimitive/cross-realm.js:
2687 * test262/test/built-ins/Symbol/toStringTag/cross-realm.js:
2688 * test262/test/built-ins/Symbol/unscopables/cross-realm.js:
2689 * test262/test/built-ins/ThrowTypeError/distinct-cross-realm.js:
2690 * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js:
2691 * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js:
2692 * test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js:
2693 * test262/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js:
2694 * test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js:
2695 * test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js:
2696 * test262/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js:
2697 * test262/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js:
2698 * test262/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js:
2699 * test262/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js:
2700 * test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js:
2701 * test262/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js:
2702 * test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js:
2703 * test262/test/built-ins/WeakMap/proto-from-ctor-realm.js:
2704 * test262/test/built-ins/WeakSet/proto-from-ctor-realm.js:
2705 * test262/test/built-ins/parseFloat/S15.1.2.3_A2_T10_U180E.js:
2706 * test262/test/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js:
2707 * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js:
2708 * test262/test/language/comments/mongolian-vowel-separator-multi.js:
2709 * test262/test/language/comments/mongolian-vowel-separator-single-eval.js:
2710 * test262/test/language/comments/mongolian-vowel-separator-single.js:
2711 * test262/test/language/eval-code/indirect/realm.js:
2712 * test262/test/language/expressions/assignment/dstr-obj-rest-order.js: Added.
2715 * test262/test/language/expressions/call/eval-realm-indirect.js:
2716 * test262/test/language/expressions/generators/eval-body-proto-realm.js:
2717 * test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js: Added.
2718 * test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js: Added.
2719 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js: Added.
2720 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
2721 * test262/test/language/expressions/greater-than/bigint-and-bigint.js: Added.
2722 * test262/test/language/expressions/greater-than/bigint-and-non-finite.js: Added.
2723 * test262/test/language/expressions/greater-than/bigint-and-number-extremes.js: Added.
2724 * test262/test/language/expressions/greater-than/bigint-and-number.js:
2725 * test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js: Added.
2726 * test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js: Added.
2727 * test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js: Added.
2728 * test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
2729 * test262/test/language/expressions/less-than/bigint-and-bigint.js: Added.
2730 * test262/test/language/expressions/less-than/bigint-and-non-finite.js: Added.
2731 * test262/test/language/expressions/less-than/bigint-and-number-extremes.js: Added.
2732 * test262/test/language/expressions/less-than/bigint-and-number.js:
2733 * test262/test/language/expressions/new/non-ctor-err-realm.js:
2734 * test262/test/language/expressions/super/realm.js:
2735 * test262/test/language/expressions/tagged-template/cache-realm.js:
2736 * test262/test/language/expressions/template-literal/mongolian-vowel-separator-eval.js:
2737 * test262/test/language/expressions/template-literal/mongolian-vowel-separator.js:
2738 * test262/test/language/literals/regexp/mongolian-vowel-separator-eval.js:
2739 * test262/test/language/literals/regexp/mongolian-vowel-separator.js:
2740 * test262/test/language/literals/string/mongolian-vowel-separator-eval.js:
2741 * test262/test/language/literals/string/mongolian-vowel-separator.js:
2742 * test262/test/language/statements/for-of/dstr-obj-rest-order.js: Added.
2745 * test262/test/language/statements/for-of/iterator-next-reference.js:
2747 (iterator.next): Deleted.
2748 (x.of.iterable.): Deleted.
2749 (x.of.iterable.get return): Deleted.
2750 (x.of.iterable.iterator.next): Deleted.
2751 * test262/test/language/types/reference/get-value-prop-base-primitive-realm.js:
2752 * test262/test/language/types/reference/put-value-prop-base-primitive-realm.js:
2753 * test262/test/language/white-space/mongolian-vowel-separator-eval.js:
2754 * test262/test/language/white-space/mongolian-vowel-separator.js:
2755 * test262/test262-Revision.txt:
2757 2017-10-03 Saam Barati <sbarati@apple.com>
2759 Implement polymorphic prototypes
2760 https://bugs.webkit.org/show_bug.cgi?id=176391
2762 Reviewed by Filip Pizlo.
2764 * microbenchmarks/poly-proto-access.js: Added.
2767 (foo.C.prototype.get bar):
2770 * microbenchmarks/poly-proto-put-transition-speed.js: Added.
2772 (makePolyProtoObject.foo.C):
2773 (makePolyProtoObject.foo):
2774 (makePolyProtoObject):
2776 * microbenchmarks/poly-proto-setter-speed.js: Added.
2778 (makePolyProtoObject.foo.C):
2779 (makePolyProtoObject.foo.C.prototype.set p):
2780 (makePolyProtoObject.foo):
2781 (makePolyProtoObject):
2783 * stress/constructor-with-return.js:
2784 (i.tests.forEach.Constructor):
2786 (tests.forEach.Constructor): Deleted.
2787 (tests.forEach): Deleted.
2788 * stress/dom-jit-with-poly-proto.js: Added.
2790 (makePolyProtoObject.foo.C):
2791 (makePolyProtoObject.foo):
2792 (makePolyProtoObject):
2794 * stress/poly-proto-custom-value-and-accessor.js: Added.
2796 (makePolyProtoObject.foo.C):
2797 (makePolyProtoObject.foo):
2798 (makePolyProtoObject):
2801 * stress/poly-proto-intrinsic-getter-correctness.js: Added.
2803 (makePolyProtoObject.foo.C):
2804 (makePolyProtoObject.foo):
2805 (makePolyProtoObject):
2807 * stress/poly-proto-miss.js: Added.
2808 (makePolyProtoInstanceWithNullPrototype.foo.C):
2809 (makePolyProtoInstanceWithNullPrototype.foo):
2810 (makePolyProtoInstanceWithNullPrototype):
2813 * stress/poly-proto-op-in-caching.js: Added.
2815 (makePolyProtoObject.foo.C):
2816 (makePolyProtoObject.foo):
2817 (makePolyProtoObject):
2820 * stress/poly-proto-put-transition.js: Added.
2822 (makePolyProtoObject.foo.C):
2823 (makePolyProtoObject.foo):
2824 (makePolyProtoObject):
2826 (i.obj.__proto__.set p):
2827 * stress/poly-proto-set-prototype.js: Added.
2829 (let.alternateProto.get x):
2830 (let.alternateProto2.get y):
2831 (let.alternateProto2.get x):
2835 * stress/poly-proto-setter.js: Added.
2837 (makePolyProtoObject.foo.C):
2838 (makePolyProtoObject.foo.C.prototype.set p):
2839 (makePolyProtoObject.foo.C.prototype.get p):
2840 (makePolyProtoObject.foo):
2841 (makePolyProtoObject):
2843 * stress/poly-proto-using-inheritance.js: Added.
2846 (foo.C.prototype.get baz):
2851 * stress/primitive-poly-proto.js: Added.
2852 (makePolyProtoInstance.foo.C):
2853 (makePolyProtoInstance.foo):
2854 (makePolyProtoInstance):
2857 * stress/prototype-is-not-js-object.js: Added.
2862 * stress/try-get-by-id-poly-proto.js: Added.
2864 (makePolyProtoObject.foo.C):
2865 (makePolyProtoObject.foo):
2866 (makePolyProtoObject):
2868 (x.__proto__.get bar):
2870 * typeProfiler/overflow.js:
2872 2017-10-03 JF Bastien <jfbastien@apple.com>
2874 WebAssembly: no VM / JS version of everything but Instance
2875 https://bugs.webkit.org/show_bug.cgi?id=177473
2877 Reviewed by Filip Pizlo.
2879 - Exceeding max on memory growth now returns a range error as per
2880 spec. This is a (very minor) breaking change: it used to throw OOM
2881 error. Update the corresponding test.
2883 * wasm/js-api/memory-grow.js:
2885 * wasm/js-api/table.js:
2888 2017-10-03 Ryan Haddad <ryanhaddad@apple.com>
2890 Skip JSC test stress/regress-159779-2.js on debug.
2891 https://bugs.webkit.org/show_bug.cgi?id=177204
2893 Unreviewed test gardening.
2895 * stress/regress-159779-2.js:
2897 2017-10-02 Caio Lima <ticaiolima@gmail.com>
2899 ChakraCore/test/Function/apply3.js is resulting wrong result in x86_64
2900 https://bugs.webkit.org/show_bug.cgi?id=175642
2902 Reviewed by Darin Adler.
2904 * ChakraCore/test/Function/apply3.baseline-jsc:
2906 2017-10-01 Commit Queue <commit-queue@webkit.org>
2908 Unreviewed, rolling out r222564.
2909 https://bugs.webkit.org/show_bug.cgi?id=177720
2911 "It regressed JetStream by 2% on iOS caused by a 50%
2912 regression on the bigfib subtest" (Requested by saamyjoon on
2917 "Add Above/Below comparisons for UInt32 patterns"
2918 https://bugs.webkit.org/show_bug.cgi?id=177281
2919 http://trac.webkit.org/changeset/222564
2921 2017-09-29 Yusuke Suzuki <utatane.tea@gmail.com>
2923 [DFG] Support ArrayPush with multiple args
2924 https://bugs.webkit.org/show_bug.cgi?id=175823
2926 Reviewed by Saam Barati.
2928 * microbenchmarks/array-push-0.js: Added.
2930 * microbenchmarks/array-push-1.js: Added.
2932 * microbenchmarks/array-push-2.js: Added.
2934 * microbenchmarks/array-push-3.js: Added.
2936 * stress/array-push-multiple-contiguous.js: Added.
2939 * stress/array-push-multiple-double-nan.js: Added.
2942 * stress/array-push-multiple-double.js: Added.
2945 * stress/array-push-multiple-int32.js: Added.
2948 * stress/array-push-multiple-many-contiguous.js: Added.
2951 * stress/array-push-multiple-many-double.js: Added.
2954 * stress/array-push-multiple-many-int32.js: Added.
2957 * stress/array-push-multiple-many-storage.js: Added.
2960 * stress/array-push-multiple-storage.js: Added.
2963 * stress/array-push-with-force-exit.js: Added.
2964 (target.createBuiltin):
2966 2017-09-29 Saam Barati <sbarati@apple.com>
2968 Custom GetterSetterAccessCase does not use the correct slotBase when making call
2969 https://bugs.webkit.org/show_bug.cgi?id=177639
2971 Reviewed by Geoffrey Garen.
2973 * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: Added.
2979 2017-09-29 Commit Queue <commit-queue@webkit.org>
2981 Unreviewed, rolling out r222563, r222565, and r222581.
2982 https://bugs.webkit.org/show_bug.cgi?id=177675
2984 "It causes a crash when playing youtube videos" (Requested by
2985 saamyjoon on #webkit).
2987 Reverted changesets:
2989 "[DFG] Support ArrayPush with multiple args"
2990 https://bugs.webkit.org/show_bug.cgi?id=175823
2991 http://trac.webkit.org/changeset/222563
2993 "Unreviewed, build fix after r222563"
2994 https://bugs.webkit.org/show_bug.cgi?id=175823
2995 http://trac.webkit.org/changeset/222565
2997 "Unreviewed, fix x86 breaking due to exhausted registers"
2998 https://bugs.webkit.org/show_bug.cgi?id=175823
2999 http://trac.webkit.org/changeset/222581
3001 2017-09-28 Mark Lam <mark.lam@apple.com>
3003 test262: Unexpected passes after r222617 and r222618.
3004 https://bugs.webkit.org/show_bug.cgi?id=177622
3005 <rdar://problem/34725960>
3007 Reviewed by Saam Barati.
3009 Update test262.yaml for tests that are now passing.
3013 2017-09-27 Michael Saboff <msaboff@apple.com>
3015 REGRESSION(210837): RegExp containing failed non-zero minimum greedy groups incorrectly match
3016 https://bugs.webkit.org/show_bug.cgi?id=177570
3018 Reviewed by Filip Pizlo.
3020 New regression test.
3022 * stress/regress-177570.js: Added.
3024 2017-09-28 Michael Saboff <msaboff@apple.com>
3026 Heap out of bounds read in JSC::Yarr::Parser<JSC::Yarr::SyntaxChecker, unsigned char>::peek()
3027 https://bugs.webkit.org/show_bug.cgi?id=177423
3029 Reviewed by Mark Lam.
3031 Updated regression test.
3033 * stress/regress-177423.js:
3036 2017-09-27 Mark Lam <mark.lam@apple.com>
3038 JSArray::canFastCopy() should fail if the source and destination arrays are the same.
3039 https://bugs.webkit.org/show_bug.cgi?id=177584
3040 <rdar://problem/34463903>
3042 Reviewed by Saam Barati.
3044 * stress/regress-177584.js: Added.
3046 (Array.prototype.Symbol.species):
3048 2017-09-27 Saam Barati <sbarati@apple.com>
3050 Propagate hasBeenFlattenedBefore in Structure's transition constructor and fix our for-in caching to fail when the prototype chain has an object with a dictionary structure
3051 https://bugs.webkit.org/show_bug.cgi?id=177523
3053 Reviewed by Mark Lam.
3055 * stress/prototype-chain-has-dictionary-structure-for-in-caching.js: Added.
3058 (addMethods.Test.prototype.string_appeared_here.i.methodNumber):
3060 (i.Test.prototype.propName):
3062 2017-09-27 Mark Lam <mark.lam@apple.com>
3064 Yarr::Parser::tryConsumeGroupName() should check for the end of the pattern.
3065 https://bugs.webkit.org/show_bug.cgi?id=177423
3066 <rdar://problem/34621320>
3068 Reviewed by Keith Miller.
3070 * stress/regress-177423.js: Added.
3072 2017-09-27 Yusuke Suzuki <utatane.tea@gmail.com>
3074 Add Above/Below comparisons for UInt32 patterns
3075 https://bugs.webkit.org/show_bug.cgi?id=177281
3077 Reviewed by Saam Barati.
3079 * stress/uint32-comparison-jump.js: Added.
3089 * stress/uint32-comparison.js: Added.
3100 2017-09-25 Yusuke Suzuki <utatane.tea@gmail.com>
3102 [DFG] Support ArrayPush with multiple args
3103 https://bugs.webkit.org/show_bug.cgi?id=175823
3105 Reviewed by Saam Barati.
3107 * microbenchmarks/array-push-0.js: Added.
3109 * microbenchmarks/array-push-1.js: Added.
3111 * microbenchmarks/array-push-2.js: Added.
3113 * microbenchmarks/array-push-3.js: Added.
3115 * stress/array-push-multiple-contiguous.js: Added.
3118 * stress/array-push-multiple-double-nan.js: Added.
3121 * stress/array-push-multiple-double.js: Added.
3124 * stress/array-push-multiple-int32.js: Added.
3127 * stress/array-push-multiple-many-contiguous.js: Added.
3130 * stress/array-push-multiple-many-double.js: Added.
3133 * stress/array-push-multiple-many-int32.js: Added.
3136 * stress/array-push-multiple-many-storage.js: Added.
3139 * stress/array-push-multiple-storage.js: Added.
3143 2017-09-26 Commit Queue <commit-queue@webkit.org>
3145 Unreviewed, rolling out r222518.
3146 https://bugs.webkit.org/show_bug.cgi?id=177507
3148 Break the High Sierra build (Requested by yusukesuzuki on
3153 "Add Above/Below comparisons for UInt32 patterns"
3154 https://bugs.webkit.org/show_bug.cgi?id=177281
3155 http://trac.webkit.org/changeset/222518
3157 2017-09-26 Yusuke Suzuki <utatane.tea@gmail.com>
3159 Add Above/Below comparisons for UInt32 patterns
3160 https://bugs.webkit.org/show_bug.cgi?id=177281
3162 Reviewed by Saam Barati.
3164 * stress/uint32-comparison-jump.js: Added.
3174 * stress/uint32-comparison.js: Added.
3185 2017-09-23 Keith Miller <keith_miller@apple.com>
3187 Fix infinite looping test262 test
3188 https://bugs.webkit.org/show_bug.cgi?id=177412
3190 Reviewed by Yusuke Suzuki.
3192 This test was poorly designed since failing it would cause the vm
3193 to inifinite loop. I've fixed it locally and will fix it on github pending
3194 the results of next weeks tc39 meeting.
3197 * test262/test/language/statements/for-of/iterator-next-reference.js:
3199 2017-09-23 Joseph Pecoraro <pecoraro@apple.com>
3201 test262: $.agent became $262.agent in test262 update
3202 https://bugs.webkit.org/show_bug.cgi?id=177407
3204 Reviewed by Yusuke Suzuki.
3207 ~320 tests pass now that we correctly make $262 available.
3209 2017-09-22 Keith Miller <keith_miller@apple.com>
3211 Speculatively change iteration protocall to use the same next function
3212 https://bugs.webkit.org/show_bug.cgi?id=175653
3214 Reviewed by Saam Barati.
3216 Change test to match the new iteration behavior.
3218 * stress/spread-optimized-properly.js:
3220 2017-09-22 Yusuke Suzuki <utatane.tea@gmail.com>
3222 [DFG][FTL] Profile array vector length for array allocation
3223 https://bugs.webkit.org/show_bug.cgi?id=177051
3225 Reviewed by Saam Barati.
3227 * microbenchmarks/new-array-buffer-vector-profile.js: Added.
3230 2017-09-22 Commit Queue <commit-queue@webkit.org>
3232 Unreviewed, rolling out r222380.
3233 https://bugs.webkit.org/show_bug.cgi?id=177352
3235 Octane/box2d shows 8% regression (Requested by yusukesuzuki on
3240 "[DFG][FTL] Profile array vector length for array allocation"
3241 https://bugs.webkit.org/show_bug.cgi?id=177051
3242 http://trac.webkit.org/changeset/222380
3244 2017-09-21 Yusuke Suzuki <utatane.tea@gmail.com>
3246 [DFG][FTL] Profile array vector length for array allocation
3247 https://bugs.webkit.org/show_bug.cgi?id=177051
3249 Reviewed by Saam Barati.
3251 * microbenchmarks/new-array-buffer-vector-profile.js: Added.
3254 2017-09-21 Joseph Pecoraro <pecoraro@apple.com>
3256 Skip new hanging test262 tests.
3257 https://bugs.webkit.org/show_bug.cgi?id=177326
3259 Unreviewed test gardening.
3263 2017-09-21 Ryan Haddad <ryanhaddad@apple.com>
3265 Mark 6 test262 tests as passing.
3266 https://bugs.webkit.org/show_bug.cgi?id=177307
3268 Unreviewed test gardening.
3272 2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
3274 Unreviewed follow-up to r222311.
3276 * test262/harness/sta.js:
3277 * test262/test/built-ins/Array/from/calling-from-valid-1-noStrict.js:
3278 * test262/test/built-ins/Array/from/calling-from-valid-1-onlyStrict.js:
3279 * test262/test/built-ins/Array/from/calling-from-valid-2.js:
3280 * test262/test/built-ins/Array/from/elements-added-after.js:
3281 * test262/test/built-ins/Array/from/elements-deleted-after.js:
3282 * test262/test/built-ins/Array/from/elements-updated-after.js:
3283 * test262/test/built-ins/Array/from/from-array.js:
3284 * test262/test/built-ins/Array/from/mapfn-is-not-callable-typeerror.js:
3285 * test262/test/built-ins/Array/from/mapfn-throws-exception.js:
3286 * test262/test/built-ins/Array/from/source-array-boundary.js:
3287 * test262/test/built-ins/Array/from/source-object-constructor.js:
3288 * test262/test/built-ins/Array/from/source-object-iterator-1.js:
3289 * test262/test/built-ins/Array/from/source-object-iterator-2.js:
3290 * test262/test/built-ins/Array/from/source-object-length.js:
3291 * test262/test/built-ins/Array/from/source-object-missing.js:
3292 * test262/test/built-ins/Array/from/source-object-without.js:
3293 * test262/test/built-ins/Array/from/this-null.js:
3294 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
3295 * test262/test/language/line-terminators/S7.3_A3.2_T1.js:
3296 * test262/test/language/literals/numeric/7.8.3-1gs.js:
3297 * test262/test/language/literals/numeric/7.8.3-2gs.js:
3298 * test262/test/language/literals/numeric/7.8.3-3gs.js:
3299 * test262/test/language/literals/regexp/7.8.5-1gs.js:
3300 * test262/test/language/literals/string/7.8.4-1gs.js:
3301 Fix some files that I failed to update when I applied my patch.
3303 2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
3305 Update test262 tests
3306 https://bugs.webkit.org/show_bug.cgi?id=177220
3308 Reviewed by Saam Barati and Yusuke Suzuki.
3311 * test262/test262-Revision.txt:
3312 New rebaselined expectations for all tests.
3317 2017-09-17 Yusuke Suzuki <utatane.tea@gmail.com>
3319 [DFG] Remove ToThis more aggressively
3320 https://bugs.webkit.org/show_bug.cgi?id=177056
3322 Reviewed by Saam Barati.
3324 * stress/generator-with-this-strict.js: Added.
3328 * stress/generator-with-this.js: Added.
3333 2017-09-17 Michael Saboff <msaboff@apple.com>
3335 https://bugs.webkit.org/show_bug.cgi?id=177038
3336 Add an option to run-jsc-stress-tests to limit tests variations to a basic set
3338 Reviewed by JF Bastien.
3340 * stress/unshiftCountSlowCase-correct-postCapacity.js: Disabled this test on ARM64 iOS devices
3341 as it dies using too much memory.
3343 2017-09-15 Saam Barati <sbarati@apple.com>
3345 Arity fixup during inlining should do a 2 phase commit so it properly recovers the frame in case of exit
3346 https://bugs.webkit.org/show_bug.cgi?id=176981
3348 Reviewed by Yusuke Suzuki.
3350 * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js: Added.
3354 (const.bar.createBuiltin):
3356 2017-09-14 Saam Barati <sbarati@apple.com>
3358 It should be valid to exit before each set when doing arity fixup when inlining
3359 https://bugs.webkit.org/show_bug.cgi?id=176948
3361 Reviewed by Keith Miller.
3363 * stress/arity-fixup-inlining-dont-generate-invalid-use.js: Added.
3368 2017-09-14 Yusuke Suzuki <utatane.tea@gmail.com>
3370 [JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray
3371 https://bugs.webkit.org/show_bug.cgi?id=176867
3373 Reviewed by Sam Weinig.
3375 * microbenchmarks/object-get-own-property-symbols.js: Added.
3378 2017-09-13 Mark Lam <mark.lam@apple.com>
3380 Rolling out r221832: Regresses Speedometer by ~4% and Dromaeo CSS YUI by ~20%.
3381 https://bugs.webkit.org/show_bug.cgi?id=176888
3382 <rdar://problem/34381832>
3386 * stress/op_mod-ConstVar.js:
3387 * stress/op_mod-VarConst.js:
3388 * stress/op_mod-VarVar.js:
3390 2017-09-13 Ryan Haddad <ryanhaddad@apple.com>
3392 Skip 3 op_mod tests on Debug JSC bots.
3393 https://bugs.webkit.org/show_bug.cgi?id=176630
3395 Unreviewed test gardening.
3397 * stress/op_mod-ConstVar.js:
3398 * stress/op_mod-VarConst.js:
3399 * stress/op_mod-VarVar.js:
3401 2017-09-13 Yusuke Suzuki <utatane.tea@gmail.com>
3403 [JSC] Fix Array allocation in Object.keys
3404 https://bugs.webkit.org/show_bug.cgi?id=176826
3406 Reviewed by Saam Barati.
3408 * stress/object-own-property-keys.js: Added.
3411 2017-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
3413 [DFG] Optimize WeakMap::get by adding intrinsic and fixup
3414 https://bugs.webkit.org/show_bug.cgi?id=176010
3416 Reviewed by Filip Pizlo.
3418 * microbenchmarks/weak-map-key.js: Added.
3421 (let.start.Date.now):
3423 2017-09-12 Mark Lam <mark.lam@apple.com>
3425 REGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots.
3426 https://bugs.webkit.org/show_bug.cgi?id=176630
3428 Reviewed by JF Bastien.
3430 Debug builds are just slow, and these tests do a lot. They pass when I run them
3431 locally on my MacBook Pro. So, I'm bumping their timing multiplier to 2.0x as
3432 a speculative fix for the bots that are seeing these fail.
3434 I also undid the skipping of the op_mod tests for debug builds.
3436 * stress/op_div-ConstVar.js:
3437 * stress/op_div-VarConst.js:
3438 * stress/op_div-VarVar.js:
3439 * stress/op_mod-ConstVar.js:
3440 * stress/op_mod-VarConst.js:
3441 * stress/op_mod-VarVar.js:
3443 2017-09-12 Ryan Haddad <ryanhaddad@apple.com>
3445 Skip stress/value-to-boolean.js on Debug bots.
3446 https://bugs.webkit.org/show_bug.cgi?id=176787
3448 Unreviewed test gardening.
3450 * stress/value-to-boolean.js:
3452 2017-09-11 Mark Lam <mark.lam@apple.com>
3454 Change test expectation for test262/test/language/statements/try/tco-catch.js
3455 https://bugs.webkit.org/show_bug.cgi?id=176749
3457 Rubber stamped by Keith Miller.
3459 It's been failing since at least r221821. I'm changing the test expectation to
3460 fail to green the bots while I investigate some more.
3464 2017-09-11 Ryan Haddad <ryanhaddad@apple.com>
3466 Unreviewed, rolling out r221854.
3468 The test added with this change fails on 32-bit JSC bots.
3472 "[DFG] Optimize WeakMap::get by adding intrinsic and fixup"
3473 https://bugs.webkit.org/show_bug.cgi?id=176010
3474 http://trac.webkit.org/changeset/221854
3476 2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
3478 [DFG] Optimize WeakMap::get by adding intrinsic and fixup
3479 https://bugs.webkit.org/show_bug.cgi?id=176010
3481 Reviewed by Filip Pizlo.
3483 * microbenchmarks/weak-map-key.js: Added.
3486 (let.start.Date.now):
3488 2017-09-09 Yusuke Suzuki <utatane.tea@gmail.com>
3490 [JSC] Optimize Object.keys by using careful array allocation
3491 https://bugs.webkit.org/show_bug.cgi?id=176654
3493 Reviewed by Darin Adler.
3495 * microbenchmarks/object-keys.js: Added.
3498 2017-09-09 Filip Pizlo <fpizlo@apple.com>
3500 Error should compute .stack and friends lazily
3501 https://bugs.webkit.org/show_bug.cgi?id=176645
3503 Reviewed by Saam Barati.
3505 * ChakraCore.yaml: Skip test that was testing non-standard behavior of these fields.
3506 * microbenchmarks/new-error.js: Added.
3507 * microbenchmarks/throw.js: Added.
3509 2017-09-09 Mark Lam <mark.lam@apple.com>
3511 [Re-landing] Use JIT probes for DFG OSR exit.
3512 https://bugs.webkit.org/show_bug.cgi?id=175144
3513 <rdar://problem/33437050>
3515 Not reviewed. Original patch reviewed by Saam Barati.
3517 Disable these tests for debug builds because they run too slow with the new OSR exit.
3519 * stress/op_mod-ConstVar.js:
3520 * stress/op_mod-VarConst.js:
3521 * stress/op_mod-VarVar.js:
3523 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
3525 [DFG] NewArrayWithSize(size)'s size does not care negative zero
3526 https://bugs.webkit.org/show_bug.cgi?id=176300
3528 Reviewed by Saam Barati.
3530 * stress/new-array-with-size-div.js: Added.
3535 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
3537 [DFG] PutByVal with Array::Generic is too generic
3538 https://bugs.webkit.org/show_bug.cgi?id=176345
3540 Reviewed by Filip Pizlo.
3542 * stress/object-assign-symbols.js: Added.
3545 * stress/object-assign.js: Added.
3548 (i.shouldBe.JSON.stringify.test):
3550 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
3552 [DFG][FTL] GetByVal(ObjectUse with Array::Generic, StringUse/SymbolUse) should be supported
3553 https://bugs.webkit.org/show_bug.cgi?id=176590
3555 Reviewed by Saam Barati.
3557 * microbenchmarks/object-iterate-symbols.js: Added.
3559 * microbenchmarks/object-iterate.js: Added.
3561 * stress/object-iterate-symbols.js: Added.
3564 * stress/object-iterate.js: Added.
3568 2017-09-07 Per Arne Vollan <pvollan@apple.com>
3570 [Win32] 10 JSC stress tests are failing.
3571 https://bugs.webkit.org/show_bug.cgi?id=176538
3573 Reviewed by Mark Lam.
3575 Skip tests on Windows to make the bots green.
3578 * stress/date-relaxed.js:
3580 2017-09-06 Mark Lam <mark.lam@apple.com>
3582 constructGenericTypedArrayViewWithArguments() is missing an exception check.
3583 https://bugs.webkit.org/show_bug.cgi?id=176485
3584 <rdar://problem/33898874>
3586 Reviewed by Keith Miller.
3588 * stress/regress-176485.js: Added.
3590 2017-09-05 Saam Barati <sbarati@apple.com>
3592 isNotCellSpeculation is wrong with respect to SpecEmpty
3593 https://bugs.webkit.org/show_bug.cgi?id=176429
3595 Reviewed by Michael Saboff.
3597 * microbenchmarks/is-not-cell-speculation-for-empty-value.js: Added.
3600 2017-09-05 Joseph Pecoraro <pecoraro@apple.com>
3602 test262: Completion values for control flow do not match the spec
3603 https://bugs.webkit.org/show_bug.cgi?id=171265
3605 Reviewed by Saam Barati.
3607 * stress/completion-value.js:
3608 Condensed test for completion values in top level statements.
3610 * stress/super-get-by-id.js:
3611 ClassDeclaration when evaled no longer produce values. Convert
3612 these to ClassExpressions so they produce the class value.
3614 * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
3615 This is a progression for currect spec behavior.
3617 * mozilla/mozilla-tests.yaml:
3618 This test is now outdated, so mark it as failing for that reason.
3621 Passing all "cptn" completion value tests.
3623 2017-09-04 Saam Barati <sbarati@apple.com>
3625 typeCheckHoistingPhase may emit a CheckStructure on the empty value which leads to a dereference of zero on 64 bit platforms
3626 https://bugs.webkit.org/show_bug.cgi?id=176317
3628 Reviewed by Keith Miller.
3630 * stress/dont-crash-when-hoist-check-structure-on-tdz.js: Added.
3633 2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
3635 [DFG][FTL] Efficiently execute number#toString()
3636 https://bugs.webkit.org/show_bug.cgi?id=170007
3638 Reviewed by Keith Miller.
3640 * microbenchmarks/number-to-string-strength-reduction.js: Added.
3642 * microbenchmarks/number-to-string-with-radix-10.js: Added.
3644 * microbenchmarks/number-to-string-with-radix-cse.js: Added.
3646 * microbenchmarks/number-to-string-with-radix.js: Added.
3648 * stress/number-to-string-strength-reduction.js: Added.
3651 * stress/number-to-string-with-radix-10.js: Added.
3654 * stress/number-to-string-with-radix-cse.js: Added.
3657 * stress/number-to-string-with-radix-invalid.js: Added.
3659 * stress/number-to-string-with-radix-watchpoint.js: Added.
3662 (i.i.1e3.Number.prototype.toString):
3663 * stress/number-to-string-with-radix.js: Added.
3667 2017-09-02 Yusuke Suzuki <utatane.tea@gmail.com>
3669 [DFG] Relax arity requirement
3670 https://bugs.webkit.org/show_bug.cgi?id=175523
3672 Reviewed by Saam Barati.
3674 * stress/arity-mismatch-arguments-length.js: Added.
3678 * stress/arity-mismatch-get-argument.js: Added.
3680 (builtin.createBuiltin):
3682 * stress/arity-mismatch-inlining-extra-slots.js: Added.
3686 * stress/arity-mismatch-inlining.js: Added.
3690 * stress/arity-mismatch-rest.js: Added.
3696 2017-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
3698 [JSC] Fix "name" and "length" of Proxy revoke function
3699 https://bugs.webkit.org/show_bug.cgi?id=176155
3701 Reviewed by Mark Lam.
3705 2017-08-31 Saam Barati <sbarati@apple.com>
3707 Graph::methodOfGettingAValueProfileFor compares NodeOrigin instead of the semantic CodeOrigin
3708 https://bugs.webkit.org/show_bug.cgi?id=176206
3710 Reviewed by Keith Miller.
3712 * stress/compare-semantic-origin-op-negate-method-of-getting-a-value-profile.js: Added.
3717 2017-08-31 Ryan Haddad <ryanhaddad@apple.com>
3719 Skip two slow JSC tests after r221422.
3721 Unreviewed test gardening.
3723 * stress/regexp-prototype-match-on-too-long-rope.js:
3724 * stress/regexp-prototype-test-on-too-long-rope.js:
3726 2017-08-31 Filip Pizlo <fpizlo@apple.com>