1 2018-09-10 Michael Saboff <msaboff@apple.com>
3 Test262 failure with Named Capture Groups - using a reference before the group is defined
4 https://bugs.webkit.org/show_bug.cgi?id=189407
6 Reviewed by Alex Christensen.
8 Re-enabled previously failing test.
11 * test262/expectations.yaml:
13 2018-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
15 [JSC] Remove loadModule function in jsc.cpp
16 https://bugs.webkit.org/show_bug.cgi?id=184808
18 Reviewed by Darin Adler.
20 Use `import` expression instead.
22 * modules/different-view.js:
23 (from.string_appeared_here.shouldThrow): Deleted.
24 * modules/fallback-ambiguous.js:
25 (from.string_appeared_here.shouldThrow): Deleted.
26 * modules/import-error.js:
27 (from.string_appeared_here.shouldThrow): Deleted.
28 (shouldThrow): Deleted.
29 * modules/indirect-export-error.js:
30 (from.string_appeared_here.shouldThrow): Deleted.
31 (shouldThrow): Deleted.
32 * modules/namespace-error.js:
33 (from.string_appeared_here.shouldThrow): Deleted.
35 2018-09-07 Mark Lam <mark.lam@apple.com>
37 Ensure that handleIntrinsicCall() is only applied on op_call shaped instructions.
38 https://bugs.webkit.org/show_bug.cgi?id=189317
39 <rdar://problem/44152198>
41 Reviewed by Filip Pizlo.
43 * stress/regress-189317.js: Added.
47 2018-09-06 Yusuke Suzuki <yusukesuzuki@slowstart.org>
49 [DFG] DFG should handle String#toString
50 https://bugs.webkit.org/show_bug.cgi?id=189151
52 Reviewed by Saam Barati.
54 The error message in String#toString and String#valueOf is poor, which will be
55 handled in a separate bug[1].
57 [1]: https://bugs.webkit.org/show_bug.cgi?id=189357
59 * microbenchmarks/string-object-to-string.js: Added.
61 * microbenchmarks/string-object-value-of.js: Added.
63 * stress/string-to-string-error.js: Added.
66 * stress/string-to-string.js: Added.
71 * stress/string-value-of-error.js: Added.
74 * stress/string-value-of.js: Added.
80 2018-09-06 Michael Saboff <msaboff@apple.com>
82 Improper speculation type for Math.pow(NaN, 0) in Abstract Interpreter
83 https://bugs.webkit.org/show_bug.cgi?id=189380
85 Reviewed by Saam Barati.
89 * stress/math-pow-nan-to-zero-spec-type.js: Added.
93 2018-09-06 Mark Lam <mark.lam@apple.com>
95 Gardening: Move regress-189185.js under JSTests/wasm.
96 https://bugs.webkit.org/show_bug.cgi?id=189347
100 * stress/regress-189185.js: Removed.
101 * wasm/regress/regress-189185.js: Copied from JSTests/stress/regress-189185.js.
103 2018-09-05 Mark Lam <mark.lam@apple.com>
105 JSPropertyNameEnumerator::visitChildren() needs to visit its m_cachedStructureID.
106 https://bugs.webkit.org/show_bug.cgi?id=189124
107 <rdar://problem/43863605>
109 Reviewed by Filip Pizlo.
111 * stress/regress-189124.js: Added.
113 2018-09-05 Ross Kirsling <ross.kirsling@sony.com>
115 [ESNext] Symbol.prototype.description
116 https://bugs.webkit.org/show_bug.cgi?id=186686
118 Reviewed by Keith Miller.
120 * stress/symbol-description.js:
121 Add tests for empty and null symbol cases.
123 * test262/config.yaml:
124 Enable Symbol.prototype.description tests.
126 2018-09-05 David Fenton <david_fenton@apple.com>
128 [32-bit JSC tests] Exception: ReferenceError: Can't find variable: WebAssembly.
129 https://bugs.webkit.org/show_bug.cgi?id=189312.
131 Unreviewed test gardening.
133 * stress/regress-189185.js:
135 2018-09-05 Mark Lam <mark.lam@apple.com>
137 isAsyncGeneratorMethodParseMode() should check for SourceParseMode::AsyncGeneratorWrapperMethodMode.
138 https://bugs.webkit.org/show_bug.cgi?id=189292
139 <rdar://problem/38907433>
141 Reviewed by Saam Barati.
143 * stress/regress-189292.js: Added.
145 2018-09-04 David Fenton <david_fenton@apple.com>
147 Skip Test on 32-bit platforms.
148 https://bugs.webkit.org/show_bug.cgi?id=189185.
150 Unreviewed test gardening.
152 * stress/regress-189185.js:
154 2018-09-03 Mark Lam <mark.lam@apple.com>
156 The watchdog sometimes fails to terminate a script.
157 https://bugs.webkit.org/show_bug.cgi?id=189227
158 <rdar://problem/39932857>
160 Reviewed by Saam Barati.
162 * stress/regress-189227-watchdog-on-infinite-loop.js: Added.
164 2018-09-02 Yusuke Suzuki <yusukesuzuki@slowstart.org>
166 Implement Object.fromEntries
167 https://bugs.webkit.org/show_bug.cgi?id=188481
169 Reviewed by Darin Adler.
171 * stress/object-from-entries.js: Added.
174 (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
175 (shouldBe.set get shouldThrow):
177 2018-08-24 Yusuke Suzuki <yusukesuzuki@slowstart.org>
179 Function object should convert params to string before throw a parsing error
180 https://bugs.webkit.org/show_bug.cgi?id=188874
182 Reviewed by Darin Adler.
184 * stress/function-body-to-string-before-parameter-syntax-check.js: Added.
187 2018-08-31 Mark Lam <mark.lam@apple.com>
189 Fix exception check accounting in constructJSWebAssemblyCompileError().
190 https://bugs.webkit.org/show_bug.cgi?id=189185
191 <rdar://problem/39786007>
193 Reviewed by Michael Saboff.
195 * stress/regress-189185.js: Added.
196 (new.WebAssembly.CompileError.valueOf):
198 2018-08-31 Mark Lam <mark.lam@apple.com>
200 Fix exception check accounting in JSDataView::defineOwnProperty().
201 https://bugs.webkit.org/show_bug.cgi?id=189186
202 <rdar://problem/39786049>
204 Reviewed by Michael Saboff.
206 * stress/regress-189186.js: Added.
208 2018-08-31 Mark Lam <mark.lam@apple.com>
210 Add missing exception check in arrayProtoFuncLastIndexOf().
211 https://bugs.webkit.org/show_bug.cgi?id=189184
212 <rdar://problem/39785959>
214 Reviewed by Yusuke Suzuki.
216 * stress/regress-189184.js: Added.
218 2018-08-31 Saam barati <sbarati@apple.com>
220 convertToRegExpMatchFastGlobal must use KnownString as the child use kind
221 https://bugs.webkit.org/show_bug.cgi?id=189173
222 <rdar://problem/43501645>
224 Reviewed by Michael Saboff.
226 * stress/may-exit-should-be-false-regexp-constant-folding.js: Added.
230 2018-08-30 Saam barati <sbarati@apple.com>
232 CSE DataViewGet* DFG nodes
233 https://bugs.webkit.org/show_bug.cgi?id=188768
235 Reviewed by Yusuke Suzuki.
237 * microbenchmarks/dataview-cse.js: Added.
240 * stress/dataview-get-cse.js: Added.
255 2018-08-30 Yusuke Suzuki <yusukesuzuki@slowstart.org>
257 output of toString() of Generator is wrong
258 https://bugs.webkit.org/show_bug.cgi?id=188952
260 Reviewed by Saam Barati.
262 * stress/function-to-string.js: Added.
266 (shouldBe.async.test):
270 * test262/expectations.yaml:
272 2018-08-29 Mark Lam <mark.lam@apple.com>
274 Add some missing exception checks in JSRopeString::resolveRopeToAtomicString().
275 https://bugs.webkit.org/show_bug.cgi?id=189132
276 <rdar://problem/42513068>
278 Reviewed by Saam Barati.
280 * stress/regress-189132.js: Added.
282 2018-08-27 Yusuke Suzuki <yusukesuzuki@slowstart.org>
284 [WebAssembly] Parse wasm modules in a streaming fashion
285 https://bugs.webkit.org/show_bug.cgi?id=188943
287 Reviewed by Mark Lam.
289 Wasm parsing error should not report the total byte size since streaming parsing does not
290 want to load all the bytes.
291 Add a simple test wasm/stress/streaming-basic.js for initial streaming parsing implementation.
293 * wasm/function-tests/invalid-duplicate-export.js:
294 * wasm/function-tests/memory-alignment.js:
295 (const.op.of.WASM.opcodes):
296 * wasm/function-tests/memory-section-and-import.js:
297 * wasm/function-tests/void-argument-type-should-be-a-validation-error.js:
298 * wasm/js-api/Module-compile.js:
299 (async.testPromiseAPI):
300 * wasm/js-api/element.js:
301 (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
303 * wasm/js-api/global-error.js:
304 (assert.throws.new.WebAssembly.Module.bin):
306 * wasm/js-api/table.js:
307 (new.WebAssembly.Module):
309 (assertBadTableImport):
310 * wasm/js-api/test_Data.js:
311 (DataSectionWithoutMemory):
312 * wasm/js-api/test_Start.js:
313 (InvalidStartFunctionIndex):
314 * wasm/js-api/test_basic_api.js:
315 (const.c.in.constructorProperties.switch):
316 * wasm/js-api/version.js:
317 * wasm/stress/nameSection.wasm: Added.
318 * wasm/stress/streaming-basic.js: Added.
321 2018-08-27 Mark Lam <mark.lam@apple.com>
323 Fix exception throwing code so that topCallFrame and topEntryFrame stay true to their names.
324 https://bugs.webkit.org/show_bug.cgi?id=188577
325 <rdar://problem/42985684>
327 Reviewed by Saam Barati.
329 * stress/regress-188577.js: Added.
331 2018-08-24 Yusuke Suzuki <yusukesuzuki@slowstart.org>
333 [JSC] Array.prototype.reverse modifies JSImmutableButterfly
334 https://bugs.webkit.org/show_bug.cgi?id=188794
336 Reviewed by Saam Barati.
338 * stress/reverse-with-immutable-butterfly.js: Added.
344 2018-08-22 Saam barati <sbarati@apple.com>
346 Make data-view-access.js run less time to prevent timeouts on 32-bit
348 * microbenchmarks/data-view-accesses.js:
350 2018-08-22 Mark Lam <mark.lam@apple.com>
352 The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions.
353 https://bugs.webkit.org/show_bug.cgi?id=188298
354 <rdar://problem/42888427>
356 Reviewed by Saam Barati.
358 * stress/bug-188298.js: Added.
360 2018-08-20 Saam barati <sbarati@apple.com>
362 Inline DataView accesses into DFG/FTL
363 https://bugs.webkit.org/show_bug.cgi?id=188573
364 <rdar://problem/43286746>
366 Reviewed by Michael Saboff.
368 * microbenchmarks/data-view-accesses-2.js: Added.
370 (let.p.of.Object.keys.let.str):
371 (let.p.of.Object.keys):
373 * microbenchmarks/data-view-accesses.js: Added.
375 (let.p.of.Object.keys.let.str):
376 (let.p.of.Object.keys):
377 * stress/dataview-jit-bounds-checks.js: Added.
379 (let.p.of.Object.keys.let.str):
380 (let.p.of.Object.keys):
381 * stress/dataview-jit-get.js: Added.
384 (test1.littleEndian):
388 (test2.littleEndian):
392 (test3.littleEndian):
396 (test4.littleEndian):
400 (test5.littleEndian):
404 (test6.littleEndian):
411 * stress/dataview-jit-neuter.js: Added.
417 * stress/dataview-jit-set.js: Added.
422 (test.storeLittleEndian):
423 (test.storeBigEndian):
426 (test2.storeLittleEndian):
427 (test2.storeBigEndian):
430 (test3.storeLittleEndian):
431 (test3.storeBigEndian):
434 (test4.storeLittleEndian):
435 (test4.storeBigEndian):
438 (test5.storeLittleEndian):
439 (test5.storeBigEndian):
442 (test6.storeLittleEndian):
443 (test6.storeBigEndian):
450 * stress/dataview-jit-unaligned-accesses.js: Added.
452 (let.p.of.Object.keys.let.str):
453 (let.p.of.Object.keys):
455 2018-08-20 Yusuke Suzuki <utatane.tea@gmail.com>
457 [YARR] Extend size of fixed characters bulk matching in 64bit platform
458 https://bugs.webkit.org/show_bug.cgi?id=181989
460 Reviewed by Michael Saboff.
462 * stress/characters-regexp-ignore-case.js: Added.
474 * stress/characters-regexp.js: Added.
487 2018-08-17 Saam barati <sbarati@apple.com>
489 intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
490 https://bugs.webkit.org/show_bug.cgi?id=188707
491 <rdar://problem/43015442>
493 Reviewed by Mark Lam.
495 * stress/cfa-expected-values-must-set-clobbered-to-false.js: Added.
500 2018-08-10 Keith Miller <keith_miller@apple.com>
502 Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero
503 https://bugs.webkit.org/show_bug.cgi?id=185127
505 Reviewed by Saam Barati.
507 Rebaseline the expectations.
509 * test262/expectations.yaml:
511 2018-08-10 Yusuke Suzuki <yusukesuzuki@slowstart.org>
513 Date.UTC should not return NaN with only Year param
514 https://bugs.webkit.org/show_bug.cgi?id=188378
516 Reviewed by Keith Miller.
519 * ChakraCore/test/Date/dateutc.baseline-jsc: Added.
520 * stress/date-utc-optional.js: Added.
522 * test262/expectations.yaml:
524 2018-08-08 Keith Miller <keith_miller@apple.com>
526 Array.prototype.sort should call @toLength instead of ">>> 0"
527 https://bugs.webkit.org/show_bug.cgi?id=188430
529 Reviewed by Saam Barati.
531 * test262/expectations.yaml:
533 2018-08-08 Keith Miller <keith_miller@apple.com>
535 Array.prototype.sort should throw TypeError if param is a not callable object
536 https://bugs.webkit.org/show_bug.cgi?id=188382
538 Reviewed by Saam Barati.
540 * test262/expectations.yaml:
542 2018-08-01 Andy VanWagoner <andy@vanwagoner.family>
544 [INTL] Implement hourCycle in DateTimeFormat
545 https://bugs.webkit.org/show_bug.cgi?id=188006
547 Reviewed by Darin Adler.
549 Removed fixed hourCycle expectations.
551 * test262/expectations.yaml:
553 2018-07-25 Yusuke Suzuki <utatane.tea@gmail.com>
555 [JSC] Record CoW status in ArrayProfile correctly
556 https://bugs.webkit.org/show_bug.cgi?id=187949
558 Reviewed by Saam Barati.
560 * stress/array-profile-should-record-copy-on-write.js: Added.
566 2018-07-26 Mark Lam <mark.lam@apple.com>
568 arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array.
569 https://bugs.webkit.org/show_bug.cgi?id=188065
570 <rdar://problem/42515726>
572 Reviewed by Saam Barati.
574 * stress/regress-188065.js: Added.
576 2018-07-25 Andy VanWagoner <andy@vanwagoner.family>
578 [INTL] Call Typed Array elements toLocaleString with locale and options
579 https://bugs.webkit.org/show_bug.cgi?id=185796
581 Reviewed by Keith Miller.
583 Remove now passing TypedArray toLocaleString expectation.
585 * test262/expectations.yaml:
587 2018-07-25 Andy VanWagoner <andy@vanwagoner.family>
589 [INTL] Intl constructor lengths should be configurable
590 https://bugs.webkit.org/show_bug.cgi?id=187960
592 Reviewed by Saam Barati.
594 Removed fixed length expectations, and updated Intl.Locale expectations
595 that error differently since r234127.
597 * test262/expectations.yaml:
599 2018-07-24 Commit Queue <commit-queue@webkit.org>
601 Unreviewed, rolling out r234183.
602 https://bugs.webkit.org/show_bug.cgi?id=187983
604 cause regression in Kraken gaussian blur and desaturate
605 (Requested by yusukesuzuki on #webkit).
609 "[JSC] Record CoW status in ArrayProfile"
610 https://bugs.webkit.org/show_bug.cgi?id=187949
611 https://trac.webkit.org/changeset/234183
613 2018-07-24 Yusuke Suzuki <utatane.tea@gmail.com>
615 [JSC] Record CoW status in ArrayProfile
616 https://bugs.webkit.org/show_bug.cgi?id=187949
618 Reviewed by Saam Barati.
620 * stress/array-profile-should-record-copy-on-write.js: Added.
626 2018-07-23 Saam Barati <sbarati@apple.com>
628 need to didFoldClobberWorld when we constant fold GetByVal
629 https://bugs.webkit.org/show_bug.cgi?id=187917
630 <rdar://problem/42505095>
632 Reviewed by Yusuke Suzuki.
634 * stress/get-by-val-fold-did-clobber-world.js: Added.
637 2018-07-23 Andy VanWagoner <andy@vanwagoner.family>
639 [INTL] Language tags are not canonicalized
640 https://bugs.webkit.org/show_bug.cgi?id=185836
642 Reviewed by Keith Miller.
644 Remove expected failures that have been fixed.
646 * test262/expectations.yaml:
648 2018-07-22 Yusuke Suzuki <utatane.tea@gmail.com>
650 [JSC] GetByIdVariant and InByIdVariant do not need slot base if they are not "hit" variants
651 https://bugs.webkit.org/show_bug.cgi?id=187891
653 Reviewed by Saam Barati.
655 * stress/in-miss-variant-merge.js: Added.
658 * stress/miss-variant-merge.js: Added.
662 2018-07-22 Yusuke Suzuki <utatane.tea@gmail.com>
664 [DFG] Fold GetByVal if the indexed value is non configurable and non writable
665 https://bugs.webkit.org/show_bug.cgi?id=186462
667 Reviewed by Saam Barati.
669 * stress/folding-get-by-val-with-read-only-dont-delete-object.js: Added.
676 * stress/folding-get-by-val-with-read-only-dont-delete-runtime-array.js: Added.
681 * stress/folding-get-by-val-with-read-only-dont-delete.js: Added.
689 2018-06-02 Filip Pizlo <fpizlo@apple.com>
691 We should support CreateThis in the FTL
692 https://bugs.webkit.org/show_bug.cgi?id=164904
694 Reviewed by Yusuke Suzuki.
696 * microbenchmarks/polyvariant-get-by-id-shorter-tower.js: Added.
698 (Foo.prototype.func):
701 (Bar.prototype.func):
704 * microbenchmarks/polyvariant-get-by-id-tower.js: Added.
706 (Foo.prototype.func):
709 (Bar.prototype.func):
712 (Baz.prototype.func):
716 2018-07-20 Michael Saboff <msaboff@apple.com>
718 DFG AbstractInterpreter: CheckArray filters array modes for DirectArguments/ScopedArguments using only NonArray
719 https://bugs.webkit.org/show_bug.cgi?id=187827
720 rdar://problem/42146858
722 Reviewed by Saam Barati.
724 New regression tests.
726 * stress/direct-arguments-check-array.js: Added.
732 * stress/scoped-arguments-check-array.js: Added.
740 2018-07-20 Yusuke Suzuki <utatane.tea@gmail.com>
742 [DFG] Fold GetByVal if Array is CoW
743 https://bugs.webkit.org/show_bug.cgi?id=186459
745 Reviewed by Saam Barati.
747 * stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds-foldable.js: Added.
755 * stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds.js: Added.
763 * stress/folding-get-by-val-with-immutable-butterfly-with-types.js: Added.
771 * stress/folding-get-by-val-with-immutable-butterfly.js: Added.
776 2018-07-20 Saam Barati <sbarati@apple.com>
778 CompareEq should be using KnownOtherUse instead of OtherUse
779 https://bugs.webkit.org/show_bug.cgi?id=186814
780 <rdar://problem/39720030>
782 Reviewed by Filip Pizlo.
784 * stress/compare-eq-should-use-known-other-use.js: Added.
788 2018-07-20 David Fenton <david_fenton@apple.com>
790 stress/spread-forward-varargs-stack-overflow.js is timing out in 32 bit JSC tests.
791 https://bugs.webkit.org/show_bug.cgi?id=187698
793 Unreviewed test gardening, skipped test in 32 Bit JSC.
795 * stress/spread-forward-varargs-stack-overflow.js:
797 2018-07-18 Yusuke Suzuki <utatane.tea@gmail.com>
799 JSON.stringify should emit non own properties if second array argument includes
800 https://bugs.webkit.org/show_bug.cgi?id=187724
802 Reviewed by Mark Lam.
804 * stress/json-stringify-getter-call.js: Added.
806 (A.prototype.get cocoa):
807 (A.prototype.get cappuccino):
809 (shouldBe.JSON.stringify):
811 2018-07-18 Yusuke Suzuki <utatane.tea@gmail.com>
813 [JSC] JSON.stringify's replacer should use `isArray` instead of JSArray checks
814 https://bugs.webkit.org/show_bug.cgi?id=187755
816 Reviewed by Mark Lam.
818 * stress/json-stringify-gap-calculation-should-be-after-replacer-check.js: Added.
820 (shouldThrow.string.toString):
821 * test262/expectations.yaml:
823 2018-07-12 Yusuke Suzuki <utatane.tea@gmail.com>
825 [JSC] Generator and AsyncGeneratorMethod's prototype is incorrect
826 https://bugs.webkit.org/show_bug.cgi?id=187585
828 Reviewed by Darin Adler.
830 * stress/default-proto-for-async-generator.js: Added.
832 (async.asyncGenerator):
833 * stress/default-proto-for-generator.js: Added.
836 * stress/prototype-for-async-generator.js: Added.
838 (async.asyncGenerator):
839 (A.prototype.async.asyncGenerator):
841 * test262/expectations.yaml:
843 2018-07-11 Ryan Haddad <ryanhaddad@apple.com>
845 Skip JSC test stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js
846 https://bugs.webkit.org/show_bug.cgi?id=187559
848 Unreviewed test gardening.
850 * stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js:
852 2018-07-11 Yusuke Suzuki <utatane.tea@gmail.com>
854 Iterator of Array.keys() returns object in wrong order
855 https://bugs.webkit.org/show_bug.cgi?id=185197
857 Reviewed by Keith Miller.
859 We align the shape of our iterator result to the spec: {value,done} instead of {done,value}.
861 * stress/iterator-field-order.js: Added.
863 (shouldBe.JSON.stringify.array.values.next):
864 (shouldBe.JSON.stringify.array.keys.next):
865 (shouldBe.JSON.stringify.array.entries.next):
866 (async.asyncIterator):
867 (iterator.next.then):
869 (shouldBe.JSON.stringify.generator.next):
870 (shouldBe.JSON.stringify.map.keys.next):
871 (shouldBe.JSON.stringify.map.values.next):
872 (shouldBe.JSON.stringify.map.entries.next):
875 2018-07-11 Yusuke Suzuki <utatane.tea@gmail.com>
877 Unreviewed, clean up test262 expectations
879 * test262/expectations.yaml:
881 2018-07-10 Mark Lam <mark.lam@apple.com>
883 constructArray() should always allocate the requested length.
884 https://bugs.webkit.org/show_bug.cgi?id=187543
885 <rdar://problem/41947884>
887 Reviewed by Saam Barati.
889 * stress/regress-187543-2.js: Added.
890 * stress/regress-187543-3.js: Added.
891 * stress/regress-187543.js: Added.
893 2018-07-10 Keith Miller <keith_miller@apple.com>
895 hasOwnProperty returns true for out of bounds property index on TypedArray
896 https://bugs.webkit.org/show_bug.cgi?id=187520
898 Reviewed by Saam Barati.
900 getOwnPropertySlot returns true on out of bounds indicies for
901 TypedArrays, which is incorrect.
903 * stress/typedarray-hasOwnProperty-out-of-bounds.js: Added.
906 2018-07-10 Michael Saboff <msaboff@apple.com>
908 DFG JIT: compileMathIC produces incorrect machine code
909 https://bugs.webkit.org/show_bug.cgi?id=187537
911 Reviewed by Saam Barati.
915 * stress/arith-mul-with-constants.js:
916 (testArithMulWithTypeConfusedConstant.testMult):
917 (testArithMulWithTypeConfusedConstant):
919 2018-07-10 Michael Saboff <msaboff@apple.com>
921 YARR: . doesn't match non-BMP Unicode characters in some cases
922 https://bugs.webkit.org/show_bug.cgi?id=187248
924 Reviewed by Geoffrey Garen.
928 * stress/regexp-with-nonBMP-any.js: Added.
930 2018-07-09 Michael Saboff <msaboff@apple.com>
932 REGRESSION (ICU-62100.0.1): JSC test mozilla-tests.yaml/ecma/String/15.5.4.12-3.js is failing
933 https://bugs.webkit.org/show_bug.cgi?id=187495
935 Reviewed by Saam Barati.
937 Commented out the Georgian section of this toUpper() test since Unicode 11 added new upper case characters for
940 * mozilla/ecma/String/15.5.4.12-3.js:
942 (DecimalToHexString):
944 2018-07-02 Sukolsak Sakshuwong <sukolsak@gmail.com>
946 RegExp.exec returns wrong value with a long integer quantifier
947 https://bugs.webkit.org/show_bug.cgi?id=187042
949 Reviewed by Saam Barati.
951 * stress/regexp-large-quantifier.js: Added.
953 * stress/regress-159744.js:
955 2018-07-02 Ryosuke Niwa <rniwa@webkit.org>
957 Repository fix after r233427 and r233443.
958 Added back the test which got erroneously deleted in r233443.
960 * stress/instanceof-non-object-prototype.js:
962 2018-07-02 Keith Miller <keith_miller@apple.com>
964 InstanceOf IC should do generic if the prototype is not an object.
965 https://bugs.webkit.org/show_bug.cgi?id=187250
967 Reviewed by Mark Lam.
969 * stress/instanceof-non-object-prototype.js: Added.
974 2018-06-30 Mark Lam <mark.lam@apple.com>
976 Builtins and host functions should get their own structures.
977 https://bugs.webkit.org/show_bug.cgi?id=187211
978 <rdar://problem/41646336>
980 Reviewed by Saam Barati.
982 * stress/regress-187211.js: Added.
984 2018-06-29 Saam Barati <sbarati@apple.com>
986 We shouldn't recurse into the parser when gathering metadata about various function offsets
987 https://bugs.webkit.org/show_bug.cgi?id=184074
988 <rdar://problem/37165897>
990 Reviewed by Mark Lam.
992 * microbenchmarks/try-get-by-id-basic.js:
993 (const.bench.f.const.fooPlusBar.createBuiltin):
994 * microbenchmarks/try-get-by-id-polymorphic.js:
995 (fooPlusBar.createBuiltin):
996 * stress/array-push-with-force-exit.js:
997 * stress/dont-crash-on-stack-overflow-when-parsing-builtin.js: Added.
999 * stress/dont-crash-on-stack-overflow-when-parsing-default-constructor.js: Added.
1001 (prototype.runNearStackLimit):
1002 * stress/is-constructor.js:
1003 * stress/tailCallForwardArguments.js:
1004 (putFuncToPrivateName.createBuiltin):
1006 2018-06-27 Mark Lam <mark.lam@apple.com>
1008 DFG's compileReallocatePropertyStorage() and compileAllocatePropertyStorage() slow paths should also clear unused properties.
1009 https://bugs.webkit.org/show_bug.cgi?id=187091
1010 <rdar://problem/41395624>
1012 Reviewed by Yusuke Suzuki.
1014 * stress/regress-187091.js: Added.
1016 2018-06-27 Yusuke Suzuki <utatane.tea@gmail.com>
1018 [JSC] ArrayPatternNode::emitDirectBinding does not return assignment target value if dst is nullptr
1019 https://bugs.webkit.org/show_bug.cgi?id=185943
1021 Reviewed by Mark Lam.
1023 * stress/direct-binding-return-result.js: Added.
1027 2018-06-26 Mark Lam <mark.lam@apple.com>
1029 eval() is wrong about the LiteralParser never throwing any exceptions.
1030 https://bugs.webkit.org/show_bug.cgi?id=187074
1031 <rdar://problem/41461099>
1033 Reviewed by Saam Barati.
1035 * stress/regress-187074.js: Added.
1037 2018-06-26 Mark Lam <mark.lam@apple.com>
1039 ASSERTION FAILED: length > butterfly->vectorLength() in JSObject::ensureLengthSlow().
1040 https://bugs.webkit.org/show_bug.cgi?id=187060
1041 <rdar://problem/41452767>
1043 Reviewed by Keith Miller.
1045 * stress/regress-187060.js: Added.
1047 2018-06-25 Mark Lam <mark.lam@apple.com>
1049 constructArray() should set m_numValuesInVector to the specified length.
1050 https://bugs.webkit.org/show_bug.cgi?id=187010
1051 <rdar://problem/41392167>
1053 Reviewed by Filip Pizlo.
1055 * stress/regress-187010.js: Added.
1057 2018-06-25 Mark Lam <mark.lam@apple.com>
1059 Add missing exception check in RegExpObjectInlines.h's collectMatches.
1060 https://bugs.webkit.org/show_bug.cgi?id=187006
1061 <rdar://problem/41418412>
1063 Reviewed by Keith Miller.
1065 * stress/regress-187006.js: Added.
1067 2018-06-22 Keith Miller <keith_miller@apple.com>
1069 unshift should zero unused property storage
1070 https://bugs.webkit.org/show_bug.cgi?id=186960
1072 Reviewed by Saam Barati.
1074 * stress/array-unshift-zero-property-storage.js: Added.
1078 2018-06-22 Mark Lam <mark.lam@apple.com>
1080 PropertyCondition::isValidValueForAttributes() should also consider deleted values.
1081 https://bugs.webkit.org/show_bug.cgi?id=186943
1082 <rdar://problem/41370337>
1084 Reviewed by Saam Barati.
1086 * stress/regress-186943.js: Added.
1088 2018-06-22 Keith Miller <keith_miller@apple.com>
1090 performProxyCall should toThis the value passed to its handler
1091 https://bugs.webkit.org/show_bug.cgi?id=186951
1093 Reviewed by Mark Lam.
1095 * stress/proxy-call-apply-handler-to-this.js: Added.
1103 2018-06-20 Keith Miller <keith_miller@apple.com>
1105 flattenDictionaryStruture needs to zero inline storage.
1106 https://bugs.webkit.org/show_bug.cgi?id=186869
1108 Reviewed by Saam Barati.
1110 * stress/flatten-object-zero-unused-inline-properties.js: Added.
1112 2018-06-19 Saam Barati <sbarati@apple.com>
1114 DirectArguments::create needs to initialize to undefined instead of the empty value
1115 https://bugs.webkit.org/show_bug.cgi?id=186818
1116 <rdar://problem/38415177>
1118 Reviewed by Filip Pizlo.
1120 * stress/create-direct-arguments-in-osr-should-initialize-to-undefined.js: Added.
1124 2018-06-19 Tadeu Zagallo <tzagallo@apple.com>
1126 ShadowChicken crashes with stack overflow in the LLInt
1127 https://bugs.webkit.org/show_bug.cgi?id=186540
1128 <rdar://problem/39682133>
1130 Reviewed by Saam Barati.
1132 Add test that stack overflows and crashes on ShadowChicken when JIT is
1133 disabled and forceDebuggerBytecodeGeneration is enabled.
1135 * stress/llint-stack-overflow-debugging-opcodes.js: Added.
1139 2018-06-19 Leo Balter <leonardo.balter@gmail.com>
1141 [test262-runner] More updates to the skip list
1142 https://bugs.webkit.org/show_bug.cgi?id=186786
1144 Reviewed by Michael Saboff.
1146 * test262/config.yaml:
1147 * test262/expectations.yaml:
1149 2018-06-19 Saam Barati <sbarati@apple.com>
1151 Wasm: Any function argument of type Void should be a validation error
1152 https://bugs.webkit.org/show_bug.cgi?id=186794
1153 <rdar://problem/41140257>
1155 Reviewed by Keith Miller.
1158 (const._normalizeFunctionSignature):
1159 * wasm/function-tests/void-argument-type-should-be-a-validation-error.js: Added.
1161 * wasm/self-test/test_BuilderJSON.js:
1163 2018-06-18 Keith Miller <keith_miller@apple.com>
1165 Properly zero unused property storage offsets
1166 https://bugs.webkit.org/show_bug.cgi?id=186692
1168 Reviewed by Filip Pizlo.
1170 * stress/butterfly-zero-unused-butterfly-properties.js: Added.
1172 2018-06-18 Michael Saboff <msaboff@apple.com>
1174 Support Unicode 11 in RegExp
1175 https://bugs.webkit.org/show_bug.cgi?id=186685
1177 Reviewed by Mark Lam.
1179 * test262/config.yaml: Removed from skip list Unicode 11 property tests as they
1180 are now supported. Added new bug reference for still failing
1181 test/built-ins/RegExp/property-escapes/character-class.js test.
1183 * test262/test/built-ins/RegExp/property-escapes/unsupported-binary-properties.js:
1184 Removed "Extended_Pictographic" from unsupported properties since Unicode 11 now supports them.
1186 2018-06-16 Leo Balter <leonardo.balter@gmail.com>
1188 Update Test262 2018-06-15
1189 https://bugs.webkit.org/show_bug.cgi?id=186695
1191 Reviewed by Michael Saboff.
1193 Also update the skip list - in the config file - with new failures
1194 * test262/config.yaml:
1195 * test262/expectations.yaml:
1196 * test262/harness/testIntl.js:
1197 (getInvalidLanguageTags):
1198 * test262/latest-changes-summary.txt:
1199 * test262/test/built-ins/Date/parse/time-value-maximum-range.js: Added.
1200 * test262/test/built-ins/Date/parse/zero.js: Added.
1201 * test262/test/built-ins/JSON/stringify/bigint-cross-realm.js: Added.
1202 (other.BigInt.prototype.toJSON):
1203 * test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-bigint.js: Added.
1204 * test262/test/built-ins/Object/prototype/toString/symbol-tag-override-bigint.js: Added.
1205 * test262/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js: Added.
1206 * test262/test/built-ins/RegExp/property-escapes/character-class.js:
1207 * test262/test/built-ins/RegExp/property-escapes/generated/ASCII.js:
1208 * test262/test/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js:
1209 * test262/test/built-ins/RegExp/property-escapes/generated/Alphabetic.js:
1210 * test262/test/built-ins/RegExp/property-escapes/generated/Any.js:
1211 * test262/test/built-ins/RegExp/property-escapes/generated/Assigned.js:
1212 * test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Control.js:
1213 * test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js:
1214 * test262/test/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js:
1215 * test262/test/built-ins/RegExp/property-escapes/generated/Cased.js:
1216 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js:
1217 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js:
1218 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js:
1219 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js:
1220 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js:
1221 * test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js:
1222 * test262/test/built-ins/RegExp/property-escapes/generated/Dash.js:
1223 * test262/test/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js:
1224 * test262/test/built-ins/RegExp/property-escapes/generated/Deprecated.js:
1225 * test262/test/built-ins/RegExp/property-escapes/generated/Diacritic.js:
1226 * test262/test/built-ins/RegExp/property-escapes/generated/Emoji.js:
1227 * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js:
1228 * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js:
1229 * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js:
1230 * test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js:
1231 * test262/test/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js: Added.
1232 * test262/test/built-ins/RegExp/property-escapes/generated/Extender.js:
1233 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js:
1234 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js:
1235 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js:
1236 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js:
1237 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js:
1238 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js:
1239 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js:
1240 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js:
1241 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js:
1242 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js:
1243 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js:
1244 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js:
1245 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js:
1246 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js:
1247 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js:
1248 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js:
1249 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js:
1250 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js:
1251 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js:
1252 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js:
1253 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js:
1254 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js:
1255 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js:
1256 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js:
1257 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js:
1258 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js:
1259 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js:
1260 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js:
1261 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js:
1262 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js:
1263 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js:
1264 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js:
1265 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js:
1266 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js:
1267 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js:
1268 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js:
1269 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js:
1270 * test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js:
1271 * test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js:
1272 * test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js:
1273 * test262/test/built-ins/RegExp/property-escapes/generated/Hex_Digit.js:
1274 * test262/test/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js:
1275 * test262/test/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js:
1276 * test262/test/built-ins/RegExp/property-escapes/generated/ID_Continue.js:
1277 * test262/test/built-ins/RegExp/property-escapes/generated/ID_Start.js:
1278 * test262/test/built-ins/RegExp/property-escapes/generated/Ideographic.js:
1279 * test262/test/built-ins/RegExp/property-escapes/generated/Join_Control.js:
1280 * test262/test/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js:
1281 * test262/test/built-ins/RegExp/property-escapes/generated/Lowercase.js:
1282 * test262/test/built-ins/RegExp/property-escapes/generated/Math.js:
1283 * test262/test/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js:
1284 * test262/test/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js:
1285 * test262/test/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js:
1286 * test262/test/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js:
1287 * test262/test/built-ins/RegExp/property-escapes/generated/Radical.js:
1288 * test262/test/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js:
1289 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js:
1290 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js:
1291 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js:
1292 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js:
1293 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js:
1294 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js:
1295 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js:
1296 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js:
1297 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js:
1298 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js:
1299 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js:
1300 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js:
1301 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js:
1302 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js:
1303 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js:
1304 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js:
1305 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js:
1306 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js:
1307 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js:
1308 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js:
1309 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js:
1310 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js:
1311 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js:
1312 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Common.js:
1313 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js:
1314 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js:
1315 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js:
1316 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js:
1317 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js:
1318 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js:
1319 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Dogra.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js.
1320 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js:
1321 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js:
1322 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js:
1323 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js:
1324 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js:
1325 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js:
1326 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js:
1327 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js:
1328 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js:
1329 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js:
1330 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gunjala_Gondi.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js.
1331 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js:
1332 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Han.js:
1333 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js:
1334 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hanifi_Rohingya.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js.
1335 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js:
1336 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js:
1337 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js:
1338 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js:
1339 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js:
1340 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js:
1341 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js:
1342 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js:
1343 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js:
1344 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js:
1345 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js:
1346 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js:
1347 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js:
1348 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js:
1349 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js:
1350 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js:
1351 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js:
1352 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js:
1353 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js:
1354 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js:
1355 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js:
1356 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js:
1357 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js:
1358 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js:
1359 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js:
1360 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js:
1361 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js:
1362 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Makasar.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js.
1363 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js:
1364 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js:
1365 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js:
1366 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js:
1367 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js:
1368 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Medefaidrin.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js.
1369 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js:
1370 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js:
1371 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js:
1372 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js:
1373 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js:
1374 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js:
1375 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js:
1376 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js:
1377 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js:
1378 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js:
1379 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js:
1380 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js:
1381 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js:
1382 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js:
1383 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js:
1384 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js:
1385 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js:
1386 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js:
1387 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js:
1388 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js:
1389 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js:
1390 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js:
1391 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js.
1392 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js:
1393 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js:
1394 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js:
1395 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js:
1396 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js:
1397 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js:
1398 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js:
1399 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js:
1400 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js:
1401 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js:
1402 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js:
1403 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js:
1404 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js:
1405 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js:
1406 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js:
1407 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js:
1408 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js:
1409 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js:
1410 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js:
1411 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js:
1412 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js.
1413 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js:
1414 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js:
1415 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js:
1416 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js:
1417 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js:
1418 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js:
1419 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js:
1420 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js:
1421 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js:
1422 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js:
1423 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js:
1424 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js:
1425 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js:
1426 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js:
1427 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js:
1428 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js:
1429 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js:
1430 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js:
1431 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js:
1432 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js:
1433 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js:
1434 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js:
1435 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js:
1436 * test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js:
1437 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js:
1438 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js:
1439 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js:
1440 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js:
1441 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js:
1442 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js:
1443 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js:
1444 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js:
1445 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js:
1446 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js:
1447 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js:
1448 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js:
1449 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js:
1450 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js:
1451 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js:
1452 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js:
1453 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js:
1454 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js:
1455 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js:
1456 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js:
1457 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js:
1458 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js:
1459 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js:
1460 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js:
1461 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js:
1462 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js:
1463 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js:
1464 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js:
1465 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js:
1466 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js:
1467 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Dogra.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js.
1468 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js:
1469 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js:
1470 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js:
1471 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js:
1472 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js:
1473 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js:
1474 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js:
1475 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js:
1476 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js:
1477 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js:
1478 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js: Added.
1479 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js:
1480 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js:
1481 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js:
1482 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js: Added.
1483 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js:
1484 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js:
1485 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js:
1486 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js:
1487 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js:
1488 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js:
1489 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js:
1490 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js:
1491 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js:
1492 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js:
1493 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js:
1494 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js:
1495 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js:
1496 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js:
1497 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js:
1498 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js:
1499 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js:
1500 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js:
1501 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js:
1502 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js:
1503 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js:
1504 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js:
1505 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js:
1506 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js:
1507 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js:
1508 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js:
1509 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js:
1510 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Makasar.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js.
1511 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js:
1512 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js:
1513 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js:
1514 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js:
1515 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js:
1516 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Medefaidrin.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js.
1517 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js:
1518 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js:
1519 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js:
1520 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js:
1521 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js:
1522 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js:
1523 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js:
1524 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js:
1525 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js:
1526 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js:
1527 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js:
1528 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js:
1529 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js:
1530 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js:
1531 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js:
1532 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js:
1533 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js:
1534 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js:
1535 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js:
1536 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js:
1537 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js:
1538 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js:
1539 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js.
1540 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js:
1541 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js:
1542 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js:
1543 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js:
1544 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js:
1545 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js:
1546 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js:
1547 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js:
1548 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js:
1549 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js:
1550 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js:
1551 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js:
1552 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js:
1553 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js:
1554 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js:
1555 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js:
1556 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js:
1557 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js:
1558 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js:
1559 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js:
1560 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sogdian.js: Copied from JSTests/test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js.
1561 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js:
1562 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js:
1563 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js:
1564 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js:
1565 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js:
1566 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js:
1567 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js:
1568 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js:
1569 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js:
1570 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js:
1571 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js:
1572 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js:
1573 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js:
1574 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js:
1575 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js:
1576 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js:
1577 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js:
1578 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js:
1579 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js:
1580 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js:
1581 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js:
1582 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js:
1583 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js:
1584 * test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js:
1585 * test262/test/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js:
1586 * test262/test/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js:
1587 * test262/test/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js:
1588 * test262/test/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js:
1589 * test262/test/built-ins/RegExp/property-escapes/generated/Uppercase.js:
1590 * test262/test/built-ins/RegExp/property-escapes/generated/Variation_Selector.js:
1591 * test262/test/built-ins/RegExp/property-escapes/generated/White_Space.js:
1592 * test262/test/built-ins/RegExp/property-escapes/generated/XID_Continue.js:
1593 * test262/test/built-ins/RegExp/property-escapes/generated/XID_Start.js:
1594 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Removed.
1595 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-called-once.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js.
1597 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Removed.
1598 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js:
1599 * test262/test/built-ins/Symbol/matchAll/prop-desc.js:
1600 * test262/test/built-ins/Symbol/prototype/description/description-symboldescriptivestring.js: Added.
1601 * test262/test/built-ins/Symbol/prototype/description/descriptor.js: Added.
1602 * test262/test/built-ins/Symbol/prototype/description/get.js: Added.
1603 * test262/test/built-ins/Symbol/prototype/description/is-not-own-property.js: Added.
1604 * test262/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js: Added.
1605 * test262/test/built-ins/Symbol/prototype/description/this-val-symbol.js: Added.
1606 * test262/test/built-ins/Symbol/prototype/description/wrapper.js: Added.
1607 * test262/test/intl402/Intl/getCanonicalLocales/Locale-object.js: Added.
1608 * test262/test/intl402/Locale/constructor-options-collation-invalid.js:
1609 * test262/test/intl402/Locale/constructor-options-collation-valid.js:
1610 * test262/test/intl402/Locale/constructor-options-hourcycle-valid.js:
1611 * test262/test/intl402/Locale/constructor-options-language-invalid.js:
1612 * test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js:
1613 * test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js:
1614 * test262/test/intl402/Locale/constructor-tag.js: Added.
1615 (canonical.of.Object.entries):
1616 * test262/test/intl402/Locale/likely-subtags.js: Added.
1617 (maximal.of.Object.entries):
1618 (minimal.of.Object.entries):
1619 * test262/test/intl402/Locale/prototype/baseName/branding.js: Added.
1620 * test262/test/intl402/Locale/prototype/baseName/name.js: Added.
1621 * test262/test/intl402/Locale/prototype/baseName/prop-desc.js:
1622 * test262/test/intl402/Locale/prototype/calendar/branding.js: Added.
1623 * test262/test/intl402/Locale/prototype/calendar/name.js: Added.
1624 * test262/test/intl402/Locale/prototype/calendar/prop-desc.js:
1625 * test262/test/intl402/Locale/prototype/caseFirst/branding.js: Added.
1626 * test262/test/intl402/Locale/prototype/caseFirst/name.js: Added.
1627 * test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js:
1628 * test262/test/intl402/Locale/prototype/collation/branding.js: Added.
1629 * test262/test/intl402/Locale/prototype/collation/name.js: Added.
1630 * test262/test/intl402/Locale/prototype/collation/prop-desc.js:
1631 * test262/test/intl402/Locale/prototype/hourCycle/branding.js: Added.
1632 * test262/test/intl402/Locale/prototype/hourCycle/name.js: Added.
1633 * test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js:
1634 * test262/test/intl402/Locale/prototype/language/branding.js: Added.
1635 * test262/test/intl402/Locale/prototype/language/name.js: Added.
1636 * test262/test/intl402/Locale/prototype/language/prop-desc.js:
1637 * test262/test/intl402/Locale/prototype/maximize/branding.js: Added.
1638 * test262/test/intl402/Locale/prototype/minimize/branding.js: Added.
1639 * test262/test/intl402/Locale/prototype/numberingSystem/branding.js: Added.
1640 * test262/test/intl402/Locale/prototype/numberingSystem/name.js: Added.
1641 * test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js:
1642 * test262/test/intl402/Locale/prototype/numeric/branding.js: Added.
1643 * test262/test/intl402/Locale/prototype/numeric/name.js: Added.
1644 * test262/test/intl402/Locale/prototype/numeric/prop-desc.js:
1645 * test262/test/intl402/Locale/prototype/region/branding.js: Added.
1646 * test262/test/intl402/Locale/prototype/region/name.js: Added.
1647 * test262/test/intl402/Locale/prototype/region/prop-desc.js:
1648 * test262/test/intl402/Locale/prototype/script/branding.js: Added.
1649 * test262/test/intl402/Locale/prototype/script/name.js: Added.
1650 * test262/test/intl402/Locale/prototype/script/prop-desc.js:
1651 * test262/test/intl402/Locale/prototype/toString/branding.js: Added.
1652 * test262/test/intl402/NumberFormat/length.js:
1653 * test262/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js: Added.
1654 * test262/test/language/expressions/tagged-template/template-object-template-map.js: Added.
1656 * test262/test/language/expressions/tagged-template/template-object.js:
1657 (templateObject.tag):
1658 * test262/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js:
1659 * test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js:
1660 * test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js:
1661 * test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js:
1662 * test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js:
1663 * test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js:
1664 * test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js:
1665 * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js:
1666 * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js:
1667 * test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js:
1668 * test262/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js:
1669 * test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js:
1670 * test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js:
1671 * test262/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js:
1672 * test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js:
1673 * test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js:
1674 * test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js:
1675 * test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js:
1676 * test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js:
1677 * test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js:
1678 * test262/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js:
1679 * test262/test/language/literals/numeric/numeric-separator-literal-unicode-err.js:
1680 * test262/test262-Revision.txt:
1682 2018-06-16 Yusuke Suzuki <utatane.tea@gmail.com>
1684 [DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array
1685 https://bugs.webkit.org/show_bug.cgi?id=186721
1687 Reviewed by Keith Miller.
1689 * stress/array-slice-cow.js: Added.
1695 2018-06-15 Yusuke Suzuki <utatane.tea@gmail.com>
1697 [DFG][FTL] Spread onto PhantomNewArrayBuffer assumes JSFixedArray, but JSImmutableButterfly is returned
1698 https://bugs.webkit.org/show_bug.cgi?id=186460
1700 Reviewed by Saam Barati.
1702 * stress/spread-escapes-but-new-array-buffer-does-not-double.js: Added.
1708 2018-06-14 Leo Balter <leonardo.balter@gmail.com>
1710 Test262-Runner: Update config list with some failing tests
1711 https://bugs.webkit.org/show_bug.cgi?id=185628
1713 Reviewed by Michael Saboff.
1715 The config list is updated to match some slow / hanging tests that are currenctly failing
1716 due to the length used in Array or Array like objects.
1718 This also adds matching bugs for known features that are still in progress and not enabled
1720 * test262/config.yaml:
1722 2018-06-12 Yusuke Suzuki <utatane.tea@gmail.com>
1724 Update test262 for Array#sort
1725 https://bugs.webkit.org/show_bug.cgi?id=186458
1727 * test262/expectations.yaml:
1729 2018-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
1731 [JSC] Array.prototype.sort should rejects null comparator
1732 https://bugs.webkit.org/show_bug.cgi?id=186458
1734 Reviewed by Keith Miller.
1736 * ChakraCore/test/Array/array_sort.baseline-jsc:
1737 * stress/array-sort-bad-comparator.js:
1739 * stress/sort-null-comparator.js: Removed.
1740 * test262/expectations.yaml:
1742 2018-06-07 Saam Barati <sbarati@apple.com>
1744 Make DFG to FTL OSR entry code more sane by removing bad RELEASE_ASSERTS and making it trigger compiles in outer loops before inner ones
1745 https://bugs.webkit.org/show_bug.cgi?id=186218
1746 <rdar://problem/38449540>
1748 Reviewed by Filip Pizlo.
1750 * stress/dont-crash-ftl-osr-entry.js: Added.
1752 2018-06-06 Yusuke Suzuki <utatane.tea@gmail.com>
1754 [DFG] Compare operations do not respect negative zeros
1755 https://bugs.webkit.org/show_bug.cgi?id=183729
1757 Reviewed by Saam Barati.
1759 * stress/comparison-ignore-negative-zero.js: Added.
1766 2018-06-06 Saam Barati <sbarati@apple.com>
1768 generateConditionsForInstanceOf needs to see if the object has a poly proto structure before assuming it has a constant prototype
1769 https://bugs.webkit.org/show_bug.cgi?id=186363
1771 Rubber-stamped by Filip Pizlo.
1773 * stress/instance-of-on-poly-proto-opc-should-not-crash.js: Added.
1775 2018-06-05 David Fenton <david_fenton@apple.com>
1777 Temporarily Skip JSC stress test failures that are consistently occurring.
1778 https://bugs.webkit.org/show_bug.cgi?id=186283
1780 Unreviewed test gardening.
1782 * executableAllocationFuzz.yaml:
1783 * slowMicrobenchmarks/default-derived-constructor.js:
1784 * stress/put-direct-index-broken-2.js:
1785 * stress/splay-flash-access.js:
1786 * stress/spread-forward-call-varargs-stack-overflow.js:
1788 2018-06-04 Keith Miller <keith_miller@apple.com>
1790 Add test for CoW conversions in the DFG/FTL
1791 https://bugs.webkit.org/show_bug.cgi?id=186295
1793 Reviewed by Saam Barati.
1795 * stress/arrayprofile-should-not-convert-get-by-val-cow.js: Added.
1797 (withArrayArgInt32):
1798 (withArrayLiteralInt32):
1799 (withArrayArgDouble):
1800 (withArrayLiteralDouble):
1801 (withArrayArgContiguous):
1802 (withArrayLiteralContiguous):
1805 2018-06-02 Caio Lima <ticaiolima@gmail.com>
1807 [ESNext][BigInt] Implement support for addition operations
1808 https://bugs.webkit.org/show_bug.cgi?id=179002
1810 Reviewed by Yusuke Suzuki.
1813 * stress/addition-order-evaluation.js: Added.
1814 * stress/big-int-add-wrapped-value.js: Added.
1815 * stress/big-int-addition-basic.js: Added.
1816 * stress/big-int-addition-jit.js: Added.
1817 * stress/big-int-addition-memory-stress.js: Added.
1818 * stress/big-int-addition-string-coercion.js: Added.
1819 * stress/big-int-addition-to-primitive-precedence.js: Added.
1820 * stress/big-int-addition-to-primitive.js: Added.
1821 * stress/big-int-addition-type-error.js: Added.
1822 * stress/big-int-no-conversion-to-number.js:
1823 * stress/big-int-sub-wrapped-value.js: Added.
1824 * stress/big-int-subtraction-basic.js: Added.
1825 * stress/big-int-subtraction-jit.js: Added.
1826 * stress/big-int-subtraction-type-error.js: Added.
1827 * stress/sub-order-evaluation.js: Added.
1829 2018-06-02 Commit Queue <commit-queue@webkit.org>
1831 Unreviewed, rolling out r232439.
1832 https://bugs.webkit.org/show_bug.cgi?id=186238
1834 It breaks gtk-linux-32-release (Requested by caiolima on
1839 "[ESNext][BigInt] Implement support for addition operations"
1840 https://bugs.webkit.org/show_bug.cgi?id=179002
1841 https://trac.webkit.org/changeset/232439
1843 2018-06-01 Yusuke Suzuki <utatane.tea@gmail.com>
1845 Baseline op_jtrue emits an insane amount of code
1846 https://bugs.webkit.org/show_bug.cgi?id=185708
1848 Reviewed by Filip Pizlo.
1850 * stress/logical-not-masquerades-as-undefined.js: Added.
1853 * stress/logical-not.js: Added.
1857 2018-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
1859 [JSC] Remove WeakReferenceHarvester
1860 https://bugs.webkit.org/show_bug.cgi?id=186102
1862 Reviewed by Filip Pizlo.
1864 * microbenchmarks/create-many-weak-map.js: Added.
1866 2018-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
1868 [JSC] Object.create should have intrinsic
1869 https://bugs.webkit.org/show_bug.cgi?id=186200
1871 Reviewed by Filip Pizlo.
1873 * microbenchmarks/object-create-null.js: Added.
1875 * microbenchmarks/object-create-unknown-object-prototype.js: Added.
1877 * microbenchmarks/object-create-untyped-prototype.js: Added.
1879 * stress/get-by-pname-only-prototype-properties.js: Added.
1881 * stress/object-create-define.js: Added.
1884 * stress/object-create-null-external.js: Added.
1887 * stress/object-create-null.js: Added.
1890 * stress/object-create-prototype.js: Added.
1893 * stress/object-create-undefined.js: Added.
1897 2018-06-02 Caio Lima <ticaiolima@gmail.com>
1899 [ESNext][BigInt] Implement support for addition operations
1900 https://bugs.webkit.org/show_bug.cgi?id=179002
1902 Reviewed by Yusuke Suzuki.
1905 * stress/addition-order-evaluation.js: Added.
1906 * stress/big-int-add-wrapped-value.js: Added.
1907 * stress/big-int-addition-basic.js: Added.
1908 * stress/big-int-addition-jit.js: Added.
1909 * stress/big-int-addition-memory-stress.js: Added.
1910 * stress/big-int-addition-string-coercion.js: Added.
1911 * stress/big-int-addition-to-primitive-precedence.js: Added.
1912 * stress/big-int-addition-to-primitive.js: Added.
1913 * stress/big-int-addition-type-error.js: Added.
1914 * stress/big-int-no-conversion-to-number.js:
1915 * stress/big-int-sub-wrapped-value.js: Added.
1916 * stress/big-int-subtraction-basic.js: Added.
1917 * stress/big-int-subtraction-jit.js: Added.
1918 * stress/big-int-subtraction-type-error.js: Added.
1919 * stress/sub-order-evaluation.js: Added.
1921 2018-05-29 Yusuke Suzuki <utatane.tea@gmail.com>
1923 [JSC] Add Symbol.prototype.description getter
1924 https://bugs.webkit.org/show_bug.cgi?id=186053
1926 Reviewed by Keith Miller.
1928 * stress/symbol-description.js: Added.
1932 2018-05-30 Yusuke Suzuki <utatane.tea@gmail.com>
1934 [DFG] InById should be converted to MatchStructure
1935 https://bugs.webkit.org/show_bug.cgi?id=185803
1937 Reviewed by Keith Miller.
1939 * microbenchmarks/in-by-id-match.js: Added.
1941 * microbenchmarks/in-by-id-removed.js: Added.
1943 * stress/in-by-id-constant.js: Added.
1946 * stress/in-by-id-match-invalid.js: Added.
1949 * stress/in-by-id-match.js: Added.
1953 2018-05-31 Caio Lima <ticaiolima@gmail.com>
1955 [ESNext][BigInt] Implement support for "=<" and ">=" relational operation
1956 https://bugs.webkit.org/show_bug.cgi?id=185929
1958 Reviewed by Yusuke Suzuki.
1961 * stress/big-int-greater-than-or-equal-jit.js: Added.
1962 * stress/big-int-greater-than-or-equal-order-of-evaluation.js: Added.
1963 * stress/big-int-greater-than-or-equal-wrapped-values.js: Added.
1964 * stress/big-int-greater-than-or-equal.js: Added.
1965 * stress/big-int-less-than-or-equal-general.js: Added.
1966 * stress/big-int-less-than-or-equal-jit.js: Added.
1967 * stress/big-int-less-than-or-equal-order-of-evaluation.js: Added.
1968 * stress/big-int-less-than-or-equal-wrapped-values.js: Added.
1970 2018-05-31 Saam Barati <sbarati@apple.com>
1972 Cache toString results for CoW arrays
1973 https://bugs.webkit.org/show_bug.cgi?id=186160
1975 Reviewed by Keith Miller.
1977 * microbenchmarks/to-string-on-cow-array.js: Added.
1980 2018-05-31 Keith Miller <keith_miller@apple.com>
1982 Rebaseline test for change in Error.stack behavior.
1984 * stress/error-stack-trace-limit.js:
1987 2018-05-30 Saam Barati <sbarati@apple.com>
1989 DFG combined liveness needs to say that the machine CodeBlock's arguments are live
1990 https://bugs.webkit.org/show_bug.cgi?id=186121
1991 <rdar://problem/39377796>
1993 Reviewed by Keith Miller.
1995 * stress/combined-liveness-needs-to-say-arguments-are-live.js: Added.
1999 2018-05-30 Keith Miller <keith_miller@apple.com>
2001 Unreviewed, uncomment erroneously commented test code.
2003 * stress/error-stack-trace-limit.js:
2005 2018-05-30 Keith Miller <keith_miller@apple.com>
2007 LLInt get_by_id prototype caching doesn't properly handle changes
2008 https://bugs.webkit.org/show_bug.cgi?id=186112
2010 Reviewed by Filip Pizlo.
2012 * stress/llint-proto-get-by-id-cache-change-prototype.js: Added.
2014 * stress/llint-proto-get-by-id-cache-intercept-value.js: Added.
2017 2018-05-30 Caio Lima <ticaiolima@gmail.com>
2019 [ESNext][BigInt] Implement support for "%" operation
2020 https://bugs.webkit.org/show_bug.cgi?id=184327
2022 Reviewed by Yusuke Suzuki.
2025 * stress/big-int-mod-memory-stress.js: Added.
2026 * stress/big-int-mod-to-primitive-precedence.js: Added.
2027 * stress/big-int-mod-to-primitive.js: Added.
2028 * stress/big-int-mod-type-error.js: Added.
2029 * stress/big-int-mod-wrapped-value.js: Added.
2030 * stress/big-int-mod.js: Added.
2032 2018-05-29 Caitlin Potter <caitp@igalia.com>
2034 [JSTests] update test262 expectations after r232261
2035 https://bugs.webkit.org/show_bug.cgi?id=184267
2037 Reviewed by Saam Barati.
2039 * test262/expectations.yaml:
2041 2018-05-29 Caio Lima <ticaiolima@gmail.com>
2043 [ESNext][BigInt] Implement support for "<" and ">" relational operation
2044 https://bugs.webkit.org/show_bug.cgi?id=185379
2046 Reviewed by Yusuke Suzuki.
2048 * stress/big-int-greater-than-general.js: Added.
2049 * stress/big-int-greater-than-jit.js: Added.
2050 * stress/big-int-greater-than-order-of-evaluation.js: Added.
2051 * stress/big-int-greater-than-wrapped-values.js: Added.
2052 * stress/big-int-less-than-general.js: Added.
2053 * stress/big-int-less-than-jit.js: Added.
2054 * stress/big-int-less-than-order-of-evaluation.js: Added.
2055 * stress/big-int-less-than-wrapped-values.js: Added.
2057 2018-05-29 Caitlin Potter <caitp@igalia.com>
2059 [JSC] Fix Array.prototype.concat fast case when single argument is Proxy
2060 https://bugs.webkit.org/show_bug.cgi?id=184267
2062 Reviewed by Saam Barati.
2064 * stress/array-concat-fast-spread-proxy.js: Copied from JSTests/stress/array-concat-spread-proxy.js.
2067 * stress/array-concat-spread-proxy.js:
2069 2018-05-27 Caio Lima <ticaiolima@gmail.com>
2071 [ESNext][BigInt] Implement "+" and "-" unary operation
2072 https://bugs.webkit.org/show_bug.cgi?id=182214
2074 Reviewed by Yusuke Suzuki.
2076 * stress/big-int-negate-basic.js: Added.
2077 * stress/big-int-negate-jit.js: Added.
2078 * stress/big-int-unary-plus.js: Added.
2080 2018-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
2082 [JSC] Rename Array#flatten to flat
2083 https://bugs.webkit.org/show_bug.cgi?id=186012
2085 Reviewed by Saam Barati.
2087 * stress/array-flatten.js:
2089 * test262/expectations.yaml:
2091 2018-05-23 Yusuke Suzuki <utatane.tea@gmail.com>
2093 Upgrade test262 to May 24 version
2094 https://bugs.webkit.org/show_bug.cgi?id=185937
2096 Reviewed by Darin Adler.
2098 * test262/expectations.yaml:
2099 * test262/harness/doneprintHandle.js:
2101 * test262/latest-changes-summary.txt:
2102 * test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js:
2103 * test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added.
2104 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js:
2105 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js.
2106 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js:
2107 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js.
2108 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js:
2109 * test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js.
2110 * test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js:
2111 * test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js.
2112 * test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js:
2113 * test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js.
2114 * test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js:
2115 * test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added.
2116 * test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js:
2117 * test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added.
2118 * test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js:
2119 * test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added.
2120 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js:
2121 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js.
2122 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js:
2123 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js.
2124 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js:
2125 * test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js.
2126 * test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js:
2127 * test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js.
2128 * test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js:
2129 * test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-non-enumerable-global-init.js: Copied from JSTests/test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js.
2130 * test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js:
2131 * test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added.
2132 * test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js:
2133 * test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added.
2134 * test262/test/annexB/language/global-code/block-decl-global-existing-global-init.js: Added.
2136 * test262/test/annexB/language/global-code/block-decl-global-existing-non-enumerable-global-init.js: Added.
2138 * test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-global-init.js: Added.
2139 (262.evalScript.true.f):
2141 * test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-non-enumerable-global-init.js: Added.
2142 (262.evalScript.true.f):
2144 * test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-global-init.js: Added.
2145 (262.evalScript.false._f):
2147 * test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-non-enumerable-global-init.js: Added.
2148 (262.evalScript.false._f):
2150 * test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-global-init.js: Added.
2151 (262.evalScript.true.f):
2152 * test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-non-enumerable-global-init.js: Added.
2153 (262.evalScript.true.f):
2154 * test262/test/annexB/language/global-code/if-decl-no-else-global-existing-global-init.js: Added.
2155 (262.evalScript.true.f):
2156 * test262/test/annexB/language/global-code/if-decl-no-else-global-existing-non-enumerable-global-init.js: Added.
2157 (262.evalScript.true.f):
2158 * test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-global-init.js: Added.
2160 * test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-non-enumerable-global-init.js: Added.
2162 * test262/test/annexB/language/global-code/switch-case-global-existing-global-init.js: Added.
2163 (262.evalScript.switch.case.1):
2164 (262.evalScript.switch):
2165 * test262/test/annexB/language/global-code/switch-case-global-existing-non-enumerable-global-init.js: Added.
2166 (262.evalScript.switch.case.1):
2167 (262.evalScript.switch):
2168 * test262/test/annexB/language/global-code/switch-dflt-global-existing-global-init.js: Added.
2169 (262.evalScript.switch.default):
2170 (262.evalScript.switch):
2171 * test262/test/annexB/language/global-code/switch-dflt-global-existing-non-enumerable-global-init.js: Added.
2172 (262.evalScript.switch.default):
2173 (262.evalScript.switch):
2174 * test262/test/built-ins/Array/prototype/flat/array-like-objects.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/array-like-objects.js.
2175 * test262/test/built-ins/Array/prototype/flat/bound-function-call.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/bound-function-call.js.
2176 * test262/test/built-ins/Array/prototype/flat/empty-array-elements.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/empty-array-elements.js.
2177 * test262/test/built-ins/Array/prototype/flat/empty-object-elements.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/empty-object-elements.js.
2178 * test262/test/built-ins/Array/prototype/flat/length.js: Added.
2179 * test262/test/built-ins/Array/prototype/flat/name.js: Added.
2180 * test262/test/built-ins/Array/prototype/flat/non-numeric-depth-should-not-throw.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/non-numeric-depth-should-not-throw.js.
2181 * test262/test/built-ins/Array/prototype/flat/non-object-ctor-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/non-object-ctor-throws.js.
2182 * test262/test/built-ins/Array/prototype/flat/null-undefined-elements.js: Added.
2183 * test262/test/built-ins/Array/prototype/flat/null-undefined-input-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/null-undefined-input-throws.js.
2184 * test262/test/built-ins/Array/prototype/flat/positive-infinity.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/positive-infinity.js.
2185 * test262/test/built-ins/Array/prototype/flat/prop-desc.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/prop-desc.js.
2186 * test262/test/built-ins/Array/prototype/flat/symbol-object-create-null-depth-throws.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/symbol-object-create-null-depth-throws.js.
2187 * test262/test/built-ins/Array/prototype/flatten/length.js: Removed.
2188 * test262/test/built-ins/Array/prototype/flatten/name.js: Removed.
2189 * test262/test/built-ins/Array/prototype/flatten/null-undefined-elements.js: Removed.
2190 * test262/test/built-ins/AsyncGeneratorPrototype/next/name.js:
2191 * test262/test/built-ins/AsyncGeneratorPrototype/return/name.js:
2192 * test262/test/built-ins/AsyncGeneratorPrototype/throw/name.js:
2193 * test262/test/built-ins/Math/acosh/nan-returns.js:
2194 * test262/test/built-ins/Math/asinh/asinh-specialVals.js:
2195 * test262/test/built-ins/Math/atanh/atanh-specialVals.js:
2196 * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
2197 * test262/test/built-ins/Math/cbrt/prop-desc.js:
2198 * test262/test/built-ins/Math/cosh/cosh-specialVals.js:
2199 * test262/test/built-ins/Math/expm1/expm1-specialVals.js:
2200 * test262/test/built-ins/Math/log10/Log10-specialVals.js:
2201 * test262/test/built-ins/Math/log2/log2-basicTests.js:
2202 * test262/test/built-ins/Math/sign/sign-specialVals.js:
2203 * test262/test/built-ins/Math/sinh/sinh-specialVals.js:
2204 * test262/test/built-ins/Math/tanh/tanh-specialVals.js:
2205 * test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
2206 * test262/test/built-ins/Math/trunc/trunc-specialVals.js:
2207 * test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-regexp-dollar1.js: Added.
2208 * test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js: Added.
2209 * test262/test/intl402/Intl/getCanonicalLocales/descriptor.js:
2210 * test262/test/intl402/Intl/getCanonicalLocales/duplicates.js:
2211 * test262/test/intl402/Locale/constructor-getter-order.js: Added.
2212 (new.Intl.Locale.toString):
2221 (get numberingSystem):
2222 * test262/test/intl402/Locale/constructor-locale-object.js: Added.
2223 * test262/test/intl402/Locale/constructor-non-iana-canon.js: Added.
2224 * test262/test/intl402/Locale/constructor-options-casefirst-invalid.js: Added.
2226 (const.invalidCaseFirstOption.of.invalidCaseFirstOptions.new.Intl.Locale):
2227 * test262/test/intl402/Locale/constructor-options-casefirst-valid.js: Added.
2229 * test262/test/intl402/Locale/constructor-options-collation-invalid.js: Added.
2230 (const.invalidCollationOption.of.invalidCollationOptions.new.Intl.Locale):
2231 * test262/test/intl402/Locale/constructor-options-collation-valid.js: Added.
2232 * test262/test/intl402/Locale/constructor-options-hourcycle-invalid.js: Added.
2233 (const.invalidHourCycleOption.of.invalidHourCycleOptions.new.Intl.Locale):
2234 * test262/test/intl402/Locale/constructor-options-hourcycle-valid.js: Added.
2236 * test262/test/intl402/Locale/constructor-options-language-grandfathered.js: Added.
2237 * test262/test/intl402/Locale/constructor-options-language-valid.js:
2239 * test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js: Added.
2240 (const.invalidNumberingSystemOption.of.invalidNumberingSystemOptions.new.Intl.Locale):
2241 * test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js: Added.
2242 * test262/test/intl402/Locale/constructor-options-numeric-valid.js: Added.
2244 * test262/test/intl402/Locale/constructor-options-region-valid.js:
2245 * test262/test/intl402/Locale/constructor-options-script-valid.js:
2247 * test262/test/intl402/Locale/constructor-parse-twice.js: Added.
2248 * test262/test/intl402/Locale/constructor-tag-tostring.js: Added.
2251 (const.errors.get Symbol):
2252 (throw.new.CustomError):
2253 (throw.new.CustomError.get toString):
2254 (throw.new.CustomError.get valueOf):
2255 (throw.new.WrongCustomError.get valueOf):
2256 (throw.new.WrongCustomError):
2257 * test262/test/intl402/Locale/constructor-unicode-ext-invalid.js: Added.
2258 * test262/test/intl402/Locale/constructor-unicode-ext-valid.js: Added.
2259 (canonical.of.Object.entries):
2260 * test262/test/intl402/Locale/extensions-grandfathered.js: Added.
2261 (of.testData.value.of.Object.entries):
2262 * test262/test/intl402/Locale/extensions-private.js: Added.
2263 * test262/test/intl402/Locale/getters-grandfathered.js: Added.
2264 * test262/test/intl402/Locale/getters-missing.js: Added.
2265 * test262/test/intl402/Locale/getters-privateuse.js: Added.
2266 * test262/test/intl402/Locale/getters.js: Added.
2267 * test262/test/intl402/Locale/invalid-tag-throws-symbol.js:
2268 * test262/test/intl402/Locale/likely-subtags-grandfathered.js: Added.
2269 * test262/test/intl402/Locale/prop-desc.js:
2270 * test262/test/intl402/Locale/prototype/baseName/prop-desc.js: Added.
2271 * test262/test/intl402/Locale/prototype/calendar/prop-desc.js: Added.
2272 * test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js: Added.
2273 * test262/test/intl402/Locale/prototype/collation/prop-desc.js: Added.
2274 * test262/test/intl402/Locale/prototype/constructor/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
2275 * test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js: Added.
2276 * test262/test/intl402/Locale/prototype/language/prop-desc.js: Added.
2277 * test262/test/intl402/Locale/prototype/maximize/length.js:
2278 * test262/test/intl402/Locale/prototype/maximize/prop-desc.js:
2279 * test262/test/intl402/Locale/prototype/minimize/length.js: Copied from JSTests/test262/test/intl402/Locale/prototype/maximize/length.js.
2280 * test262/test/intl402/Locale/prototype/minimize/name.js: Added.
2281 * test262/test/intl402/Locale/prototype/minimize/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
2282 * test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js: Added.
2283 * test262/test/intl402/Locale/prototype/numeric/prop-desc.js: Added.
2284 * test262/test/intl402/Locale/prototype/region/prop-desc.js: Added.
2285 * test262/test/intl402/Locale/prototype/script/prop-desc.js: Added.
2286 * test262/test/intl402/Locale/prototype/toString/prop-desc.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
2287 * test262/test/intl402/Locale/prototype/toStringTag/toStringTag.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/toStringTag.js.
2288 * test262/test/intl402/Number/prototype/toLocaleString/length.js:
2289 * test262/test/intl402/NumberFormat/length.js:
2290 * test262/test/intl402/NumberFormat/name.js:
2291 * test262/test/intl402/NumberFormat/prop-desc.js:
2292 * test262/test/intl402/PluralRules/length.js:
2293 * test262/test/intl402/PluralRules/name.js:
2294 * test262/test/intl402/PluralRules/prop-desc.js: Copied from JSTests/test262/test/intl402/NumberFormat/prop-desc.js.
2295 * test262/test/language/expressions/addition/bigint-and-number.js:
2296 * test262/test/language/expressions/addition/bigint-arithmetic.js:
2298 * test262/test/language/expressions/addition/bigint-errors.js:
2299 (Symbol.toPrimitive):
2300 (0n.Symbol.toPrimitive):
2305 * test262/test/language/expressions/addition/bigint-toprimitive.js:
2306 * test262/test/language/expressions/addition/bigint-wrapped-values.js:
2307 * test262/test/language/expressions/bitwise-and/bigint-and-number.js:
2308 * test262/test/language/expressions/bitwise-and/bigint-errors.js:
2309 (Symbol.toPrimitive):
2310 (0n.Symbol.toPrimitive):
2315 * test262/test/language/expressions/bitwise-and/bigint-non-primitive.js:
2316 (assert.sameValue.Symbol.toPrimitive):
2317 (assert.sameValue.0b011n.Symbol.toPrimitive):
2318 (assert.sameValue.valueOf):
2319 (assert.sameValue.0b011n.valueOf):
2320 (assert.sameValue.toString):
2321 (assert.sameValue.0b011n.toString):
2322 * test262/test/language/expressions/bitwise-and/bigint-toprimitive.js:
2323 * test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js:
2324 * test262/test/language/expressions/bitwise-not/bigint-non-primitive.js:
2325 (assert.sameValue.Symbol.toPrimitive):
2326 (assert.sameValue.valueOf):
2327 (assert.sameValue.toString):
2328 * test262/test/language/expressions/bitwise-or/bigint-and-number.js:
2329 * test262/test/language/expressions/bitwise-or/bigint-errors.js:
2330 (Symbol.toPrimitive):
2331 (0n.Symbol.toPrimitive):
2336 * test262/test/language/expressions/bitwise-or/bigint-non-primitive.js:
2337 (assert.sameValue.Symbol.toPrimitive):
2338 (assert.sameValue.0b011n.Symbol.toPrimitive):
2339 (assert.sameValue.valueOf):
2340 (assert.sameValue.0b011n.valueOf):
2341 (assert.sameValue.toString):
2342 (assert.sameValue.0b011n.toString):
2343 * test262/test/language/expressions/bitwise-or/bigint-toprimitive.js:
2344 * test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js:
2345 * test262/test/language/expressions/bitwise-xor/bigint-and-number.js:
2346 * test262/test/language/expressions/bitwise-xor/bigint-errors.js:
2347 (Symbol.toPrimitive):
2348 (0n.Symbol.toPrimitive):
2353 * test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js:
2354 (assert.sameValue.Symbol.toPrimitive):
2355 (assert.sameValue.0b011n.Symbol.toPrimitive):
2356 (assert.sameValue.valueOf):
2357 (assert.sameValue.0b011n.valueOf):
2358 (assert.sameValue.toString):
2359 (assert.sameValue.0b011n.toString):
2360 * test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js:
2361 * test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js:
2362 * test262/test/language/expressions/division/bigint-and-number.js:
2363 * test262/test/language/expressions/division/bigint-arithmetic.js:
2365 * test262/test/language/expressions/division/bigint-complex-infinity.js:
2366 * test262/test/language/expressions/division/bigint-errors.js:
2367 (Symbol.toPrimitive):
2368 (0n.Symbol.toPrimitive):
2373 * test262/test/language/expressions/division/bigint-toprimitive.js:
2374 * test262/test/language/expressions/division/bigint-wrapped-values.js:
2375 * test262/test/language/expressions/does-not-equals/bigint-and-bigint.js:
2376 * test262/test/language/expressions/does-not-equals/bigint-and-boolean.js:
2377 * test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js:
2378 * test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js:
2379 * test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js:
2380 * test262/test/language/expressions/does-not-equals/bigint-and-number.js:
2381 * test262/test/language/expressions/does-not-equals/bigint-and-object.js:
2382 (assert.sameValue.0n.valueOf):
2383 (assert.sameValue.valueOf):
2384 (assert.sameValue.0n.toString):
2385 (assert.sameValue.toString):
2386 (assert.sameValue.900719925474099101n.valueOf):
2387 (assert.sameValue.900719925474099101n.toString):
2388 * test262/test/language/expressions/does-not-equals/bigint-and-string.js:
2389 * test262/test/language/expressions/equals/bigint-and-bigint.js:
2390 * test262/test/language/expressions/equals/bigint-and-boolean.js:
2391 * test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js:
2392 * test262/test/language/expressions/equals/bigint-and-non-finite.js:
2393 * test262/test/language/expressions/equals/bigint-and-number-extremes.js:
2394 * test262/test/language/expressions/equals/bigint-and-number.js:
2395 * test262/test/language/expressions/equals/bigint-and-object.js:
2396 (assert.sameValue.0n.valueOf):
2397 (assert.sameValue.valueOf):
2398 (assert.sameValue.0n.toString):
2399 (assert.sameValue.toString):
2400 (assert.sameValue.900719925474099101n.valueOf):
2401 (assert.sameValue.900719925474099101n.toString):
2402 * test262/test/language/expressions/equals/bigint-and-string.js:
2403 * test262/test/language/expressions/exponentiation/bigint-and-number.js:
2404 * test262/test/language/expressions/exponentiation/bigint-arithmetic.js:
2405 (testExpt): Deleted.
2406 * test262/test/language/expressions/exponentiation/bigint-errors.js:
2407 (Symbol.toPrimitive):
2408 (0n.Symbol.toPrimitive):
2413 * test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js: Renamed from JSTests/test262/test/language/expressions/exponentiation/bigint-exp-operator-negative-throws.js.
2414 * test262/test/language/expressions/exponentiation/bigint-toprimitive.js:
2415 * test262/test/language/expressions/exponentiation/bigint-wrapped-values.js:
2416 * test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js:
2417 * test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js:
2418 * test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js:
2419 * test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js:
2420 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js:
2421 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
2422 * test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js:
2423 * test262/test/language/expressions/greater-than/11.8.2-1.js:
2426 * test262/test/language/expressions/greater-than/11.8.2-2.js:
2429 * test262/test/language/expressions/greater-than/11.8.2-3.js:
2432 * test262/test/language/expressions/greater-than/11.8.2-4.js:
2435 * test262/test/language/expressions/greater-than/bigint-and-bigint.js:
2436 * test262/test/language/expressions/greater-than/bigint-and-boolean.js:
2437 * test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js:
2438 * test262/test/language/expressions/greater-than/bigint-and-non-finite.js:
2439 * test262/test/language/expressions/greater-than/bigint-and-number-extremes.js:
2440 * test262/test/language/expressions/greater-than/bigint-and-number.js:
2441 * test262/test/language/expressions/greater-than/bigint-and-string.js:
2442 * test262/test/language/expressions/greater-than/bigint-and-symbol.js: Added.
2443 * test262/test/language/expressions/left-shift/bigint-and-number.js:
2444 * test262/test/language/expressions/left-shift/bigint-errors.js:
2445 (Symbol.toPrimitive):
2446 (0n.Symbol.toPrimitive):
2451 * test262/test/language/expressions/left-shift/bigint-non-primitive.js:
2452 (assert.sameValue.Symbol.toPrimitive):
2453 (assert.sameValue.valueOf):
2454 (assert.sameValue.toString):
2455 (assert.sameValue.0b101n.Symbol.toPrimitive):
2456 (assert.sameValue.0b101n.valueOf):
2457 (assert.sameValue.0b101n.toString):
2459 * test262/test/language/expressions/left-shift/bigint-toprimitive.js:
2460 * test262/test/language/expressions/left-shift/bigint-wrapped-values.js:
2461 * test262/test/language/expressions/less-than-or-equal/11.8.3-1.js:
2464 * test262/test/language/expressions/less-than-or-equal/11.8.3-2.js:
2467 * test262/test/language/expressions/less-than-or-equal/11.8.3-3.js:
2470 * test262/test/language/expressions/less-than-or-equal/11.8.3-4.js:
2473 * test262/test/language/expressions/less-than-or-equal/11.8.3-5.js: Removed.
2474 * test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js:
2475 * test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js:
2476 * test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js:
2477 * test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js:
2478 * test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
2479 * test262/test/language/expressions/less-than-or-equal/bigint-and-string.js:
2480 * test262/test/language/expressions/less-than/bigint-and-bigint.js:
2481 * test262/test/language/expressions/less-than/bigint-and-boolean.js:
2482 * test262/test/language/expressions/less-than/bigint-and-incomparable-string.js:
2483 * test262/test/language/expressions/less-than/bigint-and-non-finite.js:
2484 * test262/test/language/expressions/less-than/bigint-and-number-extremes.js:
2485 * test262/test/language/expressions/less-than/bigint-and-number.js:
2486 * test262/test/language/expressions/less-than/bigint-and-string.js:
2487 * test262/test/language/expressions/less-than/bigint-and-symbol.js: Added.
2488 * test262/test/language/expressions/modulus/bigint-and-number.js:
2489 * test262/test/language/expressions/modulus/bigint-arithmetic.js:
2491 * test262/test/language/expressions/modulus/bigint-errors.js:
2492 (Symbol.toPrimitive):
2493 (0n.Symbol.toPrimitive):
2498 * test262/test/language/expressions/modulus/bigint-modulo-zero.js:
2499 * test262/test/language/expressions/modulus/bigint-toprimitive.js:
2500 * test262/test/language/expressions/modulus/bigint-wrapped-values.js:
2501 * test262/test/language/expressions/multiplication/bigint-and-number.js:
2502 * test262/test/language/expressions/multiplication/bigint-arithmetic.js:
2504 * test262/test/language/expressions/multiplication/bigint-errors.js:
2505 (Symbol.toPrimitive):
2506 (0n.Symbol.toPrimitive):
2511 * test262/test/language/expressions/multiplication/bigint-toprimitive.js:
2512 * test262/test/language/expressions/multiplication/bigint-wrapped-values.js:
2513 * test262/test/language/expressions/right-shift/bigint-and-number.js:
2514 * test262/test/language/expressions/right-shift/bigint-errors.js:
2515 (Symbol.toPrimitive):
2516 (0n.Symbol.toPrimitive):
2521 * test262/test/language/expressions/right-shift/bigint-non-primitive.js:
2522 (assert.sameValue.Symbol.toPrimitive):
2523 (assert.sameValue.valueOf):
2524 (assert.sameValue.toString):
2525 (assert.sameValue.0b101n.Symbol.toPrimitive):
2526 (assert.sameValue.0b101n.valueOf):
2527 (assert.sameValue.0b101n.toString):
2529 * test262/test/language/expressions/right-shift/bigint-toprimitive.js:
2530 * test262/test/language/expressions/right-shift/bigint-wrapped-values.js:
2531 * test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js:
2532 * test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js:
2533 * test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js:
2534 * test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js:
2535 * test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js:
2536 * test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js:
2537 * test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js:
2538 (assert.sameValue.0n.valueOf):
2539 (assert.sameValue.valueOf):
2540 (assert.sameValue.0n.toString):
2541 (assert.sameValue.toString):
2542 (assert.sameValue.900719925474099101n.valueOf):
2543 (assert.sameValue.900719925474099101n.toString):
2544 * test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js:
2545 * test262/test/language/expressions/strict-equals/bigint-and-bigint.js:
2546 * test262/test/language/expressions/strict-equals/bigint-and-boolean.js:
2547 * test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js:
2548 * test262/test/language/expressions/strict-equals/bigint-and-non-finite.js:
2549 * test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js:
2550 * test262/test/language/expressions/strict-equals/bigint-and-number.js:
2551 * test262/test/language/expressions/strict-equals/bigint-and-object.js:
2552 (assert.sameValue.0n.valueOf):
2553 (assert.sameValue.valueOf):
2554 (assert.sameValue.0n.toString):
2555 (assert.sameValue.toString):
2556 (assert.sameValue.900719925474099101n.valueOf):
2557 (assert.sameValue.900719925474099101n.toString):
2558 * test262/test/language/expressions/strict-equals/bigint-and-string.js:
2559 * test262/test/language/expressions/subtraction/bigint-and-number.js:
2560 * test262/test/language/expressions/subtraction/bigint-arithmetic.js:
2562 * test262/test/language/expressions/subtraction/bigint-errors.js:
2563 (Symbol.toPrimitive):
2564 (0n.Symbol.toPrimitive):
2569 * test262/test/language/expressions/subtraction/bigint-toprimitive.js:
2570 * test262/test/language/expressions/subtraction/bigint-wrapped-values.js:
2571 * test262/test/language/expressions/unary-minus/bigint-non-primitive.js:
2572 (assert.sameValue.Symbol.toPrimitive):
2573 (assert.sameValue.valueOf):
2574 (assert.sameValue.toString):
2575 * test262/test/language/expressions/unary-plus/bigint-throws.js:
2576 * test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js:
2577 * test262/test/language/expressions/unsigned-right-shift/bigint-errors.js:
2578 (Symbol.toPrimitive):
2579 (0n.Symbol.toPrimitive):
2584 * test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js:
2585 (Symbol.toPrimitive):
2588 (0b101n.Symbol.toPrimitive):
2592 * test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js:
2593 * test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js:
2594 * test262/test/language/literals/numeric/numeric-followed-by-ident.js: Added.
2595 * test262/test/language/literals/string/line-continuation-double.js: Added.
2596 * test262/test/language/literals/string/line-continuation-single.js: Added.
2597 * test262/test262-Revision.txt:
2599 2018-05-25 Mark Lam <mark.lam@apple.com>
2601 for-in loops should preserve and restore the TDZ stack for each of its internal loops.
2602 https://bugs.webkit.org/show_bug.cgi?id=185995
2603 <rdar://problem/40173142>
2605 Reviewed by Saam Barati.
2607 * stress/regress-185995.js: Added.
2609 2018-05-23 Keith Miller <keith_miller@apple.com>
2611 Define length on CoW array should properly convert to writable
2612 https://bugs.webkit.org/show_bug.cgi?id=185927
2614 Reviewed by Yusuke Suzuki.
2616 * stress/cow-define-length-as-value.js: Added.
2619 2018-05-23 Michael Saboff <msaboff@apple.com>
2621 Date.parse() doesn't properly handle input outside of ES Spec limits
2622 https://bugs.webkit.org/show_bug.cgi?id=185868
2624 Reviewed by Mark Lam.
2628 * stress/date-parse-ranges.js: Added.
2633 2018-05-23 Rick Waldron <waldron.rick@gmail.com>
2635 Conversion misspelled "Convertion" in error message string
2636 https://bugs.webkit.org/show_bug.cgi?id=185436
2638 Reviewed by Saam Barati, Michael Saboff.
2642 2018-05-23 Yusuke Suzuki <utatane.tea@gmail.com>
2644 Unreviewed, skip test if memoryLimited is specified
2645 https://bugs.webkit.org/show_bug.cgi?id=185888
2647 * stress/regress-185888.js:
2649 2018-05-22 Mark Lam <mark.lam@apple.com>
2651 BytecodeGeneratorification shouldn't add a ValueProfile if the JIT is disabled.
2652 https://bugs.webkit.org/show_bug.cgi?id=185896
2653 <rdar://problem/40471403>
2655 Reviewed by Saam Barati.
2657 * stress/regress-185896.js: Added.
2659 2018-05-22 Yusuke Suzuki <utatane.tea@gmail.com>
2661 [JSC] Fix CachedCall's argument count if RegExp has named captures
2662 https://bugs.webkit.org/show_bug.cgi?id=185587
2664 Reviewed by Mark Lam.
2666 * test262/expectations.yaml:
2668 2018-05-22 Mark Lam <mark.lam@apple.com>
2670 StringImpl utf8 conversion should not fail silently.
2671 https://bugs.webkit.org/show_bug.cgi?id=185888
2672 <rdar://problem/40464506>
2674 Reviewed by Filip Pizlo.
2676 * stress/regress-185888.js: Added.
2678 2018-05-22 Keith Miller <keith_miller@apple.com>
2680 We should have a CoW storage for NewArrayBuffer arrays.
2681 https://bugs.webkit.org/show_bug.cgi?id=185003
2683 Reviewed by Filip Pizlo.
2685 * stress/cow-convert-contiguous-to-array-storage.js: Added.
2689 * stress/cow-convert-double-to-array-storage.js: Added.
2693 * stress/cow-convert-double-to-contiguous.js: Added.
2697 * stress/cow-convert-int32-to-array-storage.js: Added.
2701 * stress/cow-convert-int32-to-contiguous.js: Added.
2705 * stress/cow-convert-int32-to-double.js: Added.
2709 * stress/put-on-cow-prototype.js: Added.
2713 2018-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
2715 Unreviewed, reland InById cache
2716 https://bugs.webkit.org/show_bug.cgi?id=185682
2718 * stress/in-by-id-accessors.js: Added.
2721 (protoGetter.__proto__.get hello):
2722 (protoSetter.__proto__.set hello):
2723 (i.shouldBe.test.get hello):
2724 (i.shouldBe.test.set hello):
2725 * stress/in-by-id-ai.js: Added.
2728 * stress/in-by-id-custom-accessors.js: Added.
2732 * stress/in-by-id-custom-values.js: Added.
2735 * stress/in-by-id-operation.js: Added.
2739 * stress/in-by-id-proxy.js: Added.
2744 2018-05-21 Commit Queue <commit-queue@webkit.org>
2746 Unreviewed, rolling out r231998 and r232017.
2747 https://bugs.webkit.org/show_bug.cgi?id=185842
2749 causes crashes on 32 JSC bot (Requested by realdawei on
2752 Reverted changesets:
2754 "[JSC] JSC should have consistent InById IC"
2755 https://bugs.webkit.org/show_bug.cgi?id=185682
2756 https://trac.webkit.org/changeset/231998
2758 "Unreviewed, fix 32bit and scope release"
2759 https://bugs.webkit.org/show_bug.cgi?id=185682
2760 https://trac.webkit.org/changeset/232017
2762 2018-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
2764 [JSC] JSC should have consistent InById IC
2765 https://bugs.webkit.org/show_bug.cgi?id=185682
2767 Reviewed by Filip Pizlo.
2769 * stress/in-by-id-accessors.js: Added.
2772 (protoGetter.__proto__.get hello):
2773 (protoSetter.__proto__.set hello):
2774 (i.shouldBe.test.get hello):
2775 (i.shouldBe.test.set hello):
2776 * stress/in-by-id-ai.js: Added.
2779 * stress/in-by-id-custom-accessors.js: Added.
2783 * stress/in-by-id-custom-values.js: Added.
2786 * stress/in-by-id-operation.js: Added.
2790 * stress/in-by-id-proxy.js: Added.
2795 2018-05-18 Keith Miller <keith_miller@apple.com>
2797 op_in should mark if it sees out of bounds accesses
2798 https://bugs.webkit.org/show_bug.cgi?id=185792
2800 Reviewed by Filip Pizlo.
2802 * stress/has-indexed-property-array-storage-ftl.js:
2804 * stress/has-indexed-property-slow-put-array-storage-ftl.js:
2807 2018-05-18 Mark Lam <mark.lam@apple.com>
2809 Add missing exception check.
2810 https://bugs.webkit.org/show_bug.cgi?id=185786
2811 <rdar://problem/35686560>
2813 Reviewed by Michael Saboff.
2815 * stress/regress-185786.js: Added.
2817 2018-05-16 Filip Pizlo <fpizlo@apple.com>
2819 JSC should have InstanceOf inline caching
2820 https://bugs.webkit.org/show_bug.cgi?id=185652
2822 Reviewed by Saam Barati.
2824 * microbenchmarks/instanceof-always-hit-one.js: Added.
2825 * microbenchmarks/instanceof-always-hit-two.js: Added.
2826 * microbenchmarks/instanceof-dynamic.js: Added.
2827 * microbenchmarks/instanceof-sometimes-hit.js: Added.
2828 * stress/instanceof-dynamic-proxy-check-structure.js: Added.
2829 * stress/instanceof-dynamic-proxy-loop.js: Added.
2830 * stress/instanceof-dynamic-proxy.js: Added.
2831 * stress/instanceof-hit-one-object-then-another.js: Added.
2832 * stress/instanceof-hit-two-objects-then-another.js: Added.
2833 * stress/instanceof-prototype-change.js: Added.
2834 * stress/instanceof-prototype-change-to-hit.js: Added.
2835 * stress/instanceof-prototype-change-to-null.js: Added.
2836 * stress/instanceof-prototype-change-watchpointable.js: Added.
2838 2018-05-17 Michael Saboff <msaboff@apple.com>
2840 We don't throw SyntaxErrors for runtime generated regular expressions with errors
2841 https://bugs.webkit.org/show_bug.cgi?id=185755
2843 Reviewed by Keith Miller.
2845 New regression test.
2847 * stress/regexp-with-runtime-syntax-errors.js: Added.
2848 (testThrowsSyntaxtError):
2849 (fromExecWithBadUnicodeEscape):
2850 (fromTestWithBadUnicodeProperty):
2851 (fromSplitWithBadUnicodeIdentity):
2852 (fromMatchWithBadUnicodeBackReference):
2853 (fromReplaceWithBadUnicodeEscape):
2854 (fromSearchWithBadUnicodeEscape):
2856 2018-05-16 Caio Lima <ticaiolima@gmail.com>
2858 [ESNext][BigInt] Implement support for "/" operation
2859 https://bugs.webkit.org/show_bug.cgi?id=183996
2861 Reviewed by Yusuke Suzuki.
2864 * stress/big-int-div-jit.js: Added.
2865 * stress/big-int-div-memory-stress.js: Added.
2866 * stress/big-int-div-to-primitive-precedence.js: Added.
2867 * stress/big-int-div-to-primitive.js: Added.
2868 * stress/big-int-div-type-error.js: Added.
2869 * stress/big-int-div-wrapped-value.js: Added.
2870 * stress/big-int-division.js: Added.
2872 2018-05-16 Saam Barati <sbarati@apple.com>
2874 Constant fold CheckTypeInfoFlags on ImplementsDefaultHasInstance
2875 https://bugs.webkit.org/show_bug.cgi?id=185670
2877 Reviewed by Yusuke Suzuki.
2879 * microbenchmarks/constant-fold-check-type-info-flags.js: Added.
2880 * stress/dont-constant-fold-check-type-info-on-bound-function.js: Added.
2882 2018-05-16 Commit Queue <commit-queue@webkit.org>
2884 Unreviewed, rolling out r231845.
2885 https://bugs.webkit.org/show_bug.cgi?id=185702
2887 it is breaking Apple High Sierra 32-bit JSC bot (Requested by
2888 caiolima on #webkit).
2892 "[ESNext][BigInt] Implement support for "/" operation"
2893 https://bugs.webkit.org/show_bug.cgi?id=183996
2894 https://trac.webkit.org/changeset/231845
2896 2018-05-16 Filip Pizlo <fpizlo@apple.com>
2898 DFG models InstanceOf incorrectly
2899 https://bugs.webkit.org/show_bug.cgi?id=185694
2901 Reviewed by Keith Miller.
2903 * stress/instanceof-proxy-check-structure.js: Added.
2911 * stress/instanceof-proxy-loop.js: Added.
2917 * stress/instanceof-proxy.js: Added.
2924 2018-05-16 Caio Lima <ticaiolima@gmail.com>
2926 [ESNext][BigInt] Implement support for "/" operation
2927 https://bugs.webkit.org/show_bug.cgi?id=183996
2929 Reviewed by Yusuke Suzuki.
2932 * stress/big-int-div-jit.js: Added.
2933 * stress/big-int-div-memory-stress.js: Added.
2934 * stress/big-int-div-to-primitive-precedence.js: Added.
2935 * stress/big-int-div-to-primitive.js: Added.
2936 * stress/big-int-div-type-error.js: Added.
2937 * stress/big-int-div-wrapped-value.js: Added.
2938 * stress/big-int-division.js: Added.
2940 2018-05-14 Leo Balter <leonardo.balter@gmail.com>
2942 Fix a legacy CRLF eol from Test262
2943 https://bugs.webkit.org/show_bug.cgi?id=185565
2945 Reviewed by Yusuke Suzuki.
2947 * test262/config.yaml:
2948 * test262/test/built-ins/Math/cbrt/prop-desc.js:
2950 2018-05-14 Yusuke Suzuki <utatane.tea@gmail.com>
2952 [JSC] timeClip(-0) should produce +0
2953 https://bugs.webkit.org/show_bug.cgi?id=185589
2955 Reviewed by Saam Barati.
2957 Fix several test262 failures.
2959 * stress/date-negative-zero.js: Added.
2961 * test262/expectations.yaml:
2963 2018-05-13 Caio Lima <ticaiolima@gmail.com>
2965 [BigInt] stress/big-int-spec-to-primitive.js test is failing
2966 https://bugs.webkit.org/show_bug.cgi?id=185582
2968 Reviewed by Yusuke Suzuki.
2970 This patch is removing the use of ```numberOfDFGCompiles``` from
2971 stress/big-int-spec-to-primitive.js because it makes this est fail
2974 * stress/big-int-spec-to-primitive.js:
2976 2018-05-13 Andy VanWagoner <andy@vanwagoner.family>
2978 [INTL] Improve spec & test262 compliance for Intl APIs
2979 https://bugs.webkit.org/show_bug.cgi?id=185578
2981 Reviewed by Yusuke Suzuki.
2983 Remove intl402 failures that have been fixed.
2985 * test262/expectations.yaml:
2986 * stress/regress-178385.js: toStringTag is configurable, but not writable.
2988 2018-05-11 Caio Lima <ticaiolima@gmail.com>
2990 [ESNext][BigInt] Implement support for "*" operation
2991 https://bugs.webkit.org/show_bug.cgi?id=183721
2993 Reviewed by Yusuke Suzuki.
2996 * stress/big-int-mul-jit.js: Added.
2997 * stress/big-int-mul-to-primitive-precedence.js: Added.
2998 * stress/big-int-mul-to-primitive.js: Added.
2999 * stress/big-int-mul-type-error.js: Added.
3000 * stress/big-int-mul-wrapped-value.js: Added.
3001 * stress/big-int-multiplication.js: Added.
3002 * stress/big-int-multiply-memory-stress.js: Added.
3004 2018-05-11 Michael Saboff <msaboff@apple.com>
3006 [DFG] Compiler uses incorrect output register for NumberIsInteger operation
3007 https://bugs.webkit.org/show_bug.cgi?id=185328
3009 Reviewed by Keith Miller.
3011 New regression test.
3013 * stress/isInteger-doesnt-overwrite-argument.js: Added.
3016 2018-05-09 Yusuke Suzuki <utatane.tea@gmail.com>
3018 [JSC] Object.assign for final objects should be faster
3019 https://bugs.webkit.org/show_bug.cgi?id=185348
3021 Reviewed by Saam Barati.
3023 * stress/object-assign-fast-path.js: Added.
3027 2018-05-10 Leo Balter <leonardo.balter@gmail.com>
3029 Update Test262 tests through the new import script - 20180509
3030 https://bugs.webkit.org/show_bug.cgi?id=185482
3032 Reviewed by Michael Saboff.
3034 Also update the test262/expecatations.yaml with the recent imported files.
3036 * test262/expectations.yaml:
3037 * test262/harness/compareIterator.js: Added.
3038 (assert.compareIterator):
3039 * test262/harness/nativeFunctionMatcher.js:
3040 (const.assertToStringOrNativeFunction):
3041 (const.assertNativeFunction):
3042 * test262/harness/regExpUtils.js:
3043 * test262/harness/testIntl.js:
3044 (getInvalidLanguageTags):
3045 * test262/harness/testTypedArray.js:
3046 * test262/harness/wellKnownIntrinsicObjects.js: Added.
3047 (WellKnownIntrinsicObjects.forEach.wkio.catch):
3048 * test262/latest-changes-summary.txt: Added.
3049 * test262/test/annexB/language/eval-code/direct/block-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
3051 * test262/test/annexB/language/eval-code/direct/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.
3053 * test262/test/annexB/language/eval-code/direct/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
3055 * test262/test/annexB/language/function-code/block-decl-nested-blocks-with-fun-decl.js: Added.
3058 * test262/test/annexB/language/function-code/block-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/block-decl-strict.js.
3061 * test262/test/annexB/language/function-code/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
3065 * test262/test/annexB/language/function-code/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
3069 * test262/test/built-ins/Array/prototype/filter/target-array-with-non-writable-property.js: Added.
3072 * test262/test/built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
3073 (allowProxyTraps.has):
3074 (fromIndex.valueOf):
3075 * test262/test/built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
3076 (allowProxyTraps.has):
3077 (fromIndex.valueOf):
3078 * test262/test/built-ins/Array/prototype/map/target-array-with-non-writable-property.js: Added.
3081 * test262/test/built-ins/Array/prototype/slice/target-array-with-non-writable-property.js: Added.
3083 * test262/test/built-ins/Array/prototype/splice/property-traps-order-with-species.js: Added.
3085 * test262/test/built-ins/Array/prototype/splice/target-array-with-non-writable-property.js: Added.
3087 * test262/test/built-ins/Atomics/Symbol.toStringTag.js:
3088 * test262/test/built-ins/Atomics/add/bad-range.js:
3089 (testWithTypedArrayConstructors):
3090 * test262/test/built-ins/Atomics/add/good-views.js:
3091 (testWithTypedArrayConstructors):
3092 * test262/test/built-ins/Atomics/add/non-views.js:
3093 * test262/test/built-ins/Atomics/add/nonshared-int-views.js:
3094 (testWithTypedArrayConstructors):
3095 * test262/test/built-ins/Atomics/add/shared-nonint-views.js:
3096 (testWithTypedArrayConstructors):
3097 * test262/test/built-ins/Atomics/and/bad-range.js:
3098 (testWithTypedArrayConstructors):
3099 * test262/test/built-ins/Atomics/and/good-views.js:
3100 (testWithTypedArrayConstructors):
3101 * test262/test/built-ins/Atomics/and/non-views.js:
3102 * test262/test/built-ins/Atomics/and/nonshared-int-views.js:
3103 (testWithTypedArrayConstructors):
3104 * test262/test/built-ins/Atomics/and/shared-nonint-views.js:
3105 (testWithTypedArrayConstructors):
3106 * test262/test/built-ins/Atomics/compareExchange/bad-range.js:
3107 (testWithTypedArrayConstructors):
3108 * test262/test/built-ins/Atomics/compareExchange/good-views.js:
3109 (testWithTypedArrayConstructors):
3111 * test262/test/built-ins/Atomics/compareExchange/non-views.js:
3112 * test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js:
3113 (testWithTypedArrayConstructors):
3114 * test262/test/built-ins/Atomics/compareExchange/shared-nonint-views.js:
3115 (testWithTypedArrayConstructors):
3116 * test262/test/built-ins/Atomics/exchange/bad-range.js:
3117 (testWithTypedArrayConstructors):
3118 * test262/test/built-ins/Atomics/exchange/good-views.js:
3119 (testWithTypedArrayConstructors):
3120 * test262/test/built-ins/Atomics/exchange/non-views.js:
3121 * test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:
3122 (testWithTypedArrayConstructors):
3123 * test262/test/built-ins/Atomics/exchange/shared-nonint-views.js:
3124 (testWithTypedArrayConstructors):
3125 * test262/test/built-ins/Atomics/isLockFree/corner-cases.js:
3127 * test262/test/built-ins/Atomics/isLockFree/value.js:
3128 (testIsLockFree): Deleted.
3129 * test262/test/built-ins/Atomics/load/bad-range.js:
3130 (testWithTypedArrayConstructors):
3131 * test262/test/built-ins/Atomics/load/good-views.js:
3132 (testWithTypedArrayConstructors):
3133 * test262/test/built-ins/Atomics/load/non-views.js:
3134 * test262/test/built-ins/Atomics/load/nonshared-int-views.js:
3135 (testWithTypedArrayConstructors):
3136 * test262/test/built-ins/Atomics/load/shared-nonint-views.js:
3137 (testWithTypedArrayConstructors):
3138 * test262/test/built-ins/Atomics/or/bad-range.js:
3139 (testWithTypedArrayConstructors):
3140 * test262/test/built-ins/Atomics/or/good-views.js:
3141 (testWithTypedArrayConstructors):
3142 * test262/test/built-ins/Atomics/or/non-views.js:
3143 * test262/test/built-ins/Atomics/or/nonshared-int-views.js:
3144 (testWithTypedArrayConstructors):
3145 * test262/test/built-ins/Atomics/or/shared-nonint-views.js:
3146 (testWithTypedArrayConstructors):
3147 * test262/test/built-ins/Atomics/prop-desc.js:
3148 * test262/test/built-ins/Atomics/proto.js:
3149 * test262/test/built-ins/Atomics/store/bad-range.js:
3150 (testWithTypedArrayConstructors):
3151 * test262/test/built-ins/Atomics/store/good-views.js:
3152 (testWithTypedArrayConstructors):
3154 * test262/test/built-ins/Atomics/store/non-views.js:
3155 * test262/test/built-ins/Atomics/store/nonshared-int-views.js:
3156 (testWithTypedArrayConstructors):
3157 * test262/test/built-ins/Atomics/store/shared-nonint-views.js:
3158 (testWithTypedArrayConstructors):
3159 * test262/test/built-ins/Atomics/sub/bad-range.js:
3160 (testWithTypedArrayConstructors):
3161 * test262/test/built-ins/Atomics/sub/good-views.js:
3162 (testWithTypedArrayConstructors):
3163 * test262/test/built-ins/Atomics/sub/non-views.js:
3164 * test262/test/built-ins/Atomics/sub/nonshared-int-views.js:
3165 (testWithTypedArrayConstructors):
3166 * test262/test/built-ins/Atomics/sub/shared-nonint-views.js:
3167 (testWithTypedArrayConstructors):
3168 * test262/test/built-ins/Atomics/wait/bad-range.js: Copied from JSTests/test262/test/built-ins/Atomics/wake/bad-range.js.
3169 (testWithTypedArrayConstructors):
3170 * test262/test/built-ins/Atomics/wait/cannot-suspend-throws.js:
3171 * test262/test/built-ins/Atomics/wait/did-timeout.js:
3173 * test262/test/built-ins/Atomics/wait/false-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
3175 (262.agent.start.valueOf.valueOf):
3176 (toPrimitive.Symbol.toPrimitive):
3177 (262.agent.receiveBroadcast):
3178 * test262/test/built-ins/Atomics/wait/false-for-timeout.js:
3180 (toPrimitive.Symbol.toPrimitive):
3181 (getReport): Deleted.
3182 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3183 * test262/test/built-ins/Atomics/wait/good-views.js:
3186 * test262/test/built-ins/Atomics/wait/nan-for-timeout.js:
3188 * test262/test/built-ins/Atomics/wait/negative-index-throws.js:
3189 * test262/test/built-ins/Atomics/wait/negative-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-timeout.js.
3191 (262.agent.start.262.agent.receiveBroadcast):
3192 * test262/test/built-ins/Atomics/wait/negative-timeout.js:
3193 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3194 (getReport): Deleted.
3195 * test262/test/built-ins/Atomics/wait/no-spurious-wakeup.js:
3197 * test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js:
3198 * test262/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
3199 * test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js:
3200 * test262/test/built-ins/Atomics/wait/not-an-object-throws.js:
3201 * test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js:
3202 * test262/test/built-ins/Atomics/wait/null-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
3204 (262.agent.start.valueOf.valueOf):
3205 (toPrimitive.Symbol.toPrimitive):
3206 (262.agent.receiveBroadcast):
3207 * test262/test/built-ins/Atomics/wait/null-for-timeout.js:
3209 (toPrimitive.Symbol.toPrimitive):
3210 (getReport): Deleted.
3211 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3212 * test262/test/built-ins/Atomics/wait/object-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
3214 (262.agent.start.valueOf.valueOf):
3215 (toString.toString):
3216 (toPrimitive.Symbol.toPrimitive):
3217 (262.agent.receiveBroadcast):
3218 * test262/test/built-ins/Atomics/wait/object-for-timeout.js:
3220 (toString.toString):
3221 (toPrimitive.Symbol.toPrimitive):
3222 (getReport): Deleted.
3223 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3224 * test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js:
3225 * test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js: Added.
3227 (262.agent.start.poisonedValueOf.valueOf):
3228 (poisonedToPrimitive.Symbol.toPrimitive):
3229 (262.agent.receiveBroadcast):
3230 * test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js:
3231 (poisonedValueOf.valueOf):
3232 (poisonedToPrimitive.Symbol.toPrimitive):
3233 (getReport): Deleted.
3234 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3235 * test262/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js: Added.
3237 (262.agent.start.poisonedValueOf.valueOf):
3238 (poisonedToPrimitive.Symbol.toPrimitive):
3239 (262.agent.receiveBroadcast):
3240 * test262/test/built-ins/Atomics/wait/symbol-for-index-throws.js:
3241 (poisonedToPrimitive.Symbol.toPrimitive):
3242 (poisoned.valueOf): Deleted.
3243 (poisonedWithString.get valueOf): Deleted.
3244 (poisonedToPrimitive.get Symbol): Deleted.
3245 * test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js: Added.
3247 (262.agent.start.262.agent.receiveBroadcast):
3248 * test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js:
3249 (poisonedValueOf.valueOf):
3250 (poisonedToPrimitive.Symbol.toPrimitive):
3251 (getReport): Deleted.
3252 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3253 * test262/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js: Added.
3255 (262.agent.start.poisonedValueOf.valueOf):
3256 (poisonedToPrimitive.Symbol.toPrimitive):
3257 (262.agent.receiveBroadcast):
3258 * test262/test/built-ins/Atomics/wait/symbol-for-value-throws.js: Added.
3259 (poisonedValueOf.valueOf):
3260 (poisonedToPrimitive.Symbol.toPrimitive):
3261 * test262/test/built-ins/Atomics/wait/true-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-for-timeout.js.
3263 (262.agent.start.valueOf.valueOf):
3264 (toPrimitive.Symbol.toPrimitive):
3265 (262.agent.receiveBroadcast):
3266 * test262/test/built-ins/Atomics/wait/true-for-timeout.js:
3268 (toPrimitive.Symbol.toPrimitive):
3269 (getReport): Deleted.
3270 (262.agent.start.262.agent.receiveBroadcast): Deleted.
3271 * test262/test/built-ins/Atomics/wait/undefined-for-timeout.js:
3273 * test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js:
3274 (262.agent.start.262.agent.receiveBroadcast):
3276 * test262/test/built-ins/Atomics/wait/value-not-equal.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js.
3278 (262.agent.start.262.agent.receiveBroadcast):
3279 * test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js:
3280 (262.agent.start.262.agent.receiveBroadcast):
3281 * test262/test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js: Added.
3283 (262.agent.start.262.agent.receiveBroadcast):
3284 * test262/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js: Added.
3286 (262.agent.start.262.agent.receiveBroadcast):
3287 * test262/test/built-ins/Atomics/wait/was-woken-before-timeout.js:
3289 (262.agent.start.262.agent.receiveBroadcast):
3290 * test262/test/built-ins/Atomics/wait/was-woken.js:
3292 (262.agent.start.262.agent.receiveBroadcast):
3293 * test262/test/built-ins/Atomics/wake/bad-range.js:
3294 (testWithTypedArrayConstructors):
3295 * test262/test/built-ins/Atomics/wake/count-boundary-cases.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/counts.js.
3296 * test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js: Added.
3298 (262.agent.start.262.agent.receiveBroadcast):
3299 * test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js: Added.
3301 (262.agent.start.262.agent.receiveBroadcast):
3302 * test262/test/built-ins/Atomics/wake/count-from-nans.js: Added.
3303 * test262/test/built-ins/Atomics/wake/count-symbol-throws.js: Added.
3304 * test262/test/built-ins/Atomics/wake/count-tointeger-throws-then-wake-throws.js: Added.
3306 * test262/test/built-ins/Atomics/wake/good-views.js:
3307 * test262/test/built-ins/Atomics/wake/negative-count.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/wake-negative.js.
3308 * test262/test/built-ins/Atomics/wake/negative-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-index-throws.js.
3310 * test262/test/built-ins/Atomics/wake/non-int32-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js.
3312 * test262/test/built-ins/Atomics/wake/non-shared-bufferdata-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
3314 * test262/test/built-ins/Atomics/wake/non-views.js:
3315 * test262/test/built-ins/Atomics/wake/nonshared-int-views.js:
3316 (testWithTypedArrayConstructors):
3317 * test262/test/built-ins/Atomics/wake/not-a-typedarray-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js.
3319 * test262/test/built-ins/Atomics/wake/not-an-object-throws.js: Added.
3321 * test262/test/built-ins/Atomics/wake/null-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js.
3323 * test262/test/built-ins/Atomics/wake/out-of-range-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js.
3325 * test262/test/built-ins/Atomics/wake/shared-nonint-views.js:
3326 (testWithTypedArrayConstructors):
3327 * test262/test/built-ins/Atomics/wake/symbol-for-index-throws.js: Added.
3328 (poisonedValueOf.valueOf):
3329 (poisonedToPrimitive.Symbol.toPrimitive):
3330 * test262/test/built-ins/Atomics/wake/undefined-index-defaults-to-zero.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js.
3331 (262.agent.start.262.agent.receiveBroadcast):
3333 * test262/test/built-ins/Atomics/wake/wake-all-on-loc.js:
3334 (262.agent.start.262.agent.receiveBroadcast):
3337 * test262/test/built-ins/Atomics/wake/wake-all.js:
3338 (262.agent.start.262.agent.receiveBroadcast):
3341 * test262/test/built-ins/Atomics/wake/wake-in-order.js:
3344 * test262/test/built-ins/Atomics/wake/wake-nan.js:
3346 * test262/test/built-ins/Atomics/wake/wake-one.js:
3349 * test262/test/built-ins/Atomics/wake/wake-rewake-noop.js: Added.
3352 (262.agent.start.262.agent.receiveBroadcast):
3353 * test262/test/built-ins/Atomics/wake/wake-two.js:
3355 * test262/test/built-ins/Atomics/wake/wake-with-no-agents-waiting.js: Added.
3356 (262.agent.start.262.agent.receiveBroadcast):
3358 * test262/test/built-ins/Atomics/wake/wake-with-no-matching-agents-waiting.js: Added.
3359 (262.agent.start.262.agent.receiveBroadcast):
3361 * test262/test/built-ins/Atomics/wake/wake-zero.js:
3362 (i.262.agent.start.262.agent.receiveBroadcast):
3365 * test262/test/built-ins/Atomics/xor/bad-range.js:
3366 (testWithTypedArrayConstructors):
3367 * test262/test/built-ins/Atomics/xor/good-views.js:
3368 (testWithTypedArrayConstructors):
3369 * test262/test/built-ins/Atomics/xor/non-views.js:
3370 * test262/test/built-ins/Atomics/xor/nonshared-int-views.js:
3371 (testWithTypedArrayConstructors):
3372 * test262/test/built-ins/Atomics/xor/shared-nonint-views.js:
3373 (testWithTypedArrayConstructors):
3374 * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-errors.js:
3375 * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-toprimitive.js:
3376 * test262/test/built-ins/BigInt/asIntN/bigint-tobigint-wrapped-values.js:
3377 * test262/test/built-ins/BigInt/asIntN/bits-toindex-errors.js:
3378 * test262/test/built-ins/BigInt/asIntN/bits-toindex-toprimitive.js:
3379 * test262/test/built-ins/BigInt/asIntN/bits-toindex-wrapped-values.js:
3380 * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-errors.js:
3381 * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-toprimitive.js:
3382 * test262/test/built-ins/BigInt/asUintN/bigint-tobigint-wrapped-values.js:
3383 * test262/test/built-ins/BigInt/asUintN/bits-toindex-errors.js:
3384 * test262/test/built-ins/BigInt/asUintN/bits-toindex-toprimitive.js:
3385 * test262/test/built-ins/BigInt/asUintN/bits-toindex-wrapped-values.js:
3386 * test262/test/built-ins/BigInt/constructor-empty-string.js:
3387 * test262/test/built-ins/BigInt/constructor-from-binary-string.js:
3388 * test262/test/built-ins/BigInt/constructor-from-decimal-string.js:
3389 * test262/test/built-ins/BigInt/constructor-from-hex-string.js:
3390 * test262/test/built-ins/BigInt/constructor-from-octal-string.js:
3391 * test262/test/built-ins/BigInt/constructor-from-string-syntax-errors.js:
3392 * test262/test/built-ins/BigInt/constructor-integer.js: Added.
3393 * test262/test/built-ins/BigInt/constructor-trailing-leading-spaces.js:
3394 * test262/test/built-ins/BigInt/issafeinteger-true.js: Removed.
3395 * test262/test/built-ins/BigInt/out-of-bounds-integer-rangeerror.js: Removed.
3396 * test262/test/built-ins/BigInt/prototype/Symbol.toStringTag.js:
3397 * test262/test/built-ins/BigInt/prototype/toString/default-radix.js: Added.
3398 * test262/test/built-ins/BigInt/prototype/toString/thisbigintvalue-not-valid-throws.js:
3399 * test262/test/built-ins/BigInt/prototype/valueOf/cross-realm.js: Added.
3400 * test262/test/built-ins/BigInt/tostring-throws.js: Copied from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
3401 * test262/test/built-ins/BigInt/valueof-throws.js: Renamed from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
3403 * test262/test/built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js:
3405 * test262/test/built-ins/Function/prototype/bind/length-exceeds-int32.js: Added.
3407 * test262/test/built-ins/Function/prototype/toString/anonymous-intrinsics.js: Removed.
3408 * test262/test/built-ins/Function/prototype/toString/bound-function.js:
3409 (assertNativeFunction):
3411 * test262/test/built-ins/Function/prototype/toString/built-in-function-object.js: Added.
3412 * test262/test/built-ins/Function/prototype/toString/intrinsics.js: Removed.
3413 * test262/test/built-ins/Function/prototype/toString/proxy-arrow-function.js: Added.
3414 (assertNativeFunction.new.Proxy):
3415 * test262/test/built-ins/Function/prototype/toString/proxy-async-function.js: Added.
3416 (assertNativeFunction.new.Proxy.async):
3417 * test262/test/built-ins/Function/prototype/toString/proxy-async-generator-function.js: Added.
3418 (assertNativeFunction.new.Proxy.async):
3419 * test262/test/built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js: Added.
3420 (assertNativeFunction.new.Proxy.async.method):
3422 * test262/test/built-ins/Function/prototype/toString/proxy-async-method-definition.js: Added.
3423 (assertNativeFunction.new.Proxy.async.method):
3425 * test262/test/built-ins/Function/prototype/toString/proxy-bound-function.js: Added.
3426 (assertNativeFunction.new.Proxy):
3428 * test262/test/built-ins/Function/prototype/toString/proxy-class.js: Added.
3429 (assertNativeFunction):
3430 * test262/test/built-ins/Function/prototype/toString/proxy-function-expression.js: Added.
3431 (assertNativeFunction.new.Proxy):
3432 * test262/test/built-ins/Function/prototype/toString/proxy-generator-function.js: Added.
3433 (assertNativeFunction.new.Proxy):
3434 * test262/test/built-ins/Function/prototype/toString/proxy-method-definition.js: Added.
3435 (assertNativeFunction.new.Proxy.method):
3437 * test262/test/built-ins/Function/prototype/toString/proxy-non-callable-throws.js: Added.
3438 * test262/test/built-ins/Function/prototype/toString/proxy.js: Removed.
3439 * test262/test/built-ins/Function/prototype/toString/well-known-intrinsic-object-functions.js: Added.
3440 (WellKnownIntrinsicObjects.forEach):
3441 * test262/test/built-ins/JSON/prop-desc.js: Added.
3442 * test262/test/built-ins/Math/acosh/nan-returns.js:
3443 * test262/test/built-ins/Math/asinh/asinh-specialVals.js:
3444 * test262/test/built-ins/Math/atanh/atanh-specialVals.js:
3445 * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
3446 * test262/test/built-ins/Math/cbrt/prop-desc.js:
3447 * test262/test/built-ins/Math/cosh/cosh-specialVals.js:
3448 * test262/test/built-ins/Math/expm1/expm1-specialVals.js:
3449 * test262/test/built-ins/Math/log10/Log10-specialVals.js:
3450 * test262/test/built-ins/Math/log2/log2-basicTests.js:
3451 * test262/test/built-ins/Math/prop-desc.js:
3452 * test262/test/built-ins/Math/sign/sign-specialVals.js:
3453 * test262/test/built-ins/Math/sinh/sinh-specialVals.js:
3454 * test262/test/built-ins/Math/tanh/tanh-specialVals.js:
3455 * test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
3456 * test262/test/built-ins/Math/trunc/trunc-specialVals.js:
3457 * test262/test/built-ins/Object/assign/strings-and-symbol-order.js: Added.
3458 * test262/test/built-ins/Object/keys/property-traps-order-with-proxied-array.js: Added.
3460 * test262/test/built-ins/Reflect/Reflect.js: Removed.
3461 * test262/test/built-ins/Reflect/prop-desc.js: Added.
3462 * test262/test/built-ins/Reflect/properties.js: Removed.
3463 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Added.
3464 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js: Added.
3465 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Added.
3466 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-this-throws.js: Added.
3468 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/length.js: Added.
3469 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/name.js: Added.
3470 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/prop-desc.js: Added.
3471 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: Added.
3473 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js: Added.
3474 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-species-throws.js: Added.
3475 (regexp.get Symbol):
3476 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js: Added.
3477 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-undefined.js: Added.
3478 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-not-constructor.js: Added.
3480 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-null-or-undefined.js: Added.
3481 (TestWithConstructor):
3482 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-throws.js: Added.
3483 (regexp.Symbol.species):
3484 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor.js: Added.
3485 (regexp.Symbol.species):
3486 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-global-throws.js: Added.
3487 (regexp.Symbol.species):
3489 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-unicode-throws.js: Added.
3490 (regexp.Symbol.species):
3492 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring-throws.js: Added.
3495 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring.js: Added.
3497 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags-throws.js: Added.
3498 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags.js: Added.
3499 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-lastindex-cached.js: Added.
3500 (regexp.lastIndex.valueOf):
3501 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-not-object-throws.js: Added.
3503 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tolength-lastindex-throws.js: Added.
3504 (regexp.lastIndex.valueOf):
3505 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags-throws.js: Added.
3508 * test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags.js: Added.
3510 * test262/test/built-ins/RegExpStringIteratorPrototype/Symbol.toStringTag.js: Added.
3511 * test262/test/built-ins/RegExpStringIteratorPrototype/ancestry.js: Added.
3512 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-call-throws.js: Added.
3513 (RegExp.prototype.exec):
3514 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-get-throws.js: Added.
3515 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js: Added.
3516 (return.get string_appeared_here):
3517 (RegExp.prototype.exec):
3518 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring-throws.js: Added.
3520 (RegExp.prototype.exec):
3521 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js: Added.
3522 (execResult.get string_appeared_here):
3523 (RegExp.prototype.exec):
3524 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-not-callable.js: Added.
3525 (TestWithRegExpExec):
3526 * test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec.js: Added.
3527 (callNextWithExecReturnValue.RegExp.prototype.exec):
3528 (callNextWithExecReturnValue):
3529 * test262/test/built-ins/RegExpStringIteratorPrototype/next/length.js: Added.
3530 * test262/test/built-ins/RegExpStringIteratorPrototype/next/name.js: Added.
3531 * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration-global.js: Added.
3532 * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration.js: Added.
3533 * test262/test/built-ins/RegExpStringIteratorPrototype/next/next-missing-internal-slots.js: Added.
3534 * test262/test/built-ins/RegExpStringIteratorPrototype/next/prop-desc.js: Added.
3535 * test262/test/built-ins/RegExpStringIteratorPrototype/next/regexp-tolength-lastindex-throws.js: Added.
3536 (RegExp.prototype.exec):
3537 * test262/test/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js: Added.
3539 * test262/test/built-ins/String/prototype/matchAll/length.js: Added.
3540 * test262/test/built-ins/String/prototype/matchAll/name.js: Added.
3541 * test262/test/built-ins/String/prototype/matchAll/prop-desc.js: Added.
3542 * test262/test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js: Added.
3543 * test262/test/built-ins/String/prototype/matchAll/regexp-is-null.js: Added.
3544 * test262/test/built-ins/String/prototype/matchAll/regexp-is-undefined.js: Added.
3545 * test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js: Added.
3546 (obj.Symbol.matchAll):
3547 * test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js: Added.
3548 (regexp.Symbol.matchAll):
3549 * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js: Added.
3550 * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll.js: Added.
3551 * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js: Added.
3552 (RegExp.prototype.Symbol.matchAll):
3553 * test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js: Added.
3554 (RegExp.prototype.Symbol.matchAll):
3555 * test262/test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js: Added.
3556 * test262/test/built-ins/Symbol/matchAll/cross-realm.js: Added.
3557 * test262/test/built-ins/Symbol/matchAll/prop-desc.js: Added.
3558 * test262/test/harness/testTypedArray.js:
3559 * test262/test/intl402/Array/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
3560 * test262/test/intl402/Intl/getCanonicalLocales/invalid-tags.js:
3561 * test262/test/intl402/Locale/constructor-newtarget-undefined.js: Added.
3562 * test262/test/intl402/Locale/constructor-options-calendar-invalid.js: Added.
3563 (const.invalidCalendarOption.of.invalidCalendarOptions.new.Intl.Locale):
3564 * test262/test/intl402/Locale/constructor-options-calendar-valid.js: Added.
3565 * test262/test/intl402/Locale/constructor-options-language-invalid.js: Added.
3566 (const.invalidLanguageOption.of.invalidLanguageOptions.new.Intl.Locale):
3567 * test262/test/intl402/Locale/constructor-options-language-valid.js: Added.
3569 * test262/test/intl402/Locale/constructor-options-region-invalid.js: Added.
3570 (const.invalidRegionOption.of.invalidRegionOptions.new.Intl.Locale):
3571 * test262/test/intl402/Locale/constructor-options-region-valid.js: Added.
3572 * test262/test/intl402/Locale/constructor-options-script-invalid.js: Added.
3573 (const.invalidScriptOption.of.invalidScriptOptions.new.Intl.Locale):
3574 * test262/test/intl402/Locale/constructor-options-script-valid.js: Added.
3576 * test262/test/intl402/Locale/function-prototype.js: Added.
3577 * test262/test/intl402/Locale/instance-extensibility.js: Added.
3578 * test262/test/intl402/Locale/instance.js: Added.
3579 * test262/test/intl402/Locale/invalid-tag-throws-boolean.js: Added.
3580 * test262/test/intl402/Locale/invalid-tag-throws-null.js: Added.
3581 * test262/test/intl402/Locale/invalid-tag-throws-number.js: Added.
3582 * test262/test/intl402/Locale/invalid-tag-throws-symbol.js: Added.
3583 * test262/test/intl402/Locale/invalid-tag-throws-undefined.js: Added.
3584 * test262/test/intl402/Locale/invalid-tag-throws.js: Added.
3585 (const.invalidTag.of.getInvalidLanguageTags):
3586 * test262/test/intl402/Locale/length.js: Added.
3587 * test262/test/intl402/Locale/name.js: Added.
3588 * test262/test/intl402/Locale/prop-desc.js: Added.
3589 * test262/test/intl402/Locale/prototype/constructor.js: Added.
3590 * test262/test/intl402/Locale/prototype/maximize/length.js: Added.
3591 * test262/test/intl402/Locale/prototype/maximize/name.js: Added.
3592 * test262/test/intl402/Locale/prototype/maximize/prop-desc.js: Added.
3593 * test262/test/intl402/Locale/prototype/prop-desc.js: Added.
3594 * test262/test/intl402/Locale/prototype/toStringTag.js: Added.
3595 * test262/test/intl402/TypedArray/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
3596 (testWithTypedArrayConstructors):
3597 * test262/test/language/asi/S7.9_A11_T8.js:
3598 (else.x.1): Deleted.
3599 * test262/test/language/asi/S7.9_A4.js:
3601 * test262/test/language/asi/S7.9_A5.1_T1.js:
3602 * test262/test/language/asi/S7.9_A5.3_T1.js:
3603 * test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js: Added.
3606 * test262/test/language/destructuring/binding/initialization-requires-object-coercible-null.js:
3607 * test262/test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js:
3608 * test262/test/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js:
3609 * test262/test/language/destructuring/binding/syntax/array-elements-with-initializer.js:
3610 * test262/test/language/destructuring/binding/syntax/array-elements-with-object-patterns.js:
3611 * test262/test/language/destructuring/binding/syntax/array-elements-without-initializer.js:
3612 * test262/test/language/destructuring/binding/syntax/array-pattern-with-elisions.js:
3613 * test262/test/language/destructuring/binding/syntax/array-pattern-with-no-elements.js:
3614 * test262/test/language/destructuring/binding/syntax/array-rest-elements.js:
3615 * test262/test/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js:
3616 * test262/test/language/destructuring/binding/syntax/property-list-bindings-elements.js:
3617 * test262/test/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js:
3618 * test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
3619 * test262/test/language/destructuring/binding/syntax/property-list-with-property-list.js:
3620 * test262/test/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js:
3621 * test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-nostrict.js: Copied from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.
3622 * test262/test/language/eval-code/direct/block-decl-eval-source-is-strict-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-source.js.
3624 * test262/test/language/eval-code/direct/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
3625 * test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-source.js.
3626 * test262/test/language/eval-code/direct/switch-case-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.
3628 * test262/test/language/eval-code/direct/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-case-decl-strict-caller.js.
3629 * test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-nostrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-source.js.
3630 * test262/test/language/eval-code/direct/switch-dflt-decl-eval-source-is-strict-onlystrict.js: Copied from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
3632 * test262/test/language/eval-code/direct/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/switch-dflt-decl-strict-caller.js.
3633 * test262/test/language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js: Added.
3635 * test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-body-position.js: Added.
3637 * test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js: Added.
3639 * test262/test/language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js: Added.
3641 * test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js: Added.
3642 * test262/test/language/expressions/async-generator/generator-created-after-decl-inst.js: Added.
3644 * test262/test/language/expressions/class/class-name-ident-await-escaped-module.js: Added.
3646 * test262/test/language/expressions/class/class-name-ident-await-escaped.js: Added.
3648 * test262/test/language/expressions/class/class-name-ident-await-module.js: Added.
3650 * test262/test/language/expressions/class/class-name-ident-await.js: Added.
3652 * test262/test/language/expressions/class/class-name-ident-let-escaped.js: Added.
3654 * test262/test/language/expressions/class/class-name-ident-let.js: Added.
3656 * test262/test/language/expressions/class/class-name-ident-static-escaped.js: Added.
3658 * test262/test/language/expressions/class/class-name-ident-static.js: Added.
3659 * test262/test/language/expressions/class/class-name-ident-yield-escaped.js: Added.
3661 * test262/test/language/expressions/class/class-name-ident-yield.js: Added.
3663 * test262/test/language/expressions/class/constructor-this-tdz-during-initializers.js: Added.
3666 * test262/test/language/expressions/class/fields-run-once-on-double-super.js: Added.
3669 * test262/test/language/expressions/generators/generator-created-after-decl-inst.js: Added.
3671 * test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js: Added.
3672 * test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js: Added.
3673 * test262/test/language/expressions/greater-than/bigint-and-boolean.js: Added.
3674 * test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js: Added.
3675 * test262/test/language/expressions/greater-than/bigint-and-string.js: Added.
3676 * test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js: Added.
3677 * test262/test/language/expressions/less-than-or-equal/bigint-and-string.js: Added.
3678 * test262/test/language/expressions/less-than/bigint-and-boolean.js: Added.
3679 * test262/test/language/expressions/less-than/bigint-and-incomparable-string.js: Added.
3680 * test262/test/language/expressions/less-than/bigint-and-string.js: Added.
3681 * test262/test/language/expressions/object/method-definition/generator-super-prop-param.js:
3682 * test262/test/language/function-code/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/block-decl-strict.js.
3683 * test262/test/language/function-code/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
3684 * test262/test/language/function-code/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
3685 * test262/test/language/line-terminators/S7.3_A2.3.js: Removed.
3686 * test262/test/language/line-terminators/S7.3_A2.4.js: Removed.
3687 * test262/test/language/literals/regexp/invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3688 * test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3689 * test262/test/language/literals/regexp/invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3690 * test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3691 * test262/test/language/literals/regexp/u-invalid-optional-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3692 * test262/test/language/literals/regexp/u-invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3693 * test262/test/language/literals/regexp/u-invalid-optional-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3694 * test262/test/language/literals/regexp/u-invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3695 * test262/test/language/literals/regexp/u-invalid-range-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3696 * test262/test/language/literals/regexp/u-invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3697 * test262/test/language/literals/regexp/u-invalid-range-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3698 * test262/test/language/literals/regexp/u-invalid-range-negative-lookbehind.js: Renamed from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
3699 * test262/test/language/literals/string/line-separator-eval.js: Added.
3700 * test262/test/language/literals/string/line-separator.js: Added.
3701 * test262/test/language/literals/string/paragraph-separator-eval.js: Added.
3702 * test262/test/language/literals/string/paragraph-separator.js: Added.
3703 * test262/test/language/module-code/early-strict-mode.js:
3704 * test262/test/language/statements/async-generator/generator-created-after-decl-inst.js: Added.
3706 * test262/test/language/statements/break/S12.8_A8_T1.js:
3708 * test262/test/language/statements/break/S12.8_A8_T2.js:
3710 * test262/test/language/statements/class/class-name-ident-await-escaped-module.js: Added.
3712 * test262/test/language/statements/class/class-name-ident-await-escaped.js: Added.
3714 * test262/test/language/statements/class/class-name-ident-await-module.js: Added.
3716 * test262/test/language/statements/class/class-name-ident-await.js: Added.
3718 * test262/test/language/statements/class/class-name-ident-let-escaped.js: Added.
3720 * test262/test/language/statements/class/class-name-ident-let.js: Added.
3722 * test262/test/language/statements/class/class-name-ident-static-escaped.js: Added.
3724 * test262/test/language/statements/class/class-name-ident-static.js: Added.
3725 * test262/test/language/statements/class/class-name-ident-yield-escaped.js: Added.
3727 * test262/test/language/statements/class/class-name-ident-yield.js: Added.
3729 * test262/test/language/statements/continue/S12.7_A8_T1.js:
3731 * test262/test/language/statements/continue/S12.7_A8_T2.js:
3733 * test262/test/language/statements/generators/generator-created-after-decl-inst.js: Added.
3735 * test262/test/language/statements/try/early-catch-duplicates.js:
3736 * test262/test/language/statements/try/early-catch-function.js: Added.
3739 * test262/test/language/statements/try/early-catch-lex.js:
3740 * test262/test/language/statements/try/early-catch-var.js:
3741 * test262/test262-Revision.txt:
3743 2018-05-09 Caio Lima <ticaiolima@gmail.com>
3745 [ESNext][BigInt] Implement support for "==" operation
3746 https://bugs.webkit.org/show_bug.cgi?id=184474
3748 Reviewed by Yusuke Suzuki.
3750 * stress/big-int-equals-basic.js: Added.
3751 * stress/big-int-equals-to-primitive-precedence.js: Added.
3752 * stress/big-int-equals-wrapped-value.js: Added.
3754 2018-05-08 Valerie R Young <valerie@bocoup.com>
3756 test262/Runner.pm: move input files to JSTests/test262
3757 https://bugs.webkit.org/show_bug.cgi?id=185389
3759 Reviewed by Michael Saboff.
3761 * test262/config.yaml: Renamed from Tools/Scripts/test262/config.yaml.
3762 * test262/expectations.yaml: Renamed from Tools/Scripts/test262/expectations.yaml.
3764 2018-05-05 Filip Pizlo <fpizlo@apple.com>
3766 DFG AI should have O(1) clobbering
3767 https://bugs.webkit.org/show_bug.cgi?id=185287
3769 Reviewed by Saam Barati.
3771 * stress/simple-ai-effect.js: Added.
3775 2018-05-04 Keith Miller <keith_miller@apple.com>
3777 isCacheableArrayLength should return true for undecided arrays
3778 https://bugs.webkit.org/show_bug.cgi?id=185309
3780 Reviewed by Michael Saboff.
3782 * stress/get-array-length-undecided.js: Added.
3785 2018-05-04 Dominik Infuehr <dinfuehr@igalia.com>
3787 Disable tests on systems with limited memory
3788 https://bugs.webkit.org/show_bug.cgi?id=185296
3790 Reviewed by Saam Barati.
3792 Test doesn't work with a limited amount of memory. I tried to reduce memory usage
3793 but then it was hard to reproduce the failure the test was originally made to test.
3795 * stress/array-reverse-doesnt-clobber.js:
3797 2018-05-03 Saam Barati <sbarati@apple.com>
3799 Don't prevent CreateThis being folded to NewObject when the structure is poly proto
3800 https://bugs.webkit.org/show_bug.cgi?id=185177
3802 Reviewed by Filip Pizlo.
3804 * microbenchmarks/construct-poly-proto-object.js: Added.
3807 * stress/allocation-sinking-new-object-with-poly-proto.js: Added.
3814 2018-05-03 Michael Saboff <msaboff@apple.com>
3816 OSR entry pruning of Program Bytecodes doesn't take into account try/catch
3817 https://bugs.webkit.org/show_bug.cgi?id=185281
3819 Reviewed by Saam Barati.
3821 New regression test.
3823 * stress/baseline-osrentry-catch-is-reachable.js: Added.
3826 2018-05-03 Ryan Haddad <ryanhaddad@apple.com>
3828 Unreviewed, rolling out r231197.
3830 The test added with this change crashes on the 32-bit JSC bot.
3834 "Correctly detect string overflow when using the 'Function'
3836 https://bugs.webkit.org/show_bug.cgi?id=184883
3837 https://trac.webkit.org/changeset/231197
3839 2018-05-02 Filip Pizlo <fpizlo@apple.com>
3841 JSC should know how to cache custom getter accesses on the prototype chain
3842 https://bugs.webkit.org/show_bug.cgi?id=185213
3844 Reviewed by Keith Miller.
3846 * microbenchmarks/get-custom-getter.js: Added.
3849 2018-05-02 Robin Morisset <rmorisset@apple.com>
3851 emitCodeToGetArgumentsArrayLength should not crash on PhantomNewArrayWithSpread
3852 https://bugs.webkit.org/show_bug.cgi?id=183172
3854 Reviewed by Filip Pizlo.
3856 * stress/length-of-new-array-with-spread.js: Added.
3861 2018-05-01 Yusuke Suzuki <utatane.tea@gmail.com>
3863 [JSC] Add SameValue DFG node
3864 https://bugs.webkit.org/show_bug.cgi?id=185065
3866 Reviewed by Saam Barati.
3868 * microbenchmarks/object-is.js: Added.
3877 * stress/object-is.js: Added.
3895 2018-05-01 Robin Morisset <rmorisset@apple.com>
3897 Correctly detect string overflow when using the 'Function' constructor
3898 https://bugs.webkit.org/show_bug.cgi?id=184883
3899 <rdar://problem/36320331>
3901 Reviewed by Filip Pizlo.
3903 I put this regression test in the 'slowMicrobenchmarks' directory because it takes nearly 30s to run, and I am not sure where else to put it.
3905 * slowMicrobenchmarks/function-constructor-with-huge-strings.js: Added.
3908 2018-05-01 Robin Morisset <rmorisset@apple.com>
3910 IntlObject.cpp::removeUnicodeLocaleExtension() should not touch locales that end in '-u'
3911 https://bugs.webkit.org/show_bug.cgi?id=185162
3913 Reviewed by Filip Pizlo.
3915 * stress/incomplete-unicode-locale.js: Added.
3918 2018-05-01 Dominik Infuehr <dinfuehr@igalia.com>
3920 Add SetCallee as DFG-Operation
3921 https://bugs.webkit.org/show_bug.cgi?id=184582
3923 Reviewed by Filip Pizlo.
3925 Added test that runs into infinite loop without updating the callee and
3926 therefore emitting SetCallee in DFG for recursive tail calls.
3928 * stress/closure-recursive-tail-call-infinite-loop.js: Added.
3935 2018-04-30 Saam Barati <sbarati@apple.com>
3937 ToString constant folds without preserving checks, causing us to break assumptions that the code would OSR exit
3938 https://bugs.webkit.org/show_bug.cgi?id=185149
3939 <rdar://problem/39455917>
3941 Reviewed by Filip Pizlo.
3943 * stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js: Added.
3945 2018-04-29 Filip Pizlo <fpizlo@apple.com>
3947 LICM shouldn't hoist nodes if hoisted nodes exited in that code block
3948 https://bugs.webkit.org/show_bug.cgi?id=185126
3950 Reviewed by Saam Barati.
3952 I found this bug by accident when I was writing this test for something else.
3954 This change also speeds up other benchmarks of this case that we already had. They are all called
3955 the licm-dragons tests.
3957 * microbenchmarks/licm-dragons-two-structures.js: Added.
3960 2018-04-29 Commit Queue <commit-queue@webkit.org>
3962 Unreviewed, rolling out r231137.
3963 https://bugs.webkit.org/show_bug.cgi?id=185118
3965 It is breaking Test262 language/expressions/multiplication
3966 /order-of-evaluation.js (Requested by caiolima on #webkit).
3970 "[ESNext][BigInt] Implement support for "*" operation"
3971 https://bugs.webkit.org/show_bug.cgi?id=183721
3972 https://trac.webkit.org/changeset/231137
3974 2018-04-28 Saam Barati <sbarati@apple.com>
3976 We don't model regexp effects properly
3977 https://bugs.webkit.org/show_bug.cgi?id=185059
3978 <rdar://problem/39736150>
3980 Reviewed by Filip Pizlo.
3982 * stress/regexp-exec-test-effectful-last-index.js: Added.
3985 (i.regexLastIndex.toString):
3988 2018-04-28 Rick Waldron <waldron.rick@gmail.com>
3990 Token misspelled "tocken" in error message string
3991 https://bugs.webkit.org/show_bug.cgi?id=185030
3993 Reviewed by Saam Barati.
3995 * ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc: Fix typo "tocken" => "token"
3996 * stress/destructuring-assignment-syntax.js: Fix typo "tocken" => "token"
3997 * stress/error-messages-for-in-operator-should-not-crash.js: Fix typo "tocken" => "token"
3998 * stress/reserved-word-with-escape.js: Fix typo "tocken" => "token"
3999 (testSyntaxError.String.raw.v):
4000 (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
4001 (testSyntaxError.String.raw.a):
4003 2018-04-28 Caio Lima <ticaiolima@gmail.com>
4005 [ESNext][BigInt] Implement support for "*" operation
4006 https://bugs.webkit.org/show_bug.cgi?id=183721
4008 Reviewed by Saam Barati.
4011 * stress/big-int-mul-jit.js: Added.
4012 * stress/big-int-mul-to-primitive-precedence.js: Added.
4013 * stress/big-int-mul-to-primitive.js: Added.
4014 * stress/big-int-mul-type-error.js: Added.
4015 * stress/big-int-mul-wrapped-value.js: Added.
4016 * stress/big-int-multiplication.js: Added.
4017 * stress/big-int-multiply-memory-stress.js: Added.
4019 2018-04-28 Commit Queue <commit-queue@webkit.org>
4021 Unreviewed, rolling out r231131.
4022 https://bugs.webkit.org/show_bug.cgi?id=185112
4024 It is breaking Debug build due to unchecked exception
4025 (Requested by caiolima on #webkit).
4029 "[ESNext][BigInt] Implement support for "*" operation"
4030 https://bugs.webkit.org/show_bug.cgi?id=183721
4031 https://trac.webkit.org/changeset/231131
4033 2018-04-27 Caio Lima <ticaiolima@gmail.com>
4035 [ESNext][BigInt] Implement support for "*" operation
4036 https://bugs.webkit.org/show_bug.cgi?id=183721
4038 Reviewed by Saam Barati.
4041 * stress/big-int-mul-jit.js: Added.
4042 * stress/big-int-mul-to-primitive-precedence.js: Added.
4043 * stress/big-int-mul-to-primitive.js: Added.
4044 * stress/big-int-mul-type-error.js: Added.
4045 * stress/big-int-mul-wrapped-value.js: Added.
4046 * stress/big-int-multiplication.js: Added.
4047 * stress/big-int-multiply-memory-stress.js: Added.
4049 2018-04-27 Ryan Haddad <ryanhaddad@apple.com>
4051 Unreviewed, rolling out r231086.
4053 Caused JSC test failures due to an unchecked exception.
4057 "[ESNext][BigInt] Implement support for "*" operation"
4058 https://bugs.webkit.org/show_bug.cgi?id=183721
4059 https://trac.webkit.org/changeset/231086
4061 2018-04-27 Ryan Haddad <ryanhaddad@apple.com>
4063 Unreviewed test gardening, update expectations for test262/intl402/PluralRules tests after r231047.
4065 * test262.yaml: Mark tests as passing.
4067 2018-04-26 Caio Lima <ticaiolima@gmail.com>
4069 [ESNext][BigInt] Implement support for "*" operation
4070 https://bugs.webkit.org/show_bug.cgi?id=183721
4072 Reviewed by Saam Barati.
4075 * stress/big-int-mul-jit.js: Added.
4076 * stress/big-int-mul-to-primitive-precedence.js: Added.
4077 * stress/big-int-mul-to-primitive.js: Added.
4078 * stress/big-int-mul-type-error.js: Added.
4079 * stress/big-int-mul-wrapped-value.js: Added.
4080 * stress/big-int-multiplication.js: Added.
4081 * stress/big-int-multiply-memory-stress.js: Added.
4083 2018-04-25 Robin Morisset <rmorisset@apple.com>
4085 In FTLLowerDFGToB3.cpp::compileCreateRest, always use a contiguous array as the indexing type when under isWatchingHavingABadTimeWatchpoint
4086 https://bugs.webkit.org/show_bug.cgi?id=184773
4087 <rdar://problem/37773612>
4089 Reviewed by Filip Pizlo.
4091 This bug requires a race between the thread doing FTL compilation and the main thread, but it triggers in 100% of cases (before the fix) on my machine
4092 so I decided to add it to the stress tests nonetheless.
4094 * stress/create-rest-while-having-a-bad-time.js: Added.
4099 2018-04-25 Keith Miller <keith_miller@apple.com>
4101 Add missing scope release to functionProtoFuncToString
4102 https://bugs.webkit.org/show_bug.cgi?id=184995
4104 Reviewed by Saam Barati.
4106 * stress/function-toString-arrow.js: Added.
4109 2018-04-24 Keith Miller <keith_miller@apple.com>
4111 fromCharCode is missing some exception checks
4112 https://bugs.webkit.org/show_bug.cgi?id=184952
4114 Reviewed by Saam Barati.
4116 * stress/fromCharCode-exception-check.js: Added.
4119 2018-04-24 Mark Lam <mark.lam@apple.com>
4121 Gardening: test fix after r230863.
4122 https://bugs.webkit.org/show_bug.cgi?id=184846
4123 <rdar://problem/39390672>
4127 * stress/json-stringified-overflow-2.js:
4129 * stress/json-stringified-overflow.js:
4132 2018-04-20 JF Bastien <jfbastien@apple.com>
4134 Handle more JSON stringify OOM
4135 https://bugs.webkit.org/show_bug.cgi?id=184846
4136 <rdar://problem/39390672>
4138 Reviewed by Mark Lam.
4140 * stress/json-stringified-overflow-2.js: Added. Same as the one
4141 below, but with a bigger input which will trigger a different code
4144 * stress/json-stringified-overflow.js: Modify the test to only
4145 catch OOM on stringification. not on string creation.
4147 2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
4149 [WebAssembly][Modules] Import tables in wasm modules
4150 https://bugs.webkit.org/show_bug.cgi?id=184738
4152 Reviewed by JF Bastien.
4154 * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
4155 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
4156 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
4157 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
4158 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
4159 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
4160 * wasm/modules/wasm-imports-wasm-exports.js:
4161 * wasm/modules/wasm-imports-wasm-exports/imports.wasm:
4162 * wasm/modules/wasm-imports-wasm-exports/imports.wat:
4163 * wasm/modules/wasm-imports-wasm-exports/sum.wasm:
4164 * wasm/modules/wasm-imports-wasm-exports/sum.wat:
4166 2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
4168 [WebAssembly][Modules] Import globals from wasm modules
4169 https://bugs.webkit.org/show_bug.cgi?id=184736
4171 Reviewed by JF Bastien.
4174 * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
4175 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
4176 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
4177 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
4178 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
4179 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
4180 * wasm/modules/wasm-imports-wasm-exports.js:
4181 * wasm/modules/wasm-imports-wasm-exports/imports.wasm:
4182 * wasm/modules/wasm-imports-wasm-exports/imports.wat:
4183 * wasm/modules/wasm-imports-wasm-exports/sum.wasm:
4184 * wasm/modules/wasm-imports-wasm-exports/sum.wat:
4186 2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
4188 Unreviewed, reland r230697, r230720, and r230724.
4189 https://bugs.webkit.org/show_bug.cgi?id=184600
4192 * wasm/modules/constant.wasm: Added.
4193 * wasm/modules/constant.wat: Added.
4194 * wasm/modules/default-import-star-error.js: Added.
4196 * wasm/modules/default-import-star-error/entry.wasm: Added.
4197 * wasm/modules/default-import-star-error/entry.wat: Added.
4198 * wasm/modules/default-import-star-error/t0.js: Added.
4199 * wasm/modules/default-import-star-error/t1.js: Added.
4200 * wasm/modules/default-import-star-error/t2.js: Added.
4201 (export.default.Cocoa):
4202 * wasm/modules/js-wasm-cycle.js: Added.
4203 * wasm/modules/js-wasm-cycle/entry.js: Added.
4204 (from.string_appeared_here.export.return42):
4205 * wasm/modules/js-wasm-cycle/sum.wasm: Added.
4206 * wasm/modules/js-wasm-cycle/sum.wat: Added.
4207 * wasm/modules/js-wasm-function-namespace.js: Added.
4209 * wasm/modules/js-wasm-function.js: Added.
4211 * wasm/modules/js-wasm-global-namespace.js: Added.
4213 * wasm/modules/js-wasm-global.js: Added.
4215 * wasm/modules/js-wasm-memory-namespace.js: Added.
4217 * wasm/modules/js-wasm-memory.js: Added.
4219 * wasm/modules/js-wasm-start.js: Added.
4221 * wasm/modules/js-wasm-table-namespace.js: Added.
4223 * wasm/modules/js-wasm-table.js: Added.
4225 * wasm/modules/memory.wasm: Added.
4226 * wasm/modules/memory.wat: Added.
4227 * wasm/modules/run-from-wasm.wasm: Added.
4228 * wasm/modules/run-from-wasm.wat: Added.
4229 * wasm/modules/run-from-wasm/check.js: Added.
4231 * wasm/modules/start.wasm: Added.
4232 * wasm/modules/start.wat: Added.
4233 * wasm/modules/sum.wasm: Added.
4234 * wasm/modules/sum.wat: Added.
4235 * wasm/modules/table.wasm: Added.
4236 * wasm/modules/table.wat: Added.
4237 * wasm/modules/wasm-imports-js-exports.js: Added.
4238 * wasm/modules/wasm-imports-js-exports/imports.wasm: Added.
4239 * wasm/modules/wasm-imports-js-exports/imports.wat: Added.
4240 * wasm/modules/wasm-imports-js-exports/sum.js: Added.
4242 * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added.
4243 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added.
4244 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added.
4245 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added.
4246 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added.
4247 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added.
4248 * wasm/modules/wasm-imports-wasm-exports.js: Added.
4249 * wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added.
4250 * wasm/modules/wasm-imports-wasm-exports/imports.wat: Added.
4251 * wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added.
4252 * wasm/modules/wasm-imports-wasm-exports/sum.wat: Added.
4253 * wasm/modules/wasm-js-cycle.js: Added.
4254 * wasm/modules/wasm-js-cycle/entry.wasm: Added.
4255 * wasm/modules/wasm-js-cycle/entry.wat: Added.
4256 * wasm/modules/wasm-js-cycle/sum.js: Added.
4257 (from.string_appeared_here.export.sum):
4258 * wasm/modules/wasm-wasm-cycle.js: Added.
4259 * wasm/modules/wasm-wasm-cycle/entry.wasm: Added.
4260 * wasm/modules/wasm-wasm-cycle/entry.wat: Added.
4261 * wasm/modules/wasm-wasm-cycle/sum.wasm: Added.
4262 * wasm/modules/wasm-wasm-cycle/sum.wat: Added.
4264 2018-04-17 Commit Queue <commit-queue@webkit.org>
4266 Unreviewed, rolling out r230697, r230720, and r230724.
4267 https://bugs.webkit.org/show_bug.cgi?id=184717
4269 These caused multiple failures on the Test262 testers.
4270 (Requested by mlewis13 on #webkit).
4272 Reverted changesets:
4274 "[WebAssembly][Modules] Prototype wasm import"
4275 https://bugs.webkit.org/show_bug.cgi?id=184600
4276 https://trac.webkit.org/changeset/230697
4278 "[WebAssembly][Modules] Implement function import from wasm
4280 https://bugs.webkit.org/show_bug.cgi?id=184689
4281 https://trac.webkit.org/changeset/230720
4283 "[JSC] Rename runWebAssembly to runWebAssemblySuite"
4284 https://bugs.webkit.org/show_bug.cgi?id=184703
4285 https://trac.webkit.org/changeset/230724
4287 2018-04-17 JF Bastien <jfbastien@apple.com>
4289 A put is not an ExistingProperty put when we transition a structure because of an attributes change
4290 https://bugs.webkit.org/show_bug.cgi?id=184706
4291 <rdar://problem/38871451>
4293 Reviewed by Saam Barati.
4295 * stress/put-by-id-direct-strict-transition.js: Added.
4297 (j.const.obj.set hello):
4298 * stress/put-by-id-direct-transition.js: Added.
4300 (j.const.obj.set hello):
4301 * stress/put-getter-setter-by-id-strict-transition.js: Added.
4303 (j.const.obj.set hello):
4304 * stress/put-getter-setter-by-id-transition.js: Added.
4306 (j.const.obj.set hello):
4308 2018-04-16 Filip Pizlo <fpizlo@apple.com>
4310 PutStackSinkingPhase should know that KillStack means ConflictingFlush
4311 https://bugs.webkit.org/show_bug.cgi?id=184672
4313 Reviewed by Michael Saboff.
4315 * stress/sink-put-stack-over-kill-stack.js: Added.
4321 2018-04-17 Yusuke Suzuki <utatane.tea@gmail.com>
4323 [JSC] Rename runWebAssembly to runWebAssemblySuite
4324 https://bugs.webkit.org/show_bug.cgi?id=184703
4326 Reviewed by JF Bastien.
4328 And add runWebAssembly as a command to simplely run wasm modules.
4332 2018-04-17 Yusuke Suzuki <utatane.tea@gmail.com>
4334 [WebAssembly][Modules] Implement function import from wasm modules
4335 https://bugs.webkit.org/show_bug.cgi?id=184689
4337 Reviewed by JF Bastien.
4340 * wasm/modules/js-wasm-cycle.js: Added.
4341 * wasm/modules/js-wasm-cycle/entry.js: Added.
4342 (from.string_appeared_here.export.return42):
4343 * wasm/modules/js-wasm-cycle/sum.wasm: Added.
4344 * wasm/modules/js-wasm-cycle/sum.wat: Added.
4345 * wasm/modules/run-from-wasm.wasm: Added.
4346 * wasm/modules/run-from-wasm.wat: Added.
4347 * wasm/modules/run-from-wasm/check.js: Added.
4349 * wasm/modules/wasm-imports-js-exports.js: Added.
4350 * wasm/modules/wasm-imports-js-exports/imports.wasm: Added.
4351 * wasm/modules/wasm-imports-js-exports/imports.wat: Added.
4352 * wasm/modules/wasm-imports-js-exports/sum.js: Added.
4354 * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added.
4355 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added.
4356 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added.
4357 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added.
4358 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added.
4359 * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added.
4360 * wasm/modules/wasm-imports-wasm-exports.js: Added.
4361 * wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added.
4362 * wasm/modules/wasm-imports-wasm-exports/imports.wat: Added.
4363 * wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added.
4364 * wasm/modules/wasm-imports-wasm-exports/sum.wat: Added.
4365 * wasm/modules/wasm-js-cycle.js: Added.
4366 * wasm/modules/wasm-js-cycle/entry.wasm: Added.
4367 * wasm/modules/wasm-js-cycle/entry.wat: Added.
4368 * wasm/modules/wasm-js-cycle/sum.js: Added.
4369 (from.string_appeared_here.export.sum):
4370 * wasm/modules/wasm-wasm-cycle.js: Added.
4371 * wasm/modules/wasm-wasm-cycle/entry.wasm: Added.
4372 * wasm/modules/wasm-wasm-cycle/entry.wat: Added.
4373 * wasm/modules/wasm-wasm-cycle/sum.wasm: Added.
4374 * wasm/modules/wasm-wasm-cycle/sum.wat: Added.
4376 2018-04-16 Yusuke Suzuki <utatane.tea@gmail.com>
4378 [WebAssembly][Modules] Prototype wasm import
4379 https://bugs.webkit.org/show_bug.cgi?id=184600
4381 Reviewed by JF Bastien.
4383 Add wasm and wat files since module loader want to load wasm files from FS.
4384 Currently, importing the other modules from wasm is not supported.
4387 * wasm/modules/constant.wasm: Added.
4388 * wasm/modules/constant.wat: Added.
4389 * wasm/modules/js-wasm-function-namespace.js: Added.
4391 * wasm/modules/js-wasm-function.js: Added.
4393 * wasm/modules/js-wasm-global-namespace.js: Added.
4395 * wasm/modules/js-wasm-global.js: Added.
4397 * wasm/modules/js-wasm-memory-namespace.js: Added.
4399 * wasm/modules/js-wasm-memory.js: Added.
4401 * wasm/modules/js-wasm-start.js: Added.
4403 * wasm/modules/js-wasm-table-namespace.js: Added.
4405 * wasm/modules/js-wasm-table.js: Added.
4407 * wasm/modules/memory.wasm: Added.
4408 * wasm/modules/memory.wat: Added.
4409 * wasm/modules/start.wasm: Added.
4410 * wasm/modules/start.wat: Added.
4411 * wasm/modules/sum.wasm: Added.
4412 * wasm/modules/sum.wat: Added.
4413 * wasm/modules/table.wasm: Added.
4414 * wasm/modules/table.wat: Added.
4416 2018-04-14 Filip Pizlo <fpizlo@apple.com>
4418 Function.prototype.caller shouldn't return generator bodies
4419 https://bugs.webkit.org/show_bug.cgi?id=184630
4421 Reviewed by Yusuke Suzuki.
4423 * stress/function-caller-async-arrow-function-body.js: Added.
4424 * stress/function-caller-async-function-body.js: Added.
4425 * stress/function-caller-async-generator-body.js: Added.
4426 * stress/function-caller-generator-body.js: Added.
4427 * stress/function-caller-generator-method-body.js: Added.
4429 2018-04-12 Tomas Popela <tpopela@redhat.com>
4431 Unreviewed, skip JIT tests if it isn't enabled
4433 See https://bugs.webkit.org/show_bug.cgi?id=182730.
4435 * stress/big-int-spec-to-primitive.js:
4436 * stress/big-int-spec-to-this.js:
4438 2018-04-10 Caio Lima <ticaiolima@gmail.com>
4440 [ESNext][BigInt] Add support for BigInt in SpeculatedType
4441 https://bugs.webkit.org/show_bug.cgi?id=182470
4443 Reviewed by Saam Barati.
4445 * stress/big-int-spec-to-primitive.js: Added.
4446 * stress/big-int-spec-to-this.js: Added.
4447 * stress/big-int-strict-equals-jit.js: Added.
4448 * stress/big-int-strict-spec-to-this.js: Added.
4449 * stress/big-int-type-of-proven-type.js: Added.
4451 2018-04-10 Filip Pizlo <fpizlo@apple.com>
4453 DFG AI and clobberize should agree with each other
4454 https://bugs.webkit.org/show_bug.cgi?id=184440
4456 Reviewed by Saam Barati.
4458 Add tests for all of the bugs I fixed.
4460 * stress/direct-arguments-out-of-bounds-change-structure.js: Added.
4462 * stress/new-typed-array-cse-effects.js: Added.
4464 * stress/scoped-arguments-out-of-bounds-change-structure.js: Added.
4467 * stress/string-from-char-code-change-structure-not-dead.js: Added.
4470 (weirdValue.valueOf):
4471 * stress/string-from-char-code-change-structure.js: Added.
4474 (weirdValue.valueOf):
4476 2018-04-09 Leo Balter <leonardo.balter@gmail.com>
4478 Fix errant Test262 files CRLF to LF for consistency with the original source
4479 https://bugs.webkit.org/show_bug.cgi?id=184425
4481 Reviewed by Yusuke Suzuki.
4483 * test262/test/built-ins/Math/acosh/nan-returns.js:
4484 * test262/test/built-ins/Math/asinh/asinh-specialVals.js:
4485 * test262/test/built-ins/Math/atanh/atanh-specialVals.js:
4486 * test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
4487 * test262/test/built-ins/Math/cbrt/prop-desc.js:
4488 * test262/test/built-ins/Math/cosh/cosh-specialVals.js:
4489 * test262/test/built-ins/Math/expm1/expm1-specialVals.js:
4490 * test262/test/built-ins/Math/log10/Log10-specialVals.js:
4491 * test262/test/built-ins/Math/log2/log2-basicTests.js:
4492 * test262/test/built-ins/Math/sign/sign-specialVals.js:
4493 * test262/test/built-ins/Math/sinh/sinh-specialVals.js:
4494 * test262/test/built-ins/Math/tanh/tanh-specialVals.js:
4495 * test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
4496 * test262/test/built-ins/Math/trunc/trunc-specialVals.js:
4498 2018-04-08 Yusuke Suzuki <utatane.tea@gmail.com>
4500 Unreviewed, remove incorrect entry in test262.yaml
4501 https://bugs.webkit.org/show_bug.cgi?id=184266
4505 2018-04-08 Valerie Young <valerie@bocoup.com>
4507 [JSC] Update Test262 to April 6 version
4508 https://bugs.webkit.org/show_bug.cgi?id=184266
4510 Rubber stamped by Yusuke Suzuki.
4512 2018-04-08 Yusuke Suzuki <utatane.tea@gmail.com>
4514 [JSC] Introduce op_get_by_id_direct
4515 https://bugs.webkit.org/show_bug.cgi?id=183970
4517 Reviewed by Filip Pizlo.
4519 * stress/generator-prototype-copy.js: Added.
4524 * stress/generator-type-check.js: Added.
4528 * stress/get-by-id-direct-getter.js: Added.
4532 (builtin.createBuiltin):
4534 * stress/get-by-id-direct.js: Added.
4537 (builtin.createBuiltin):
4539 We fixed long-standing spec compatibility issue.
4540 As a result, this patch makes several test262 tests passed!
4543 2018-04-07 Yusuke Suzuki <utatane.tea@gmail.com>
4545 Unreviewed, annotate test with @skip if $memoryLimited
4546 https://bugs.webkit.org/show_bug.cgi?id=183894
4548 * stress/json-stringified-overflow.js:
4550 2018-04-06 Alexey Proskuryakov <ap@apple.com>
4552 Add svn:eol-style to line-terminator-normalisation-CR.js
4553 https://bugs.webkit.org/show_bug.cgi?id=184341
4555 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: Added property svn:eol-style.
4557 2018-04-06 Ross Kirsling <ross.kirsling@sony.com>
4559 Unreviewed, remove errant LF from existing test262 test for CR line endings.
4561 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
4563 2018-04-05 Ross Kirsling <ross.kirsling@sony.com>
4565 Unreviewed, rolling out r230320.
4567 Revert fix, as the root cause lies elsewhere.
4571 "[test262] Mark line-terminator-normalisation-CR.js as a
4573 https://bugs.webkit.org/show_bug.cgi?id=184341
4574 https://trac.webkit.org/changeset/230320
4576 2018-04-05 Ross Kirsling <ross.kirsling@sony.com>
4578 [test262] Mark line-terminator-normalisation-CR.js as a binary file.
4579 https://bugs.webkit.org/show_bug.cgi?id=184341
4581 Reviewed by Yusuke Suzuki.
4583 This test is all about CR line endings, but `svn-apply` can't deal with them.
4584 Treating the file as binary ensures that its contents never are never shown in a diff.
4586 * .gitattributes: Added.
4588 2018-04-05 Robin Morisset <rmorisset@apple.com>
4590 Fix testcase (missing try/catch).
4591 https://bugs.webkit.org/show_bug.cgi?id=183657
4595 * stress/large-unshift-splice.js
4597 2018-04-04 Filip Pizlo <fpizlo@apple.com>
4599 REGRESSION(r222563): removed DoubleReal type check causes tons of crashes because CSE has never known how to handle SaneChain
4600 https://bugs.webkit.org/show_bug.cgi?id=184319
4602 Reviewed by Saam Barati.
4604 * stress/array-push-nan-to-double-array-cse-sane-and-insane-chain.js: Added.
4607 * stress/array-push-nan-to-double-array.js: Added.
4611 2018-04-03 Mark Lam <mark.lam@apple.com>
4613 Test js-fixed-array-out-of-memory.js should be excluded for memory limited devices.
4614 https://bugs.webkit.org/show_bug.cgi?id=184284
4616 Reviewed by Saam Barati.
4618 * stress/js-fixed-array-out-of-memory.js:
4620 2018-03-31 Filip Pizlo <fpizlo@apple.com>
4622 JSC crash in JIT code with for-of loop and Array/Set iterators
4623 https://bugs.webkit.org/show_bug.cgi?id=183174
4625 Reviewed by Saam Barati.
4627 * microbenchmarks/hoist-get-by-offset-tower-with-inferred-types.js: Added. This test shows that fixing the bug didn't break hoisting of GetByOffset with inferred types. I confirmed that if I did break it, this test slows down by >7x.
4629 * stress/hoist-get-by-offset-with-control-dependent-inferred-type.js: Added. This test shows that the bug is fixed.
4632 2018-03-30 JF Bastien <jfbastien@apple.com>
4634 WebAssembly: support DataView compilation
4635 https://bugs.webkit.org/show_bug.cgi?id=183342
4637 Reviewed by Mark Lam.
4639 Test WebAssembly compilation using a DataView with offset.
4641 * wasm/regress/183342.js: Added.
4644 2018-03-30 Filip Pizlo <fpizlo@apple.com>
4646 Bytecode generator should not get_from_scope something that may be a hole into a variable that is already live
4647 https://bugs.webkit.org/show_bug.cgi?id=184189
4649 Reviewed by JF Bastien.
4651 * stress/load-hole-from-scope-into-live-var.js: Added.
4652 (result.eval.try.switch):
4655 2018-03-30 Ryan Haddad <ryanhaddad@apple.com>
4657 Unreviewed, rolling out r230102.
4659 Caused assertion failures on JSC bots.
4663 "A stack overflow in the parsing of a builtin (called by
4664 createExecutable) cause a crash instead of a catchable js
4666 https://bugs.webkit.org/show_bug.cgi?id=184074
4667 https://trac.webkit.org/changeset/230102
4669 2018-03-30 Robin Morisset <rmorisset@apple.com>
4671 Inlining of a function that ends in op_unreachable in a non-tail position triggers an ASSERT
4672 https://bugs.webkit.org/show_bug.cgi?id=183812
4674 Reviewed by Keith Miller.
4676 * stress/inlining-unreachable-non-tail.js: Added.
4680 2018-03-30 Robin Morisset <rmorisset@apple.com>
4682 A stack overflow in the parsing of a builtin (called by createExecutable) cause a crash instead of a catchable js exception
4683 https://bugs.webkit.org/show_bug.cgi?id=184074
4684 <rdar://problem/37165897>
4686 Reviewed by Keith Miller.
4688 * stress/stack-overflow-while-parsing-builtin.js: Added.
4691 2018-03-30 Robin Morisset <rmorisset@apple.com>
4693 Out-of-bounds accesses due to a missing check for MAX_STORAGE_VECTOR_LENGTH in unshiftCountForAnyIndexingType
4694 https://bugs.webkit.org/show_bug.cgi?id=183657
4696 Reviewed by Keith Miller.
4698 * stress/large-unshift-splice.js: Added.
4701 2018-03-28 Robin Morisset <rmorisset@apple.com>
4703 appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards
4704 https://bugs.webkit.org/show_bug.cgi?id=183894
4706 Reviewed by Saam Barati.
4708 * stress/json-stringified-overflow.js: Added.
4711 2018-03-26 Filip Pizlo <fpizlo@apple.com>
4713 DFG should know that CreateThis can be effectful
4714 https://bugs.webkit.org/show_bug.cgi?id=184013
4716 Reviewed by Saam Barati.
4718 * stress/create-this-property-change.js: Added.
4722 * stress/create-this-structure-change-without-cse.js: Added.
4726 * stress/create-this-structure-change.js: Added.
4731 2018-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
4733 [DFG] Introduces fused compare and jump
4734 https://bugs.webkit.org/show_bug.cgi?id=177100
4736 Reviewed by Mark Lam.
4738 * stress/fused-jeq-slow.js: Added.
4745 * stress/fused-jeq.js: Added.
4752 * stress/fused-jstricteq-slow.js: Added.
4759 * stress/fused-jstricteq.js: Added.
4767 2018-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
4769 [JSC] Clear MustGenerate for ToString(Number) converted from NumberToStringWithRadix
4770 https://bugs.webkit.org/show_bug.cgi?id=183559
4772 Reviewed by Mark Lam.
4774 * stress/double-to-string-in-loop-removed.js: Added.
4776 * stress/int32-to-string-in-loop-removed.js: Added.
4778 * stress/int52-to-string-in-loop-removed.js: Added.
4781 2018-03-22 Michael Saboff <msaboff@apple.com>
4783 Race Condition in arrayProtoFuncReverse() causes wrong results or crash
4784 https://bugs.webkit.org/show_bug.cgi?id=183901
4786 Reviewed by Keith Miller.
4790 * stress/array-reverse-doesnt-clobber.js: Added.
4792 (createArrayOfArrays):
4793 (createArrayStorage):
4795 2018-03-21 Filip Pizlo <fpizlo@apple.com>
4797 ScopedArguments should do poisoning and index masking
4798 https://bugs.webkit.org/show_bug.cgi?id=183863
4800 Reviewed by Mark Lam.
4802 Adds another stress test of scoped arguments.
4804 * stress/scoped-arguments-test.js: Added.
4807 2018-03-20 Saam Barati <sbarati@apple.com>
4809 We need to do proper bookkeeping of exitOK when inserting constants when sinking NewArrayBuffer
4810 https://bugs.webkit.org/show_bug.cgi?id=183795
4811 <rdar://problem/38298694>
4813 Reviewed by JF Bastien.
4815 * stress/sink-phantom-new-array-buffer-exit-ok.js: Added.
4819 2018-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
4821 [DFG][FTL] Add vectorLengthHint for NewArray
4822 https://bugs.webkit.org/show_bug.cgi?id=183694
4824 Reviewed by Saam Barati.
4826 * stress/vector-length-hint-array-constructor.js: Added.
4829 * stress/vector-length-hint-new-array.js: Added.
4833 2018-03-13 Yusuke Suzuki <utatane.tea@gmail.com>
4835 [DFG][FTL] Make ArraySlice(0) code tight
4836 https://bugs.webkit.org/show_bug.cgi?id=183590
4838 Reviewed by Saam Barati.
4840 * stress/array-slice-with-zero.js: Added.
4844 * stress/array-slice-zero-args.js: Added.
4848 2018-03-14 Caitlin Potter <caitp@igalia.com>
4850 [JSC] fix order of evaluation for ClassDefinitionEvaluation
4851 https://bugs.webkit.org/show_bug.cgi?id=183523
4853 Reviewed by Keith Miller.
4855 Computed property names need to be evaluated in source order during class
4856 definition evaluation, as it's observable (and specified to work this way).
4858 This change improves compatibility with Chromium.
4860 * stress/class_elements.js: Added.
4862 (test.C.prototype.effect):
4864 (test.C.prototype.get effect):
4865 (test.C.prototype.set effect):
4868 2018-03-11 Yusuke Suzuki <utatane.tea@gmail.com>
4870 [DFG] AI should convert CreateThis to NewObject if the prototype object is proved
4871 https://bugs.webkit.org/show_bug.cgi?id=183310
4873 Reviewed by Filip Pizlo.
4875 * stress/ai-create-this-to-new-object-fire.js: Added.
4883 * stress/ai-create-this-to-new-object.js: Added.
4892 2018-03-10 Yusuke Suzuki <utatane.tea@gmail.com>
4894 [FTL] Drop NewRegexp for String.prototype.match with RegExp + global flag
4895 https://bugs.webkit.org/show_bug.cgi?id=181848
4897 Reviewed by Sam Weinig.
4899 * microbenchmarks/regexp-u-global-es5.js: Added.
4901 * microbenchmarks/regexp-u-global-es6.js: Added.
4903 * stress/materialized-regexp-has-correct-last-index-set-by-match-at-osr-exit.js: Added.
4907 * stress/materialized-regexp-has-correct-last-index-set-by-match.js: Added.
4911 2018-03-07 Dominik Infuehr <dinfuehr@igalia.com>
4913 Disable test stress/var-injection-cache-invalidation.js on systems with limited memory
4914 https://bugs.webkit.org/show_bug.cgi?id=183334
4916 Reviewed by Žan Doberšek.
4918 * stress/var-injection-cache-invalidation.js:
4920 2018-03-06 Dominik Infuehr <dinfuehr@igalia.com>
4922 [ARM] Disable tests that run out of memory
4923 https://bugs.webkit.org/show_bug.cgi?id=182699
4925 Reviewed by Žan Doberšek.
4927 Skip tests that run of of memory. Do not run
4928 modules/module-jit-reachability.js without LLInt to prevent
4929 running out of executable memory.
4932 * modules/module-jit-reachability.js:
4933 * stress/has-own-property-name-cache-string-keys.js:
4934 * stress/has-own-property-name-cache-symbol-keys.js:
4936 2018-03-01 Yusuke Suzuki <utatane.tea@gmail.com>
4938 ASSERTION FAILED: matchContextualKeyword(m_vm->propertyNames->async)
4939 https://bugs.webkit.org/show_bug.cgi?id=183173
4941 Reviewed by Saam Barati.
4943 * stress/async-arrow-function-in-class-heritage.js: Added.
4948 2018-03-01 Saam Barati <sbarati@apple.com>
4950 We need to clear cached structures when having a bad time
4951 https://bugs.webkit.org/show_bug.cgi?id=183256
4952 <rdar://problem/36245022>
4954 Reviewed by Mark Lam.
4956 * stress/having-a-bad-time-with-derived-arrays.js: Added.
4962 2018-02-28 Yusuke Suzuki <utatane.tea@gmail.com>
4964 JSC crash with `import("")`
4965 https://bugs.webkit.org/show_bug.cgi?id=183175
4967 Reviewed by Saam Barati.
4969 * stress/import-with-empty-string.js: Added.
4971 2018-02-27 Yusuke Suzuki <utatane.tea@gmail.com>
4973 Unreviewed, skip FTL tests if FTL is disabled
4974 https://bugs.webkit.org/show_bug.cgi?id=183071
4976 * stress/has-indexed-property-array-storage-ftl.js:
4977 * stress/has-indexed-property-slow-put-array-storage-ftl.js:
4979 2018-02-25 Yusuke Suzuki <utatane.tea@gmail.com>
4981 [FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
4982 https://bugs.webkit.org/show_bug.cgi?id=182965
4984 Reviewed by Saam Barati.
4986 * stress/put-by-val-array-storage.js: Added.
4988 (testArrayStorageInBounds):
4989 * stress/put-by-val-direct-out-of-bounds-setter.js: Added.
4991 (testInt32.createBuiltin):
4993 * stress/put-by-val-slow-put-array-storage.js: Added.
4995 (testArrayStorageInBounds):
4997 2018-02-26 Saam Barati <sbarati@apple.com>
4999 validateStackAccess should not validate if the offset is within the stack bounds
5000 https://bugs.webkit.org/show_bug.cgi?id=183067
5001 <rdar://problem/37749988>
5003 Reviewed by Mark Lam.
5005 * stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added.
5011 2018-02-26 Yusuke Suzuki <utatane.tea@gmail.com>
5013 Unreviewed, skip FTL tests if FTL is disabled
5014 https://bugs.webkit.org/show_bug.cgi?id=183071
5016 * stress/has-indexed-property-array-storage-ftl.js:
5017 * stress/has-indexed-property-slow-put-array-storage-ftl.js:
5019 2018-02-23 Saam Barati <sbarati@apple.com>
5021 Make Number.isInteger an intrinsic
5022 https://bugs.webkit.org/show_bug.cgi?id=183088
5024 Reviewed by JF Bastien.
5026 * stress/number-is-integer-intrinsic.js: Added.
5028 2018-02-23 Oleksandr Skachkov <gskachkov@gmail.com>
5030 WebAssembly: cache memory address / size on instance
5031 https://bugs.webkit.org/show_bug.cgi?id=177305
5033 Reviewed by JF Bastien.
5035 * wasm/function-tests/memory-reuse.js: Added.
5036 (createWasmInstance):
5040 (checkWasmInstancesWithSharedMemory):
5042 2018-02-23 Yusuke Suzuki <utatane.tea@gmail.com>
5044 [JSC] Implement $vm.ftlTrue function for FTL testing
5045 https://bugs.webkit.org/show_bug.cgi?id=183071
5047 Reviewed by Mark Lam.
5049 * stress/dead-fiat-value-to-int52-then-exit-not-double.js:
5051 * stress/dead-fiat-value-to-int52-then-exit-not-int52.js:
5053 * stress/dead-fiat-value-to-int52.js:
5055 * stress/dead-osr-entry-value.js:
5057 * stress/fiat-value-to-int52-then-exit-not-double.js:
5059 * stress/fiat-value-to-int52-then-exit-not-int52.js:
5061 * stress/fiat-value-to-int52-then-fail-to-fold.js:
5063 * stress/fiat-value-to-int52-then-fold.js:
5065 * stress/fiat-value-to-int52.js:
5067 * stress/fold-based-on-int32-proof-mul-branch.js:
5069 * stress/fold-profiled-call-to-call.js:
5071 * stress/fold-to-double-constant-then-exit.js:
5073 * stress/fold-to-int52-constant-then-exit.js:
5075 * stress/fold-to-primitive-in-cfa.js:
5077 * stress/fold-to-primitive-to-identity-in-cfa.js:
5079 * stress/has-indexed-property-array-storage-ftl.js: Added.
5083 * stress/has-indexed-property-slow-put-array-storage-ftl.js: Added.
5087 * stress/int52-ai-add-then-filter-int32.js:
5089 * stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js:
5091 * stress/int52-ai-mul-then-filter-int32.js:
5093 * stress/int52-ai-neg-then-filter-int32.js:
5095 * stress/int52-ai-sub-then-filter-int32.js:
5097 * stress/licm-pre-header-cannot-exit-nested.js:
5099 * stress/licm-pre-header-cannot-exit.js:
5101 * stress/sparse-array-entry-update-144067.js:
5102 (useMemoryToTriggerGCs):
5103 * stress/test-spec-misc.js:
5105 * stress/tricky-array-bounds-checks.js:
5108 2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com>
5110 [FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
5111 https://bugs.webkit.org/show_bug.cgi?id=182792
5113 Reviewed by Mark Lam.
5115 * stress/has-indexed-property-array-storage.js: Added.
5119 * stress/has-indexed-property-slow-put-array-storage.js: Added.
5124 2018-02-20 Saam Barati <sbarati@apple.com>
5126 DFG::VarargsForwardingPhase should eliminate getting argument length
5127 https://bugs.webkit.org/show_bug.cgi?id=182959
5129 Reviewed by Keith Miller.
5131 * microbenchmarks/forward-arguments-dont-escape-on-arguments-length.js: Added.
5133 2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
5135 [FTL] Support ArrayPush for ArrayStorage
5136 https://bugs.webkit.org/show_bug.cgi?id=182782
5138 Reviewed by Saam Barati.
5140 Existing array-push-multiple-storage.js covers ArrayPush(ArrayStorage) multiple arguments case.
5142 * stress/array-push-array-storage-beyond-int32.js: Added.
5145 * stress/array-push-array-storage.js: Added.
5148 * stress/array-push-multiple-array-storage-beyond-int32.js: Added.
5151 * stress/array-push-multiple-storage-continuous.js: Added.
5155 2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
5157 [FTL] Support ArrayPop for ArrayStorage
5158 https://bugs.webkit.org/show_bug.cgi?id=182783
5160 Reviewed by Saam Barati.
5162 * stress/array-pop-array-storage.js: Added.
5166 2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
5168 [FTL] Add Arrayify for ArrayStorage and SlowPutArrayStorage
5169 https://bugs.webkit.org/show_bug.cgi?id=182731
5171 Reviewed by Saam Barati.
5173 * stress/arrayify-array-storage-array.js: Added.
5176 * stress/arrayify-array-storage-non-array.js: Added.
5179 * stress/arrayify-array-storage.js: Added.
5182 * stress/arrayify-slow-put-array-storage-pass-array-storage.js: Added.
5185 * stress/arrayify-slow-put-array-storage.js: Added.
5189 2018-02-19 Saam Barati <sbarati@apple.com>
5191 Don't use JSFunction's allocation profile when getting the prototype can be effectful
5192 https://bugs.webkit.org/show_bug.cgi?id=182942
5193 <rdar://problem/37584764>
5195 Reviewed by Mark Lam.
5197 * stress/get-prototype-create-this-effectful.js: Added.
5199 2018-02-16 Saam Barati <sbarati@apple.com>
5201 Fix bugs from r228411
5202 https://bugs.webkit.org/show_bug.cgi?id=182851
5203 <rdar://problem/37577732>
5205 Reviewed by JF Bastien.
5207 * stress/constant-folding-phase-insert-check-handle-varargs.js: Added.
5209 2018-02-15 Filip Pizlo <fpizlo@apple.com>
5211 Unreviewed, roll out r228366 since it did not progress anything.
5213 * stress/gc-error-stack.js: Removed.
5214 * stress/no-gc-error-stack.js: Removed.
5216 2018-02-15 Tomas Popela <tpopela@redhat.com>
5218 Many stress tests fail with JIT disabled
5219 https://bugs.webkit.org/show_bug.cgi?id=182730
5221 Reviewed by Saam Barati.
5223 These tests are broken by design if the JIT is disabled - they test
5224 the return value of numberOfDFGCompiles(), which is always set to
5225 1000000.0 in TestRunnerUtils.cpp and makes the tests to fail.
5227 * stress/arith-abs-on-various-types.js:
5228 * stress/arith-abs-to-arith-negate-range-optimizaton.js:
5229 * stress/arith-acos-on-various-types.js:
5230 * stress/arith-acosh-on-various-types.js:
5231 * stress/arith-asin-on-various-types.js:
5232 * stress/arith-asinh-on-various-types.js:
5233 * stress/arith-atan-on-various-types.js:
5234 * stress/arith-atanh-on-various-types.js:
5235 * stress/arith-cbrt-on-various-types.js:
5236 * stress/arith-ceil-on-various-types.js:
5237 * stress/arith-clz32-on-various-types.js:
5238 * stress/arith-cos-on-various-types.js:
5239 * stress/arith-cosh-on-various-types.js:
5240 * stress/arith-expm1-on-various-types.js:
5241 * stress/arith-floor-on-various-types.js:
5242 * stress/arith-fround-on-various-types.js:
5243 * stress/arith-log-on-various-types.js:
5244 * stress/arith-log10-on-various-types.js:
5245 * stress/arith-log2-on-various-types.js:
5246 * stress/arith-negate-on-various-types.js:
5247 * stress/arith-round-on-various-types.js:
5248 * stress/arith-sin-on-various-types.js:
5249 * stress/arith-sinh-on-various-types.js:
5250 * stress/arith-sqrt-on-various-types.js:
5251 * stress/arith-tan-on-various-types.js:
5252 * stress/arith-tanh-on-various-types.js:
5253 * stress/arith-trunc-on-various-types.js:
5254 * stress/compare-strict-eq-on-various-types.js:
5256 2018-02-14 Ryan Haddad <ryanhaddad@apple.com>
5258 Skip stress/new-largeish-contiguous-array-with-size.js on arm.
5260 Unreviewed test gardening.
5262 * stress/new-largeish-contiguous-array-with-size.js:
5264 2018-02-14 Saam Barati <sbarati@apple.com>
5266 Setting a VMTrap shouldn't look at topCallFrame since that may imply we're in C code and holding the malloc lock
5267 https://bugs.webkit.org/show_bug.cgi?id=182801
5269 Reviewed by Keith Miller.
5271 * stress/watchdog-dont-malloc-when-in-c-code.js: Added.
5273 2018-02-14 Ryan Haddad <ryanhaddad@apple.com>
5275 Skip JSC test stress/activation-sink-default-value-tdz-error.js on debug.
5276 https://bugs.webkit.org/show_bug.cgi?id=182526
5278 Unreviewed test gardening.
5280 * stress/activation-sink-default-value-tdz-error.js:
5282 2018-02-13 Saam Barati <sbarati@apple.com>
5284 putDirectIndexSlowOrBeyondVectorLength needs to convert to dictionary indexing mode always if attributes are present
5285 https://bugs.webkit.org/show_bug.cgi?id=182755
5286 <rdar://problem/37080864>
5288 Reviewed by Keith Miller.
5290 * stress/always-enter-dictionary-indexing-mode-with-getter.js: Added.
5291 (test1.o.get 10005):
5296 2018-02-13 Caitlin Potter <caitp@igalia.com>
5298 [JSC] cache TaggedTemplate arrays by callsite rather than by contents
5299 https://bugs.webkit.org/show_bug.cgi?id=182717
5301 Reviewed by Yusuke Suzuki.
5303 https://github.com/tc39/ecma262/pull/890 imposes a change to template
5304 literals, to allow template callsite arrays to be collected when the
5305 code containing the tagged template call is collected. This spec change
5306 has received concensus and been ratified.
5308 This change eliminates the eternal map associating template contents
5311 * stress/tagged-template-object-collect.js: Renamed from JSTests/stress/tagged-template-registry-key-collect.js.
5312 * stress/tagged-template-object.js: Renamed from JSTests/stress/tagged-template-registry-key.js.
5313 * stress/tagged-templates-identity.js:
5314 * stress/template-string-tags-eval.js:
5317 2018-02-13 Yusuke Suzuki <utatane.tea@gmail.com>
5319 Support GetArrayLength on ArrayStorage in the FTL
5320 https://bugs.webkit.org/show_bug.cgi?id=182625
5322 Reviewed by Saam Barati.
5324 * stress/array-storage-length.js: Added.
5328 (testSlowPutInBound):
5329 (testSlowPutUncountable):
5330 * stress/undecided-length.js: Added.
5334 2018-02-12 Saam Barati <sbarati@apple.com>
5336 DFG::emitCodeToGetArgumentsArrayLength needs to handle NewArrayBuffer/PhantomNewArrayBuffer
5337 https://bugs.webkit.org/show_bug.cgi?id=182706
5338 <rdar://problem/36833681>
5340 Reviewed by Filip Pizlo.
5342 * stress/get-array-length-phantom-new-array-buffer.js: Added.
5346 2018-02-09 Filip Pizlo <fpizlo@apple.com>
5348 Don't waste memory for error.stack
5349 https://bugs.webkit.org/show_bug.cgi?id=182656
5351 Reviewed by Saam Barati.
5355 * stress/gc-error-stack.js: Added. Shows that the GC forgets frames now.
5356 * stress/no-gc-error-stack.js: Added. Shows that the GC won't forget things if you ask for the stack.
5358 2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
5360 [JSC] Update Test262 to Feb 9 version
5361 https://bugs.webkit.org/show_bug.cgi?id=182468
5363 Reviewed by Saam Barati.
5365 2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
5367 Unreviewed, fix invalid line terminator in old test262 file part 2
5368 https://bugs.webkit.org/show_bug.cgi?id=182468
5370 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
5372 2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
5374 Unreviewed, fix invalid line terminator in old test262 file
5375 https://bugs.webkit.org/show_bug.cgi?id=182468
5377 * test262/test/language/literals/regexp/7.8.5-1.js:
5379 2018-02-06 Yusuke Suzuki <utatane.tea@gmail.com>
5381 [JSC] Implement Array.prototype.flatMap and Array.prototype.flatten
5382 https://bugs.webkit.org/show_bug.cgi?id=182440
5384 Reviewed by Darin Adler.
5386 * stress/array-flatmap.js: Added.
5391 * stress/array-flatten.js: Added.
5395 * test262/test/built-ins/Array/prototype/flatMap/depth-always-one.js:
5397 Pick test262 82c6148980332febe92a544a1fb653718e9fdb57 change.
5399 2018-02-06 Keith Miller <keith_miller@apple.com>
5401 put_to_scope/get_from_scope should not cache lexical scopes when expecting a global object
5402 https://bugs.webkit.org/show_bug.cgi?id=182549
5403 <rdar://problem/36189995>
5405 Reviewed by Saam Barati.
5407 * stress/var-injection-cache-invalidation.js: Added.
5408 (allocateLotsOfThings):
5411 2018-02-03 Yusuke Suzuki <utatane.tea@gmail.com>
5413 Unreviewed, follow up for test262 update
5414 https://bugs.webkit.org/show_bug.cgi?id=182288
5418 2018-02-02 Ryan Haddad <ryanhaddad@apple.com>
5420 Update test262 to Jan 30 version
5421 https://bugs.webkit.org/show_bug.cgi?id=182288
5423 Unreviewed test gardening.
5425 * test262.yaml: Remove entry for missing test language/expressions/assignment/white-space.js
5427 2018-02-02 Saam Barati <sbarati@apple.com>
5429 When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts
5430 https://bugs.webkit.org/show_bug.cgi?id=182368
5431 <rdar://problem/36932466>
5433 Reviewed by Mark Lam.
5435 * stress/flush-after-force-exit-in-bytecodeparser-needs-to-update-argument-positions.js: Added.
5436 (runNearStackLimit.t):
5437 (runNearStackLimit):
5438 (try.runNearStackLimit):
5441 2018-02-02 Yusuke Suzuki <utatane.tea@gmail.com>
5443 Update test262 to Jan 30 version
5444 https://bugs.webkit.org/show_bug.cgi?id=182288
5446 Rubber stamped by Saam Barati.
5448 This patch updates test262 to the latest one, Jan 30 version.
5449 Since added and changed files are too many, we cannot create ChangeLog.
5450 The following files are changed.
5452 Several files are intentionally omitted due to merge failures. We should investigate how to merge files
5453 including some special line terminators (like u2028, u2029).
5456 * test262/test262-Revision.txt:
5459 2018-02-02 Guillaume Emont <guijemont@igalia.com>
5461 JSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms
5462 https://bugs.webkit.org/show_bug.cgi?id=182411
5464 Reviewed by Carlos Alberto Lopez Perez.
5466 This is skipped only on arm memory limited platforms. Until recently
5467 it was not a problem on MIPS as the butterfly was not initialized. But
5468 since r227435, the butterfly is initialized in that test and therefore
5469 memory is allocated, and the test typically takes around 512M, which
5470 means it generally gets OOM-killed on the MIPS buildbot.
5472 * mozilla/mozilla-tests.yaml:
5474 2018-02-01 Mark Lam <mark.lam@apple.com>
5476 Fix broken bounds check in FTL's compileGetMyArgumentByVal().
5477 https://bugs.webkit.org/show_bug.cgi?id=182419
5478 <rdar://problem/37044945>
5480 Reviewed by Saam Barati.
5482 * stress/regress-182419.js: Added.
5484 2018-02-01 Keith Miller <keith_miller@apple.com>
5486 Fix crashes due to mishandling custom sections.
5487 https://bugs.webkit.org/show_bug.cgi?id=182404
5488 <rdar://problem/36935863>
5490 Reviewed by Saam Barati.
5493 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
5494 * wasm/js-api/validate.js:
5497 2018-01-31 Saam Barati <sbarati@apple.com>
5499 JSC incorrectly interpreting script, sets Global Property instead of Global Lexical variable (LiteralParser / JSONP path)
5500 https://bugs.webkit.org/show_bug.cgi?id=182074
5501 <rdar://problem/36846261>
5503 Reviewed by Mark Lam.
5505 * stress/jsonp-program-evaluate-path-must-consider-global-lexical-environment.js: Added.
5511 2018-01-30 Yusuke Suzuki <utatane.tea@gmail.com>
5513 Unreviewed, update test262 expects
5514 https://bugs.webkit.org/show_bug.cgi?id=182232
5518 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
5520 [JSC] Implement trimStart and trimEnd
5521 https://bugs.webkit.org/show_bug.cgi?id=182233
5523 Reviewed by Mark Lam.
5525 * stress/trim.js: Added.
5531 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
5533 [JSC] Relax line terminators in String to make JSON subset of JS
5534 https://bugs.webkit.org/show_bug.cgi?id=182232
5536 Reviewed by Keith Miller.
5538 * ChakraCore/test/es5/Lex_u3.baseline-jsc:
5539 * stress/relaxed-line-terminators-in-string.js: Added.
5542 2018-01-29 Michael Saboff <msaboff@apple.com>
5544 REGRESSION (r227341): DFG_ASSERT failure at JSC::DFG::AtTailAbstractState::forNode()
5545 https://bugs.webkit.org/show_bug.cgi?id=182249
5547 Reviewed by Keith Miller.
5549 New regression test.
5551 * stress/compare-clobber-untypeduse.js: Added.
5553 2018-01-29 Matt Lewis <jlewis3@apple.com>
5555 Unreviewed, rolling out r227725.
5557 This caused internal failures.
5561 "JSC Sampling Profiler: Detect tester and testee when sampling
5563 https://bugs.webkit.org/show_bug.cgi?id=152729
5564 https://trac.webkit.org/changeset/227725
5566 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
5568 JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT
5569 https://bugs.webkit.org/show_bug.cgi?id=152729
5571 Reviewed by Saam Barati.
5573 * stress/sampling-profiler-regexp.js: Added.
5574 (platformSupportsSamplingProfiler.test):
5575 (platformSupportsSamplingProfiler.baz):
5576 (platformSupportsSamplingProfiler):
5578 2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
5580 [DFG][FTL] WeakMap#set should have DFG node
5581 https://bugs.webkit.org/show_bug.cgi?id=180015
5583 Reviewed by Saam Barati.
5585 * stress/weakmap-set-change-get.js: Added.
5588 * stress/weakmap-set-cse.js: Added.
5591 * stress/weakset-add-change-get.js: Added.
5593 * stress/weakset-add-cse.js: Added.
5596 2018-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
5598 DFG strength reduction fails to convert NumberToStringWithValidRadixConstant for 0 to constant '0'
5599 https://bugs.webkit.org/show_bug.cgi?id=182213
5601 Reviewed by Mark Lam.
5603 * stress/int32-min-to-string.js: Added.
5610 * stress/zero-to-string.js: Added.
5618 2018-01-23 Yusuke Suzuki <utatane.tea@gmail.com>
5620 Add more module scope related tests with code evaluation by string
5621 https://bugs.webkit.org/show_bug.cgi?id=181983
5623 Reviewed by Sam Weinig.
5625 Add more module scope related tests. When the original tests are landed,
5626 we do not have browser integration. This patch adds more module scope tests
5627 with dynamically created script evaluation. We add tests with Function
5628 constructor, direct eval, indirect eval, setTimeout, setInterval, and event handlers.
5630 * modules/scopes-eval.js: Added.
5632 * modules/scopes.js:
5635 2018-01-23 Filip Pizlo <fpizlo@apple.com>
5637 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.
5639 * microbenchmarks/array-push-3.js: Removed.
5640 * microbenchmarks/bigswitch-indirect-symbol-or-undefined.js: Removed.
5641 * microbenchmarks/double-to-int32.js: Removed.
5642 * microbenchmarks/fake-iterators-that-throw-when-finished.js: Removed.
5643 * microbenchmarks/ftl-polymorphic-bitand.js: Removed.
5644 * microbenchmarks/ftl-polymorphic-bitor.js: Removed.
5645 * microbenchmarks/ftl-polymorphic-bitxor.js: Removed.
5646 * microbenchmarks/ftl-polymorphic-lshift.js: Removed.
5647 * microbenchmarks/ftl-polymorphic-rshift.js: Removed.
5648 * microbenchmarks/ftl-polymorphic-sub.js: Removed.
5649 * microbenchmarks/ftl-polymorphic-urshift.js: Removed.
5650 * microbenchmarks/map-constant-key.js: Removed.
5651 * microbenchmarks/nested-function-parsing.js: Removed.
5652 * microbenchmarks/rest-parameter-allocation-elimination.js: Removed.
5653 * microbenchmarks/spread-large-array.js: Removed.
5654 * microbenchmarks/string-add-constant-folding.js: Removed.
5655 * microbenchmarks/to-lower-case.js: Removed.
5656 * microbenchmarks/undefined-property-access.js: Removed.
5657 * slowMicrobenchmarks/array-push-3.js: Copied from JSTests/microbenchmarks/array-push-3.js.
5658 * slowMicrobenchmarks/bigswitch-indirect-symbol-or-undefined.js: Copied from JSTests/microbenchmarks/bigswitch-indirect-symbol-or-undefined.js.
5659 * slowMicrobenchmarks/double-to-int32.js: Copied from JSTests/microbenchmarks/double-to-int32.js.
5660 * slowMicrobenchmarks/fake-iterators-that-throw-when-finished.js: Copied from JSTests/microbenchmarks/fake-iterators-that-throw-when-finished.js.
5661 * slowMicrobenchmarks/ftl-polymorphic-bitand.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitand.js.
5662 * slowMicrobenchmarks/ftl-polymorphic-bitor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitor.js.
5663 * slowMicrobenchmarks/ftl-polymorphic-bitxor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitxor.js.
5664 * slowMicrobenchmarks/ftl-polymorphic-lshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-lshift.js.
5665 * slowMicrobenchmarks/ftl-polymorphic-rshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-rshift.js.
5666 * slowMicrobenchmarks/ftl-polymorphic-sub.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-sub.js.
5667 * slowMicrobenchmarks/ftl-polymorphic-urshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-urshift.js.
5668 * slowMicrobenchmarks/map-constant-key.js: Copied from JSTests/microbenchmarks/map-constant-key.js.
5669 * slowMicrobenchmarks/nested-function-parsing.js: Copied from JSTests/microbenchmarks/nested-function-parsing.js.
5670 * slowMicrobenchmarks/rest-parameter-allocation-elimination.js: Copied from JSTests/microbenchmarks/rest-parameter-allocation-elimination.js.
5671 * slowMicrobenchmarks/spread-large-array.js: Copied from JSTests/microbenchmarks/spread-large-array.js.
5672 * slowMicrobenchmarks/string-add-constant-folding.js: Copied from JSTests/microbenchmarks/string-add-constant-folding.js.
5673 * slowMicrobenchmarks/to-lower-case.js: Copied from JSTests/microbenchmarks/to-lower-case.js.
5674 * slowMicrobenchmarks/undefined-property-access.js: Copied from JSTests/microbenchmarks/undefined-property-access.js.
5676 2018-01-23 Robin Morisset <rmorisset@apple.com>
5678 Update the argument count in DFGByteCodeParser::handleRecursiveCall
5679 https://bugs.webkit.org/show_bug.cgi?id=181739
5680 <rdar://problem/36627662>
5682 Reviewed by Saam Barati.
5684 * stress/recursive-tail-call-with-different-argument-count.js: Added.
5688 2018-01-22 Michael Saboff <msaboff@apple.com>
5690 DFG abstract interpreter needs to properly model effects of some Math ops
5691 https://bugs.webkit.org/show_bug.cgi?id=181886
5693 Reviewed by Saam Barati.
5695 New regression test.
5697 * stress/arith-nodes-abstract-interpreter-untypeduse.js: Added.
5700 2018-01-20 Caio Lima <ticaiolima@gmail.com>
5702 [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
5703 https://bugs.webkit.org/show_bug.cgi?id=181182
5705 Reviewed by Darin Adler.
5707 * stress/big-int-prototype-to-string-cast-overflow.js: Added.
5708 * stress/big-int-prototype-to-string-exception.js: Added.
5709 * stress/big-int-prototype-to-string-wrong-values.js: Added.
5710 * stress/number-prototype-to-string-cast-overflow.js: Added.
5711 * stress/number-prototype-to-string-exception.js: Added.
5712 * stress/number-prototype-to-string-wrong-values.js: Added.
5714 2018-01-19 Ryan Haddad <ryanhaddad@apple.com>
5716 Disable Atomics when SharedArrayBuffer isn’t enabled
5717 https://bugs.webkit.org/show_bug.cgi?id=181572
5719 Unreviewed test gardening.
5721 * test262.yaml: Skip tests that fail after this change.
5723 2018-01-19 Saam Barati <sbarati@apple.com>
5725 Kill ArithNegate's ArithProfile assert inside BytecodeParser
5726 https://bugs.webkit.org/show_bug.cgi?id=181877
5727 <rdar://problem/36630552>
5729 Reviewed by Mark Lam.
5731 * stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js: Added.
5732 (runNearStackLimit):
5737 (i.try.runNearStackLimit):
5740 2018-01-19 Saam Barati <sbarati@apple.com>
5742 Spread's effects are modeled incorrectly both in AI and in Clobberize
5743 https://bugs.webkit.org/show_bug.cgi?id=181867
5744 <rdar://problem/36290415>
5746 Reviewed by Michael Saboff.
5748 * stress/ai-needs-to-model-spreads-effects.js: Added.
5749 (try.p.Symbol.iterator):
5752 * stress/clobberize-needs-to-model-spread-effects.js: Added.
5755 (a.Symbol.iterator):
5757 2018-01-19 Yusuke Suzuki <utatane.tea@gmail.com>
5759 Unreviewed, reduce count of iteration to fix timing out debug JSC test
5760 https://bugs.webkit.org/show_bug.cgi?id=181535
5762 * stress/inserted-recovery-with-set-last-index.js:
5764 2018-01-17 Yusuke Suzuki <utatane.tea@gmail.com>
5766 [DFG][FTL] Introduce PhantomNewRegexp and RegExpExecNonGlobalOrSticky
5767 https://bugs.webkit.org/show_bug.cgi?id=181535
5769 Reviewed by Saam Barati.
5771 * stress/inserted-recovery-with-set-last-index.js: Added.
5774 * stress/materialize-regexp-at-osr-exit.js: Added.
5777 * stress/materialize-regexp-cyclic-regexp-at-osr-exit.js: Added.
5780 * stress/materialize-regexp-cyclic-regexp.js: Added.
5784 * stress/materialize-regexp-cyclic.js: Added.
5788 * stress/materialize-regexp-referenced-from-phantom-regexp-cyclic.js: Added.
5792 * stress/materialize-regexp-referenced-from-phantom-regexp.js: Added.
5796 * stress/materialize-regexp.js: Added.
5799 * stress/phantom-regexp-regexp-exec.js: Added.
5802 * stress/phantom-regexp-string-match.js: Added.
5805 * stress/regexp-last-index-sinking.js: Added.
5809 2018-01-17 Saam Barati <sbarati@apple.com>
5811 Disable Atomics when SharedArrayBuffer isn’t enabled
5812 https://bugs.webkit.org/show_bug.cgi?id=181572
5813 <rdar://problem/36553206>
5815 Reviewed by Michael Saboff.
5817 * stress/isLockFree.js:
5819 2018-01-17 Saam Barati <sbarati@apple.com>
5821 DFG::Node::convertToConstant needs to clear the varargs flags
5822 https://bugs.webkit.org/show_bug.cgi?id=181697
5823 <rdar://problem/36497332>
5825 Reviewed by Yusuke Suzuki.
5827 * stress/dfg-node-convert-to-constant-must-clear-varargs-flags.js: Added.
5832 2018-01-16 Ryan Haddad <ryanhaddad@apple.com>
5834 Unreviewed, rolling out r226937.
5836 Tests added with this change are failing due to a missing
5841 "[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast
5843 https://bugs.webkit.org/show_bug.cgi?id=181182
5844 https://trac.webkit.org/changeset/226937
5846 2018-01-13 Caio Lima <ticaiolima@gmail.com>
5848 [JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
5849 https://bugs.webkit.org/show_bug.cgi?id=181182
5851 Reviewed by Darin Adler.
5854 * stress/big-int-constructor.js:
5855 * stress/big-int-prototype-to-string-cast-overflow.js: Added.
5857 (assertThrowRangeError):
5858 * stress/number-prototype-to-string-cast-overflow.js: Added.
5860 (assertThrowRangeError):
5862 2018-01-12 Saam Barati <sbarati@apple.com>
5864 CheckStructure can be incorrectly subsumed by CheckStructureOrEmpty
5865 https://bugs.webkit.org/show_bug.cgi?id=181177
5866 <rdar://problem/36205704>
5868 Reviewed by Yusuke Suzuki.
5870 * stress/check-structure-ir-ensures-empty-does-not-flow-through.js: Added.
5871 (runNearStackLimit.t):
5872 (runNearStackLimit):
5876 2018-01-12 Saam Barati <sbarati@apple.com>
5878 Each variant of a polymorphic inlined call should be exitOK at the top of the block
5879 https://bugs.webkit.org/show_bug.cgi?id=181562
5880 <rdar://problem/36445624>
5882 Reviewed by Yusuke Suzuki.
5884 * stress/each-block-at-top-of-polymorphic-call-inlining-should-be-exitOK.js: Added.
5888 2018-01-11 Saam Barati <sbarati@apple.com>
5890 When inserting Unreachable in byte code parser we need to flush all the right things
5891 https://bugs.webkit.org/show_bug.cgi?id=181509
5892 <rdar://problem/36423110>
5894 Reviewed by Mark Lam.
5896 * stress/proper-flushing-when-we-insert-unreachable-after-force-exit-in-bytecode-parser.js: Added.
5898 2018-01-11 Saam Barati <sbarati@apple.com>
5900 JITMathIC code in the FTL is wrong when code gets duplicated
5901 https://bugs.webkit.org/show_bug.cgi?id=181525
5902 <rdar://problem/36351993>
5904 Reviewed by Michael Saboff and Keith Miller.
5906 * stress/allow-math-ic-b3-code-duplication.js: Added.
5908 2018-01-11 Saam Barati <sbarati@apple.com>
5910 Our for-in caching is wrong when we add indexed properties on things in the prototype chain
5911 https://bugs.webkit.org/show_bug.cgi?id=181508
5913 Reviewed by Yusuke Suzuki.
5915 * stress/for-in-prototype-with-indexed-properties-should-prevent-caching.js: Added.
5922 2018-01-09 Mark Lam <mark.lam@apple.com>
5924 ASSERTION FAILED: pair.second->m_type & PropertyNode::Getter
5925 https://bugs.webkit.org/show_bug.cgi?id=181388
5926 <rdar://problem/36349351>
5928 Reviewed by Saam Barati.
5930 * stress/regress-181388.js: Added.
5932 2018-01-08 JF Bastien <jfbastien@apple.com>
5934 WebAssembly: mask indexed accesses to Table
5935 https://bugs.webkit.org/show_bug.cgi?id=181412
5936 <rdar://problem/36363236>
5938 Reviewed by Saam Barati.
5940 Update error messages.
5942 * wasm/js-api/table.js:
5943 (assert.throws.WebAssembly.Table.prototype.grow):
5945 2018-01-08 Ryan Haddad <ryanhaddad@apple.com>
5947 Disable SharedArrayBuffer tests missed in r226386.
5948 https://bugs.webkit.org/show_bug.cgi?id=181266
5950 Unreviewed test gardening.
5954 2018-01-06 Yusuke Suzuki <utatane.tea@gmail.com>
5956 Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
5957 https://bugs.webkit.org/show_bug.cgi?id=181321
5959 Reviewed by Saam Barati.
5961 * stress/bound-function-does-not-have-caller-and-arguments.js: Added.
5966 2018-01-05 Ryan Haddad <ryanhaddad@apple.com>
5968 Unreviewed, attempt to fix test262 after r226386.
5972 2018-01-04 Yusuke Suzuki <utatane.tea@gmail.com>
5974 [DFG] Define defs for MapSet/SetAdd to participate in CSE
5975 https://bugs.webkit.org/show_bug.cgi?id=179911
5977 Reviewed by Saam Barati.
5979 In addition to these tests, map-set-cse.js and set-add-cse.js work.
5981 * stress/map-set-change-get.js: Added.
5984 * stress/map-set-create-bucket.js: Added.
5987 * stress/set-add-create-bucket.js: Added.
5990 2018-01-03 Michael Saboff <msaboff@apple.com>
5992 Disable SharedArrayBuffers from Web API
5993 https://bugs.webkit.org/show_bug.cgi?id=181266
5995 Reviewed by Saam Barati.
5997 Disabled SharedArrayBuffer tests.
5999 * stress/SharedArrayBuffer-opt.js:
6000 * stress/SharedArrayBuffer.js:
6001 * stress/array-buffer-byte-length.js:
6002 * stress/atomics-add-uint32.js:
6003 * stress/atomics-known-int-use.js:
6004 * stress/atomics-neg-zero.js:
6005 * stress/atomics-store-return.js:
6006 * stress/lars-sab-workers.js:
6007 * stress/regress-159779-1.js:
6008 * stress/regress-159779-2.js:
6009 * stress/regress-170473.js:
6012 2018-01-03 Caio Lima <ticaiolima@gmail.com>
6014 [ESNext][BigInt] Failing test stress/big-int-constructor-oom.js into MIPS
6015 https://bugs.webkit.org/show_bug.cgi?id=181258
6017 Reviewed by Antonio Gomes.
6019 * stress/big-int-constructor-gc.js:
6020 * stress/big-int-constructor-oom.js:
6022 2018-01-03 Robin Morisset <rmorisset@apple.com>
6024 Inlining of a function that ends in op_unreachable crashes
6025 https://bugs.webkit.org/show_bug.cgi?id=181027
6027 Reviewed by Filip Pizlo.
6029 * stress/inlining-unreachable.js: Added.
6034 2018-01-02 Saam Barati <sbarati@apple.com>
6036 Incorrect assertion inside AccessCase
6037 https://bugs.webkit.org/show_bug.cgi?id=181200
6038 <rdar://problem/35494754>
6040 Reviewed by Yusuke Suzuki.
6042 * stress/setter-same-base-and-rhs-invalid-assertion-inside-access-case.js: Added.
6047 2018-01-02 Caio Lima <ticaiolima@gmail.com>
6049 [ESNext][BigInt] Implement BigIntConstructor and BigIntPrototype
6050 https://bugs.webkit.org/show_bug.cgi?id=175359
6052 Reviewed by Yusuke Suzuki.
6055 * stress/big-int-as-key.js: Added.
6056 * stress/big-int-constructor-gc.js: Added.
6057 * stress/big-int-constructor-oom.js: Added.
6058 * stress/big-int-constructor-properties.js: Added.
6059 * stress/big-int-constructor-prototype-prop-descriptor.js: Added.
6060 * stress/big-int-constructor-prototype.js: Added.
6061 * stress/big-int-constructor.js: Added.
6062 * stress/big-int-function-apply.js:
6063 * stress/big-int-length.js: Added.
6064 * stress/big-int-prop-descriptor.js: Added.
6065 * stress/big-int-proto-constructor.js: Added.
6066 * stress/big-int-proto-name.js: Added.
6067 * stress/big-int-prototype-properties.js: Added.
6068 * stress/big-int-prototype-proto.js: Added.
6069 * stress/big-int-prototype-value-of.js: Added.
6070 * stress/big-int-prototype-symbol-to-string-tag.js: Added.
6071 * stress/big-int-prototype-to-string-apply.js: Added.
6072 * stress/big-int-to-object.js: Added.
6073 * stress/big-int-to-string.js: Added.
6075 2017-12-28 Saam Barati <sbarati@apple.com>
6077 Assertion used to determine if something is an async generator is wrong
6078 https://bugs.webkit.org/show_bug.cgi?id=181168
6079 <rdar://problem/35640560>
6081 Reviewed by Yusuke Suzuki.
6083 * stress/async-generator-assertion.js: Added.
6085 2017-12-21 Guillaume Emont <guijemont@igalia.com>
6087 Skip stress/splay-flash-access tests on memory limited platforms
6088 https://bugs.webkit.org/show_bug.cgi?id=181086
6090 Reviewed by Carlos Alberto Lopez Perez.
6092 These tests use about 185M of memory, and occasionally get OOM-killed
6093 on memory limited platforms.
6095 * stress/splay-flash-access-1ms.js:
6096 * stress/splay-flash-access.js:
6098 2017-12-21 Guillaume Emont <guijemont@igalia.com>
6100 Skip slow jsc tests on embedded platforms
6101 https://bugs.webkit.org/show_bug.cgi?id=180937
6103 Reviewed by Carlos Alberto Lopez Perez.
6105 The tests typeProfiler/deltablue-for-of.js and
6106 typeProfiler/getter-richards.js take a very long time in the
6107 ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
6108 thus always timeout. They should be skipped on these platforms.
6110 * typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
6111 * typeProfiler/getter-richards.js: Skip on arm*/mips.
6113 2017-12-19 Yusuke Suzuki <utatane.tea@gmail.com>
6115 [JSC] Do not check isValid() in op_new_regexp
6116 https://bugs.webkit.org/show_bug.cgi?id=180970
6118 Reviewed by Saam Barati.
6120 * stress/regexp-syntax-error-invalid-flags.js: Added.
6123 2017-12-18 Guillaume Emont <guijemont@igalia.com>
6125 Skip stress/call-apply-exponential-bytecode-size.js unless x86-64 or arm64
6126 https://bugs.webkit.org/show_bug.cgi?id=180712
6128 Reviewed by Michael Catanzaro.
6130 stress/call-apply-exponential-bytecode-size.js crashes if the
6131 ExecutableAllocator's fixedExecutableMemoryPoolSize is less than 64
6132 MB. Currently it is 64 MB or more only on x86-64 and arm64, so we
6133 should skip the test on other platforms.
6135 * stress/call-apply-exponential-bytecode-size.js:
6137 2017-12-17 Yusuke Suzuki <utatane.tea@gmail.com>
6139 [FTL] NewArrayBuffer should be sinked if it is only used for spreading
6140 https://bugs.webkit.org/show_bug.cgi?id=179762
6142 Reviewed by Saam Barati.
6144 * stress/call-varargs-double-new-array-buffer.js: Added.
6148 * stress/call-varargs-spread-new-array-buffer.js: Added.
6152 * stress/call-varargs-spread-new-array-buffer2.js: Added.
6156 * stress/forward-varargs-double-new-array-buffer.js: Added.
6162 * stress/new-array-buffer-sinking-osrexit.js: Added.
6165 * stress/new-array-with-spread-double-new-array-buffer.js: Added.
6168 * stress/new-array-with-spread-with-phantom-new-array-buffer.js: Added.
6172 * stress/phantom-new-array-buffer-forward-varargs.js: Added.
6185 * stress/phantom-new-array-buffer-forward-varargs2.js: Added.
6191 * stress/phantom-new-array-buffer-osr-exit.js: Added.
6198 2017-12-14 Saam Barati <sbarati@apple.com>
6200 The CleanUp after LICM is erroneously removing a Check
6201 https://bugs.webkit.org/show_bug.cgi?id=180852
6202 <rdar://problem/36063494>
6204 Reviewed by Filip Pizlo.
6206 * stress/dont-run-cleanup-after-licm.js: Added.
6208 2017-12-14 Michael Saboff <msaboff@apple.com>
6210 REGRESSION (r225695): Repro crash on yahoo login page
6211 https://bugs.webkit.org/show_bug.cgi?id=180761
6213 Reviewed by JF Bastien.
6215 New regression test.
6217 * stress/regress-180761.js: Added.
6219 2017-12-13 Keith Miller <keith_miller@apple.com>
6221 JSObjects should have a mask for loading indexed properties
6222 https://bugs.webkit.org/show_bug.cgi?id=180768
6224 Reviewed by Mark Lam.
6226 * stress/int16-put-by-val-in-and-out-of-bounds.js:
6229 2017-12-13 Saam Barati <sbarati@apple.com>
6231 Arrow functions need their own structure because they have different properties than sloppy functions
6232 https://bugs.webkit.org/show_bug.cgi?id=180779
6233 <rdar://problem/35814591>
6235 Reviewed by Mark Lam.
6237 * stress/arrow-function-needs-its-own-structure.js: Added.
6243 2017-12-13 Saam Barati <sbarati@apple.com>
6245 Fix how JSFunction handles "caller" and "arguments" for functions that don't have those properties
6246 https://bugs.webkit.org/show_bug.cgi?id=163579
6247 <rdar://problem/35455798>
6249 Reviewed by Mark Lam.
6251 * stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Added.
6256 (i.test1.async.foo):
6260 2017-12-13 Saam Barati <sbarati@apple.com>
6262 TypeCheckHoistingPhase needs to emit a CheckStructureOrEmpty if it's doing it for |this|
6263 https://bugs.webkit.org/show_bug.cgi?id=180734
6264 <rdar://problem/35640547>
6266 Reviewed by Yusuke Suzuki.
6268 * stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js: Added.
6269 (__isPropertyOfType):
6272 (__getRandomObject):
6278 2017-12-12 Saam Barati <sbarati@apple.com>
6280 We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize
6281 https://bugs.webkit.org/show_bug.cgi?id=180725
6282 <rdar://problem/35970511>
6284 Reviewed by Michael Saboff.
6286 * stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added.
6291 2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com>
6293 [JSC] Implement optimized WeakMap and WeakSet
6294 https://bugs.webkit.org/show_bug.cgi?id=179929
6296 Reviewed by Saam Barati.
6298 * microbenchmarks/weak-map-key.js:
6299 * microbenchmarks/weak-set-key.js: Copied from JSTests/microbenchmarks/weak-map-key.js.
6302 (let.start.Date.now):
6303 * stress/basic-weakmap.js: Added.
6306 * stress/basic-weakset.js: Added.
6309 * stress/weakmap-cse-set-break.js: Added.
6312 * stress/weakmap-cse.js: Added.
6315 * stress/weakmap-gc.js: Added.
6317 * stress/weakset-cse-add-break.js: Added.
6320 * stress/weakset-cse.js: Added.
6323 * stress/weakset-gc.js: Added.
6328 2017-12-12 Saam Barati <sbarati@apple.com>
6330 ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices
6331 https://bugs.webkit.org/show_bug.cgi?id=180723
6332 <rdar://problem/35859726>
6334 Reviewed by JF Bastien.
6336 * stress/get-my-argument-by-val-constant-folding.js: Added.
6340 2017-12-12 Caio Lima <ticaiolima@gmail.com>
6342 [ESNext][BigInt] Implement BigInt literals and JSBigInt
6343 https://bugs.webkit.org/show_bug.cgi?id=179000
6345 Reviewed by Darin Adler and Yusuke Suzuki.
6347 * bigIntTests.yaml: Added.
6348 * stress/big-int-literal-line-terminator.js: Added.
6349 * stress/big-int-literals.js: Added.
6350 * stress/big-int-operations-error.js: Added.
6351 * stress/big-int-type-of.js: Added.
6352 * stress/big-int-white-space-trailing-leading.js: Added.
6353 * stress/big-int-function-apply.js: Added.
6355 2017-12-11 Saam Barati <sbarati@apple.com>
6357 We need to disableCaching() in ErrorInstance when we materialize properties
6358 https://bugs.webkit.org/show_bug.cgi?id=180343
6359 <rdar://problem/35833002>
6361 Reviewed by Mark Lam.
6363 * stress/disable-caching-when-lazy-materializing-error-property-on-put.js: Added.
6367 (storeToStackAlreadyMaterialized):
6369 2017-12-05 JF Bastien <jfbastien@apple.com>
6371 WebAssembly: don't eagerly checksum
6372 https://bugs.webkit.org/show_bug.cgi?id=180441
6373 <rdar://problem/35156628>
6375 Reviewed by Saam Barati.
6377 Checksum is now disabled, so tests only have <?> as the module
6380 * wasm/function-tests/nameSection.js:
6381 * wasm/function-tests/stack-overflow.js:
6382 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
6383 (assertOverflows.assertThrows):
6385 * wasm/function-tests/stack-trace.js:
6387 2017-12-04 JF Bastien <jfbastien@apple.com>
6389 Proxy all functions, except the $ objects
6390 https://bugs.webkit.org/show_bug.cgi?id=180375
6392 Reviewed by Saam Barati.
6394 It looks like this test may have broken some executions because I
6395 call some internal objects. Explicitly ignore objects whose name
6396 starts with "$" because it's a bad idea anyways.
6398 * stress/proxy-all-the-parameters.js:
6402 2017-12-04 Saam Barati <sbarati@apple.com>
6404 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
6405 https://bugs.webkit.org/show_bug.cgi?id=180366
6406 <rdar://problem/35685877>
6408 Reviewed by Michael Saboff.
6410 * stress/ftl-tail-call-throw-exception-from-slow-path-recover-stack-values.js: Added.
6412 (test1.base.getParentStaticValue):
6414 (test1.__v_24888.prototype.set prop):
6416 (test2.base.getParentStaticValue):
6418 (test2.__v_24888.prototype.set prop):
6422 2017-12-01 JF Bastien <jfbastien@apple.com>
6424 Try proxying all function arguments
6425 https://bugs.webkit.org/show_bug.cgi?id=180306
6427 Reviewed by Saam Barati.
6429 * stress/proxy-all-the-parameters.js: Added.
6436 (let.o.of.getObjects.let.f.of.getFunctions.catch):
6438 2017-12-01 JF Bastien <jfbastien@apple.com>
6440 JavaScriptCore: missing exception checks in Math functions that take more than one argument
6441 https://bugs.webkit.org/show_bug.cgi?id=180297
6442 <rdar://problem/35745556>
6444 Reviewed by Mark Lam.
6446 * stress/math-exceptions.js: Added.
6450 2017-12-01 JF Bastien <jfbastien@apple.com>
6452 JavaScriptCore: add test for weird class static getters
6453 https://bugs.webkit.org/show_bug.cgi?id=180281
6454 <rdar://problem/35592139>
6456 Reviewed by Mark Lam.
6458 I fixed a bug for it in r224927 and didn't add a test. Do so.
6460 * stress/class-static-get-weird.js: Added.
6461 (c.prototype.get name):
6463 (c.prototype.get arguments):
6464 (c.prototype.get caller):
6465 (c.prototype.get length):
6467 2017-12-01 Saam Barati <sbarati@apple.com>
6469 Having a bad time needs to handle ArrayClass indexing type as well
6470 https://bugs.webkit.org/show_bug.cgi?id=180274
6471 <rdar://problem/35667869>
6473 Reviewed by Keith Miller and Mark Lam.
6475 * stress/array-prototype-slow-put-having-a-bad-time-2.js: Added.
6477 * stress/array-prototype-slow-put-having-a-bad-time.js: Added.
6480 2017-12-01 JF Bastien <jfbastien@apple.com>
6482 WebAssembly: restore cached stack limit after out-call
6483 https://bugs.webkit.org/show_bug.cgi?id=179106
6484 <rdar://problem/35337525>
6486 Reviewed by Saam Barati.
6488 * wasm/function-tests/double-instance.js: Added.
6490 (const.imp.get callAnother):
6492 2017-11-30 JF Bastien <jfbastien@apple.com>
6494 WebAssembly: improve stack trace
6495 https://bugs.webkit.org/show_bug.cgi?id=179343
6497 Reviewed by Saam Barati.
6499 Update the tests to follow the new format. Notably, SHA1 module
6500 hash is now included in traces, and stubs are properly identified.
6502 * wasm/assert.js: Add an assertion which matches regular expressions.
6503 * wasm/function-tests/nameSection.js:
6504 * wasm/function-tests/stack-overflow.js:
6505 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
6506 (assertOverflows.assertThrows.wasm.1):
6507 (assertOverflows.assertThrows.wasm.0):
6508 (assertOverflows.assertThrows):
6510 * wasm/function-tests/stack-trace.js:
6511 (import.Builder.from.string_appeared_here.assert): Deleted.
6512 * wasm/function-tests/trap-after-cross-instance-call.js:
6513 (wasmFrameCountFromError):
6514 * wasm/function-tests/trap-load-2.js:
6515 (wasmFrameCountFromError):
6516 * wasm/function-tests/trap-load.js:
6517 (wasmFrameCountFromError):
6519 2017-11-30 Mark Lam <mark.lam@apple.com>
6521 jsc shell's flashHeapAccess() should not do JS work after releasing access to the heap.
6522 https://bugs.webkit.org/show_bug.cgi?id=180219
6523 <rdar://problem/35696536>
6525 Reviewed by Filip Pizlo.
6527 * stress/regress-180219.js: Added.
6529 2017-11-30 Yusuke Suzuki <utatane.tea@gmail.com>
6531 [DFG][FTL] operationHasIndexedProperty does not consider negative int32_t
6532 https://bugs.webkit.org/show_bug.cgi?id=180190
6534 Reviewed by Mark Lam.
6536 * stress/operation-in-may-have-negative-int32-array-storage.js: Added.
6539 * stress/operation-in-may-have-negative-int32-contiguous-array.js: Added.
6542 * stress/operation-in-may-have-negative-int32-double-array.js: Added.
6545 * stress/operation-in-may-have-negative-int32-generic-array.js: Added.
6548 * stress/operation-in-may-have-negative-int32-int32-array.js: Added.
6551 * stress/operation-in-may-have-negative-int32.js: Added.
6554 * stress/operation-in-negative-int32-cast.js: Added.
6558 2017-11-28 JF Bastien <jfbastien@apple.com>
6560 Strict and sloppy functions shouldn't share structure
6561 https://bugs.webkit.org/show_bug.cgi?id=180103
6562 <rdar://problem/35667847>
6564 Reviewed by Saam Barati.
6566 * stress/get-by-id-strict-arguments.js: Added. Used to not throw
6567 because the IC was wrong.
6572 * stress/get-by-id-strict-callee.js: Added. Not strictly necessary
6573 in this patch, but may as well test odd strict mode corner cases.
6577 * stress/get-by-id-strict-caller.js: Added. Also IC'd wrong.
6582 * stress/get-by-id-strict-nested-arguments-2.js: Added. Same as
6583 next file, but with invalidation of the FunctionExecutable's
6584 singletonFunction() to hit SpeculativeJIT::compileNewFunction's
6591 * stress/get-by-id-strict-nested-arguments.js: Added. Make sure
6592 strict nesting works correctly.
6596 * stress/strict-function-structure.js: Added. The test used to
6597 assert in objectProtoFuncHasOwnProperty.
6601 * stress/strict-nested-function-structure.js: Added. Nesting.
6607 2017-11-29 Robin Morisset <rmorisset@apple.com>
6609 The recursive tail call optimisation is wrong on closures
6610 https://bugs.webkit.org/show_bug.cgi?id=179835
6612 Reviewed by Saam Barati.
6614 * stress/closure-recursive-tail-call.js: Added.
6617 2017-11-27 JF Bastien <jfbastien@apple.com>
6619 JavaScript rest function parameter with negative index leads to bad DFG abstract interpretation
6620 https://bugs.webkit.org/show_bug.cgi?id=180051
6621 <rdar://problem/35614371>
6623 Reviewed by Saam Barati.
6625 * stress/rest-parameter-negative.js: Added.
6631 2017-11-27 Saam Barati <sbarati@apple.com>
6633 Spread can escape when CreateRest does not
6634 https://bugs.webkit.org/show_bug.cgi?id=180057
6635 <rdar://problem/35676119>
6637 Reviewed by JF Bastien.
6639 * stress/spread-escapes-but-create-rest-does-not.js: Added.
6645 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
6647 [DFG] Add NormalizeMapKey DFG IR
6648 https://bugs.webkit.org/show_bug.cgi?id=179912
6650 Reviewed by Saam Barati.
6652 * stress/map-untyped-normalize-cse.js: Added.
6655 * stress/map-untyped-normalize.js: Added.
6658 * stress/set-untyped-normalize-cse.js: Added.
6660 (set return.set has.set has):
6661 * stress/set-untyped-normalize.js: Added.
6663 (set return.set has):
6665 2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
6667 [FTL] Support DeleteById and DeleteByVal
6668 https://bugs.webkit.org/show_bug.cgi?id=180022
6670 Reviewed by Saam Barati.
6672 * stress/delete-by-id.js: Added.
6676 * stress/delete-by-val-ftl.js: Added.
6681 2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
6683 [DFG] Introduce {Set,Map,WeakMap}Fields
6684 https://bugs.webkit.org/show_bug.cgi?id=179925
6686 Reviewed by Saam Barati.
6688 * stress/map-set-clobber-map-get.js: Added.
6691 * stress/map-set-does-not-clobber-set-has.js: Added.
6693 * stress/map-set-does-not-clobber-weak-map-get.js: Added.
6696 * stress/set-add-clobber-set-has.js: Added.
6698 * stress/set-add-does-not-clobber-map-get.js: Added.
6701 2017-11-24 Mark Lam <mark.lam@apple.com>
6703 Move unsafe jsc shell test functions to the $vm object.
6704 https://bugs.webkit.org/show_bug.cgi?id=179980
6706 Reviewed by Yusuke Suzuki.
6708 * controlFlowProfiler/driver/driver.js:
6709 * controlFlowProfiler/execution-count.js:
6710 * controlFlowProfiler/if-statement.js:
6711 * controlFlowProfiler/loop-statements.js:
6712 * controlFlowProfiler/switch-statements.js:
6713 * controlFlowProfiler/test-jit.js:
6714 * exceptionFuzz/3d-cube.js:
6715 * exceptionFuzz/date-format-xparb.js:
6716 * exceptionFuzz/earley-boyer.js:
6717 * heapProfiler/basic-edges.js:
6718 * heapProfiler/property-edge-types.js:
6719 * microbenchmarks/try-get-by-id-basic.js:
6720 * microbenchmarks/try-get-by-id-polymorphic.js:
6721 * modules/namespace-object-try-get.js:
6722 * stress/argument-count-bytecode.js:
6723 * stress/argument-intrinsic-basic.js:
6724 * stress/argument-intrinsic-inlining-use-caller-arg.js:
6725 * stress/argument-intrinsic-inlining-with-result-escape.js:
6726 * stress/argument-intrinsic-inlining-with-vararg-with-enough-arguments.js:
6727 * stress/argument-intrinsic-inlining-with-vararg.js:
6728 * stress/argument-intrinsic-nested-inlining.js:
6729 * stress/argument-intrinsic-not-convert-to-get-argument.js:
6730 * stress/argument-intrinsic-with-stack-write.js:
6731 * stress/arity-mismatch-get-argument.js:
6732 * stress/array-message-passing.js:
6733 * stress/array-push-with-force-exit.js:
6734 * stress/check-dom-with-signature.js:
6735 * stress/check-sub-class.js:
6736 * stress/compare-eq-incomplete-profile.js:
6737 * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js:
6738 * stress/do-eval-virtual-call-correctly.js:
6739 * stress/dom-jit-with-poly-proto.js:
6740 * stress/domjit-exception-ic.js:
6741 * stress/domjit-exception.js:
6742 * stress/domjit-getter-complex-with-incorrect-object.js:
6743 * stress/domjit-getter-complex.js:
6744 * stress/domjit-getter-poly.js:
6745 * stress/domjit-getter-proto.js:
6746 * stress/domjit-getter-super-poly.js:
6747 * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js:
6748 * stress/domjit-getter-type-check.js:
6749 * stress/domjit-getter.js:
6750 * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js:
6751 * stress/for-in-proxy-target-changed-structure.js:
6752 * stress/for-in-proxy.js:
6753 * stress/generational-opaque-roots.js:
6754 * stress/global-const-redeclaration-setting-2.js:
6755 * stress/global-const-redeclaration-setting-3.js:
6756 * stress/global-const-redeclaration-setting-4.js:
6757 * stress/global-const-redeclaration-setting-5.js:
6758 * stress/global-const-redeclaration-setting.js:
6759 * stress/import-basic.js:
6760 * stress/import-from-eval.js:
6761 * stress/import-reject-with-exception.js:
6762 * stress/import-syntax.js:
6763 * stress/impure-get-own-property-slot-inline-cache.js:
6764 * stress/is-constructor.js:
6765 * stress/istypedarrayview-intrinsic.js:
6766 * stress/jsc-setImpureGetterDelegate-on-bad-type.js:
6767 * stress/jsc-test-functions-should-be-more-robust.js:
6768 * stress/object-toString-with-proxy.js:
6769 * stress/poly-proto-custom-value-and-accessor.js:
6770 * stress/proxy-inline-cache.js:
6771 * stress/re-execute-error-module.js:
6772 * stress/regress-150532.js:
6773 * stress/regress-156992.js:
6774 * stress/regress-179619.js:
6775 * stress/resources/shadow-chicken-support.js:
6776 * stress/runtime-array.js:
6777 * stress/sampling-profiler-microtasks.js:
6778 * stress/shadow-chicken-enabled.js:
6779 * stress/spread-correct-global-object-on-exception.js:
6780 * stress/super-get-by-id.js:
6781 * stress/tailCallForwardArguments.js:
6782 * stress/to-object-intrinsic-boolean-edge.js:
6783 * stress/to-object-intrinsic-null-or-undefined-edge.js:
6784 * stress/to-object-intrinsic-number-edge.js:
6785 * stress/to-object-intrinsic-object-edge.js:
6786 * stress/to-object-intrinsic-string-edge.js:
6787 * stress/to-object-intrinsic-symbol-edge.js:
6788 * stress/to-object-intrinsic.js:
6789 * stress/try-catch-custom-getter-as-get-by-id.js:
6790 * stress/try-get-by-id-poly-proto.js:
6791 * stress/try-get-by-id-should-spill-registers-dfg.js:
6792 * stress/try-get-by-id.js:
6793 * typeProfiler/arrow-functions.js:
6794 * typeProfiler/basic.js:
6795 * typeProfiler/captured.js:
6796 * typeProfiler/classes.js:
6797 * typeProfiler/dfg-jit-optimizations.js:
6798 * typeProfiler/dictionary-mode.js:
6799 * typeProfiler/es6-block-scoping.js:
6800 * typeProfiler/es6-classes.js:
6801 * typeProfiler/inheritance.js:
6802 * typeProfiler/int52-dfg.js:
6803 * typeProfiler/loop.js:
6804 * typeProfiler/optional-fields.js:
6805 * typeProfiler/overflow.js:
6806 * typeProfiler/return.js:
6807 * typeProfiler/symbol.js:
6808 * typeProfiler/weird-prototype-chain.js:
6810 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
6812 [DFG][FTL] Support MapSet / SetAdd intrinsics
6813 https://bugs.webkit.org/show_bug.cgi?id=179858
6815 Reviewed by Saam Barati.
6817 * microbenchmarks/map-has-and-set.js: Added.
6819 * stress/map-set-check-failure.js: Added.
6823 * stress/map-set-cse.js: Added.
6826 * stress/set-add-check-failure.js: Added.
6830 * stress/set-add-cse.js: Added.
6833 2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
6835 [JSC] Allow poly proto for intrinsic getters
6836 https://bugs.webkit.org/show_bug.cgi?id=179550
6838 Reviewed by Saam Barati.
6840 This change is also tested by existing tests.
6842 1. stress/intrinsic-getter-with-poly-proto.js
6843 2. stress/poly-proto-intrinsic-getter-correctness.js
6845 * stress/intrinsic-getter-with-poly-proto-getter-change.js: Added.
6847 (makePolyProtoObject.foo.C):
6848 (makePolyProtoObject.foo):
6849 (makePolyProtoObject):
6851 * stress/intrinsic-getter-with-poly-proto-proto-change.js: Added.
6853 (makePolyProtoObject.foo.C):
6854 (makePolyProtoObject.foo):
6855 (makePolyProtoObject):
6858 2017-11-20 Guillaume Emont <guijemont@igalia.com>
6860 Skip stress/unshiftCountSlowCase-correct-postCapacity.js on embedded Linux
6861 https://bugs.webkit.org/show_bug.cgi?id=179744
6863 Reviewed by Michael Catanzaro.
6865 This test uses too much memory for our buildbots on these platforms
6866 and gets OOM-killed.
6868 * stress/unshiftCountSlowCase-correct-postCapacity.js:
6869 Skip if $memoryLimited and linux.
6871 2017-11-17 JF Bastien <jfbastien@apple.com>
6873 WebAssembly JS API: throw when a promise can't be created
6874 https://bugs.webkit.org/show_bug.cgi?id=179826
6875 <rdar://problem/35455813>
6877 Reviewed by Mark Lam.
6879 Test WebAssembly.{compile,instantiate} where promise creation
6880 fails because of a stack overflow.
6882 * wasm/js-api/promise-stack-overflow.js: Added.
6883 (const.runNearStackLimit.f.const.t):
6884 (async.testCompile):
6885 (async.testInstantiate):
6887 2017-11-16 Yusuke Suzuki <utatane.tea@gmail.com>
6889 Unreviewed, mark regress-178385.js as memory exhausting
6891 * stress/regress-178385.js:
6893 2017-11-16 Ryan Haddad <ryanhaddad@apple.com>
6895 Mark test262/test/language/statements/class/definition/fn-name-static-precedence.js as passing after r224927.
6897 Unreviewed test gardening.
6901 2017-11-16 Robin Morisset <rmorisset@apple.com>
6903 REGRESSION (r224592): oss-fuzz: jsc: Null-dereference READ in JSC::JSCell::isObject (4216)
6904 https://bugs.webkit.org/show_bug.cgi?id=179763
6905 <rdar://problem/35550513>
6907 Reviewed by Keith Miller.
6909 Just adding a slightly cleaned-up version of the original fuzzer-found test.
6911 * stress/tdz-this-in-try-catch.js: Added.
6915 2017-11-14 Yusuke Suzuki <utatane.tea@gmail.com>
6917 [DFG][FTL] Support Array::DirectArguments with OutOfBounds
6918 https://bugs.webkit.org/show_bug.cgi?id=179594
6920 Reviewed by Saam Barati.
6922 * stress/direct-arguments-in-bounds-to-out-of-bounds.js: Added.
6925 * stress/direct-arguments-out-of-bounds-watchpoint.js: Added.
6929 2017-11-14 Saam Barati <sbarati@apple.com>
6931 We need to set topCallFrame when calling Wasm::Memory::grow from the JIT
6932 https://bugs.webkit.org/show_bug.cgi?id=179639
6933 <rdar://problem/35513018>
6935 Reviewed by JF Bastien.
6937 * wasm/function-tests/grow-memory-cause-gc.js: Added.
6941 2017-11-13 Mark Lam <mark.lam@apple.com>
6943 Add more overflow check book-keeping for MarkedArgumentBuffer.
6944 https://bugs.webkit.org/show_bug.cgi?id=179634
6945 <rdar://problem/35492517>
6947 Reviewed by Saam Barati.
6949 * stress/regress-179634.js: Added.
6951 2017-11-13 Mark Lam <mark.lam@apple.com>
6953 Make the jsc shell loadGetterFromGetterSetter() function more robust.
6954 https://bugs.webkit.org/show_bug.cgi?id=179619
6955 <rdar://problem/35492518>
6957 Reviewed by Saam Barati.
6959 * stress/regress-179619.js: Added.
6961 2017-11-12 Mark Lam <mark.lam@apple.com>
6963 We should ensure that operationStrCat2 and operationStrCat3 are never passed Symbols as arguments.
6964 https://bugs.webkit.org/show_bug.cgi?id=179562
6965 <rdar://problem/35467022>
6967 Reviewed by Saam Barati.
6969 * regress-179562.js: Added.
6971 2017-11-08 Saam Barati <sbarati@apple.com>
6973 A JSFunction's ObjectAllocationProfile should watch the poly prototype watchpoint so it can clear its object allocation profile
6974 https://bugs.webkit.org/show_bug.cgi?id=177792
6976 Reviewed by Yusuke Suzuki.
6978 * microbenchmarks/poly-proto-clear-js-function-allocation-profile.js: Added.
6980 (foo.Foo.prototype.ensureX):
6985 2017-11-08 Ryan Haddad <ryanhaddad@apple.com>
6987 Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
6988 https://bugs.webkit.org/show_bug.cgi?id=178592
6990 Unreviewed test gardening.
6994 2017-11-08 Robin Morisset <rmorisset@apple.com>
6996 Turn recursive tail calls into loops
6997 https://bugs.webkit.org/show_bug.cgi?id=176601
6999 Reviewed by Saam Barati.
7001 Relanding after https://bugs.webkit.org/show_bug.cgi?id=178834.
7003 Add some simple test that computes factorial in several ways, and other trivial computations.
7004 They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
7005 Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
7006 I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
7007 (which it doesn't if that tail call is transformed into a loop in the unsound cases).
7009 * stress/inline-call-to-recursive-tail-call.js: Added.
7024 2017-11-07 Mark Lam <mark.lam@apple.com>
7026 AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
7027 https://bugs.webkit.org/show_bug.cgi?id=179355
7028 <rdar://problem/35263053>
7030 Reviewed by Saam Barati.
7032 * stress/regress-179355.js: Added.
7034 2017-11-05 Yusuke Suzuki <utatane.tea@gmail.com>
7036 JIT call inline caches should cache calls to objects with getCallData/getConstructData traps
7037 https://bugs.webkit.org/show_bug.cgi?id=144458
7039 Reviewed by Saam Barati.
7041 * microbenchmarks/dfg-internal-function-call.js: Added.
7043 * microbenchmarks/dfg-internal-function-construct.js: Added.
7045 * microbenchmarks/dfg-internal-function-not-handled-call.js: Added.
7047 * microbenchmarks/dfg-internal-function-not-handled-construct.js: Added.
7049 * stress/dfg-internal-function-call.js: Added.
7052 * stress/dfg-internal-function-construct.js: Added.
7055 * stress/internal-function-call.js: Added.
7057 * stress/internal-function-construct.js: Added.
7060 2017-11-05 Per Arne Vollan <pvollan@apple.com>
7062 [Win] Skip stress/regress-178385.js.
7063 https://bugs.webkit.org/show_bug.cgi?id=179298
7065 Unreviewed test gardening.
7067 * stress/regress-178385.js:
7069 2017-11-03 Keith Miller <keith_miller@apple.com>
7071 Add test for ic with side effects
7072 https://bugs.webkit.org/show_bug.cgi?id=179268
7074 Reviewed by Saam Barati.
7076 * stress/put-inline-cache-side-effects.js: Added.
7077 (let.i.of.objs.keys):
7080 2017-11-03 Mark Lam <mark.lam@apple.com>
7082 CachedCall (and its clients) needs overflow checks.
7083 https://bugs.webkit.org/show_bug.cgi?id=179185
7085 Reviewed by JF Bastien.
7087 * stress/regress-179185.js: Added.
7089 2017-11-02 Michael Saboff <msaboff@apple.com>
7091 DFG needs to handle code motion of code in for..in loop bodies
7092 https://bugs.webkit.org/show_bug.cgi?id=179212
7094 Reviewed by Keith Miller.
7096 New regression test.
7098 * stress/for-in-side-effects.js: Added.
7106 2017-11-02 Filip Pizlo <fpizlo@apple.com>
7108 AI does not correctly model the clobber case of ArithClz32
7109 https://bugs.webkit.org/show_bug.cgi?id=179188
7111 Reviewed by Michael Saboff.
7113 * stress/arith-clz32-effects.js: Added.
7117 2017-11-01 Michael Saboff <msaboff@apple.com>
7119 Integer overflow in code generated by LoadVarargs processing in DFG and FTL.
7120 https://bugs.webkit.org/show_bug.cgi?id=179140
7122 Reviewed by Saam Barati.
7124 New regression test.
7126 * stress/regress-179140.js: Added.
7130 2017-11-01 Yusuke Suzuki <utatane.tea@gmail.com>
7132 [JSC] Introduce @toObject
7133 https://bugs.webkit.org/show_bug.cgi?id=178726
7135 Reviewed by Saam Barati.
7137 * stress/array-copywithin.js:
7139 * stress/object-constructor-boolean-edge.js: Added.
7142 * stress/object-constructor-global.js: Added.
7144 * stress/object-constructor-null-edge.js: Added.
7147 * stress/object-constructor-number-edge.js: Added.
7150 * stress/object-constructor-object-edge.js: Added.
7154 * stress/object-constructor-string-edge.js: Added.
7157 * stress/object-constructor-symbol-edge.js: Added.
7160 * stress/object-constructor-undefined-edge.js: Added.
7163 * stress/symbol-array-from.js: Added.
7165 * stress/to-object-intrinsic-boolean-edge.js: Added.
7167 (builtin.createBuiltin):
7168 * stress/to-object-intrinsic-null-or-undefined-edge.js: Added.
7170 * stress/to-object-intrinsic-number-edge.js: Added.
7172 (builtin.createBuiltin):
7173 * stress/to-object-intrinsic-object-edge.js: Added.
7175 (builtin.createBuiltin):
7177 * stress/to-object-intrinsic-string-edge.js: Added.
7179 (builtin.createBuiltin):
7180 * stress/to-object-intrinsic-symbol-edge.js: Added.
7182 (builtin.createBuiltin):
7183 * stress/to-object-intrinsic.js: Added.
7186 (builtin.createBuiltin):
7188 2017-10-27 Yusuke Suzuki <utatane.tea@gmail.com>
7190 [DFG][FTL] Introduce StringSlice
7191 https://bugs.webkit.org/show_bug.cgi?id=178934
7193 Reviewed by Saam Barati.
7195 * microbenchmarks/string-slice-empty.js: Added.
7197 * microbenchmarks/string-slice-one-char.js: Added.
7199 * microbenchmarks/string-slice.js: Added.
7202 2017-10-26 Michael Saboff <msaboff@apple.com>
7204 REGRESSION(r222601): We fail to properly backtrack into a sub pattern of a parenthesis with non-zero minimum
7205 https://bugs.webkit.org/show_bug.cgi?id=178890
7207 Reviewed by Keith Miller.
7209 New regression test.
7211 * stress/regress-178890.js: Added.
7213 2017-10-26 Mark Lam <mark.lam@apple.com>
7215 JSRopeString::RopeBuilder::append() should check for overflows.
7216 https://bugs.webkit.org/show_bug.cgi?id=178385
7217 <rdar://problem/35027468>
7219 Reviewed by Saam Barati.
7221 * stress/regress-178385.js: Added.
7223 2017-10-26 Ryan Haddad <ryanhaddad@apple.com>
7225 Unreviewed, rolling out r223961.
7227 The change that required this has been rolled out.
7231 "Mark test262.yaml/test262/test/language/statements/try/tco-
7232 catch.js as passing."
7233 https://bugs.webkit.org/show_bug.cgi?id=178592
7234 https://trac.webkit.org/changeset/223961
7236 2017-10-25 Commit Queue <commit-queue@webkit.org>
7238 Unreviewed, rolling out r223691 and r223729.
7239 https://bugs.webkit.org/show_bug.cgi?id=178834
7241 Broke Speedometer 2 React-Redux-TodoMVC test case (Requested
7242 by rniwa on #webkit).
7244 Reverted changesets:
7246 "Turn recursive tail calls into loops"
7247 https://bugs.webkit.org/show_bug.cgi?id=176601
7248 https://trac.webkit.org/changeset/223691
7250 "REGRESSION(r223691): DFGByteCodeParser.cpp:1483:83: warning:
7251 comparison is always false due to limited range of data type
7253 https://bugs.webkit.org/show_bug.cgi?id=178543
7254 https://trac.webkit.org/changeset/223729
7256 2017-10-25 Ryan Haddad <ryanhaddad@apple.com>
7258 Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
7259 https://bugs.webkit.org/show_bug.cgi?id=178592
7261 Unreviewed test gardening.
7265 2017-10-24 Yusuke Suzuki <utatane.tea@gmail.com>
7267 [FTL] Support NewStringObject
7268 https://bugs.webkit.org/show_bug.cgi?id=178737
7270 Reviewed by Saam Barati.
7272 * stress/new-string-object.js: Added.
7276 2017-10-15 Yusuke Suzuki <utatane.tea@gmail.com>
7278 [JSC] modules can be visited more than once when resolving bindings through "star" exports as long as the exportName is different each time
7279 https://bugs.webkit.org/show_bug.cgi?id=178308
7281 Reviewed by Mark Lam.
7285 2017-10-23 Yusuke Suzuki <utatane.tea@gmail.com>
7287 [JSC] Use fastJoin in Array#toString
7288 https://bugs.webkit.org/show_bug.cgi?id=178062
7290 Reviewed by Darin Adler.
7292 * microbenchmarks/contiguous-array-to-string.js: Added.
7294 * microbenchmarks/double-array-to-string.js: Added.
7296 * microbenchmarks/int32-array-to-string.js: Added.
7299 2017-10-22 Zan Dobersek <zdobersek@igalia.com>
7301 stress/check-string-ident.js is improperly skipped
7302 https://bugs.webkit.org/show_bug.cgi?id=178642
7304 Reviewed by Saam Barati.
7306 * stress/check-string-ident.js: Drop the defaultNoEagerRun directive
7307 since it enforces the run-jsc-stress-tests script to still set up the
7308 test to run, despite the skip directive that's used before.
7310 2017-10-20 Mark Lam <mark.lam@apple.com>
7312 Add a test case for r214334.
7313 https://bugs.webkit.org/show_bug.cgi?id=169941
7314 <rdar://problem/31221258>
7316 Reviewed by JF Bastien.
7318 * stress/regress-169941.js: Added.
7320 2017-10-19 JF Bastien <jfbastien@apple.com>
7322 WebAssembly: no VM / JS version of everything but Instance
7323 https://bugs.webkit.org/show_bug.cgi?id=177473
7325 Reviewed by Filip Pizlo, Saam Barati.
7327 - Exceeding max on memory growth now returns a range error as per
7328 spec. This is a (very minor) breaking change: it used to throw OOM
7329 error. Update the corresponding test.
7331 * wasm/js-api/memory-grow.js:
7333 * wasm/js-api/table.js:
7336 2017-10-19 Mark Lam <mark.lam@apple.com>
7338 Stringifier::appendStringifiedValue() is missing an exception check.
7339 https://bugs.webkit.org/show_bug.cgi?id=178386
7340 <rdar://problem/35027610>
7342 Reviewed by Saam Barati.
7344 * stress/regress-178386.js: Added.
7346 2017-10-19 Michael Saboff <msaboff@apple.com>
7348 Test262: RegExp/property-escapes/generated/Emoji_Component.js fails with current RegExp Unicode Properties implementation
7349 https://bugs.webkit.org/show_bug.cgi?id=178521
7351 Reviewed by JF Bastien.
7353 * test262.yaml: Enabled test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js as it
7354 now passes with the current version (5.0) of the Emoji spec.
7356 2017-10-19 Robin Morisset <rmorisset@apple.com>
7358 Turn recursive tail calls into loops
7359 https://bugs.webkit.org/show_bug.cgi?id=176601
7361 Reviewed by Saam Barati.
7363 Add some simple test that computes factorial in several ways, and other trivial computations.
7364 They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
7365 Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
7366 I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
7367 (which it doesn't if that tail call is transformed into a loop in the unsound cases).
7369 * stress/inline-call-to-recursive-tail-call.js: Added.
7381 2017-10-18 Mark Lam <mark.lam@apple.com>
7383 RegExpObject::defineOwnProperty() does not need to compare values if no descriptor value is specified.
7384 https://bugs.webkit.org/show_bug.cgi?id=177600
7385 <rdar://problem/34710985>
7387 Reviewed by Saam Barati.
7389 * stress/regress-177600.js: Added.
7391 2017-10-18 Mark Lam <mark.lam@apple.com>
7393 The compiler should always register a structure when it adds its transitionWatchPointSet.
7394 https://bugs.webkit.org/show_bug.cgi?id=178420
7395 <rdar://problem/34814024>
7397 Reviewed by Saam Barati and Filip Pizlo.
7399 * stress/regress-178420.js: Added.
7400 (new.Array.10000.map):
7402 2017-10-18 Yusuke Suzuki <utatane.tea@gmail.com>
7404 [JSC] __proto__ getter should be fast
7405 https://bugs.webkit.org/show_bug.cgi?id=178067
7407 Reviewed by Saam Barati.
7409 * stress/dfg-object-proto-accessor.js: Added.
7413 * stress/dfg-object-proto-getter.js: Added.
7417 * stress/dfg-object-prototype-of.js: Added.
7421 * stress/dfg-reflect-get-prototype-of.js: Added.
7425 * stress/intrinsic-getter-with-poly-proto.js: Added.
7427 (makePolyProtoObject.foo.C):
7428 (makePolyProtoObject.foo):
7429 (makePolyProtoObject):
7431 * stress/object-get-prototype-of-filtered.js: Added.
7436 * stress/object-get-prototype-of-mono-proto.js: Added.
7438 (makePolyProtoObject.foo.C):
7439 (makePolyProtoObject.foo):
7440 (makePolyProtoObject):
7442 * stress/object-get-prototype-of-poly-mono-proto.js: Added.
7444 (makePolyProtoObject.foo.C):
7445 (makePolyProtoObject.foo):
7446 (makePolyProtoObject):
7448 * stress/object-get-prototype-of-poly-proto.js: Added.
7450 (makePolyProtoObject.foo.C):
7451 (makePolyProtoObject.foo):
7452 (makePolyProtoObject):
7454 * stress/object-proto-getter-filtered.js: Added.
7459 * stress/object-proto-getter-poly-mono-proto.js: Added.
7461 (makePolyProtoObject.foo.C):
7462 (makePolyProtoObject.foo):
7463 (makePolyProtoObject):
7465 * stress/object-proto-getter-poly-proto.js: Added.
7467 (makePolyProtoObject.foo.C):
7468 (makePolyProtoObject.foo):
7469 (makePolyProtoObject):
7471 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
7472 * stress/string-proto.js: Added.
7476 2017-10-17 Ryan Haddad <ryanhaddad@apple.com>
7478 Unreviewed, rolling out r223523.
7480 A test for this change is failing on debug JSC bots.
7484 "[JSC] __proto__ getter should be fast"
7485 https://bugs.webkit.org/show_bug.cgi?id=178067
7486 https://trac.webkit.org/changeset/223523
7488 2017-10-10 Yusuke Suzuki <utatane.tea@gmail.com>
7490 [JSC] __proto__ getter should be fast
7491 https://bugs.webkit.org/show_bug.cgi?id=178067
7493 Reviewed by Saam Barati.
7495 * stress/dfg-object-proto-accessor.js: Added.
7499 * stress/dfg-object-proto-getter.js: Added.
7503 * stress/dfg-object-prototype-of.js: Added.
7507 * stress/dfg-reflect-get-prototype-of.js: Added.
7511 * stress/object-get-prototype-of-filtered.js: Added.
7516 * stress/object-get-prototype-of-mono-proto.js: Added.
7518 (makePolyProtoObject.foo.C):
7519 (makePolyProtoObject.foo):
7520 (makePolyProtoObject):
7522 * stress/object-get-prototype-of-poly-mono-proto.js: Added.
7524 (makePolyProtoObject.foo.C):
7525 (makePolyProtoObject.foo):
7526 (makePolyProtoObject):
7528 * stress/object-get-prototype-of-poly-proto.js: Added.
7530 (makePolyProtoObject.foo.C):
7531 (makePolyProtoObject.foo):
7532 (makePolyProtoObject):
7534 * stress/object-proto-getter-filtered.js: Added.
7539 * stress/object-proto-getter-poly-mono-proto.js: Added.
7541 (makePolyProtoObject.foo.C):
7542 (makePolyProtoObject.foo):
7543 (makePolyProtoObject):
7545 * stress/object-proto-getter-poly-proto.js: Added.
7547 (makePolyProtoObject.foo.C):
7548 (makePolyProtoObject.foo):
7549 (makePolyProtoObject):
7551 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
7552 * stress/string-proto.js: Added.
7556 2017-10-14 Yusuke Suzuki <utatane.tea@gmail.com>
7558 Reland "Add Above/Below comparisons for UInt32 patterns"
7559 https://bugs.webkit.org/show_bug.cgi?id=177281
7561 Reviewed by Saam Barati.
7563 * stress/uint32-comparison-jump.js: Added.
7573 * stress/uint32-comparison.js: Added.
7584 2017-10-12 Yusuke Suzuki <utatane.tea@gmail.com>
7586 WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData
7587 https://bugs.webkit.org/show_bug.cgi?id=178210
7589 Reviewed by Saam Barati.
7591 * wasm/function-tests/trap-from-start-async.js:
7592 (async.StartTrapsAsync):
7593 * wasm/function-tests/trap-from-start.js:
7595 * wasm/js-api/web-assembly-function.js:
7596 (assert.eq.Object.getPrototypeOf):
7597 * wasm/js-api/wrapper-function.js:
7598 (return.new.WebAssembly.Module):
7599 (assert.throws.makeInstance): Deleted.
7600 (assert.throws.Bar): Deleted.
7601 (assert.throws): Deleted.
7603 2017-09-29 Filip Pizlo <fpizlo@apple.com>
7605 Enable gigacage on iOS
7606 https://bugs.webkit.org/show_bug.cgi?id=177586
7608 Reviewed by JF Bastien.
7610 Add tests for when Gigacage gets runtime disabled.
7612 * stress/disable-gigacage-arrays.js: Added.
7614 * stress/disable-gigacage-strings.js: Added.
7616 * stress/disable-gigacage-typed-arrays.js: Added.
7619 2017-10-11 Yusuke Suzuki <utatane.tea@gmail.com>
7621 import.meta should not be assignable
7622 https://bugs.webkit.org/show_bug.cgi?id=178202
7624 Reviewed by Saam Barati.
7626 * modules/import-meta-assignment.js: Added.
7628 (SyntaxError.import.meta.can.shouldThrow):
7630 2017-10-11 Saam Barati <sbarati@apple.com>
7632 Unreviewed. Actually skip certain type profiler tests in debug.
7634 * typeProfiler.yaml:
7635 * typeProfiler/deltablue-for-of.js:
7636 * typeProfiler/getter-richards.js:
7638 2017-10-11 Commit Queue <commit-queue@webkit.org>
7640 Unreviewed, rolling out r223113 and r223121.
7641 https://bugs.webkit.org/show_bug.cgi?id=178182
7643 Reintroduced 20% regression on Kraken (Requested by rniwa on
7646 Reverted changesets:
7648 "Enable gigacage on iOS"
7649 https://bugs.webkit.org/show_bug.cgi?id=177586
7650 https://trac.webkit.org/changeset/223113
7652 "Use one virtual allocation for all gigacages and their
7654 https://bugs.webkit.org/show_bug.cgi?id=178050
7655 https://trac.webkit.org/changeset/223121
7657 2017-10-11 Michael Saboff <msaboff@apple.com>
7659 Disable test262 named capture group tests with direct unicode names and with references before definitions
7660 https://bugs.webkit.org/show_bug.cgi?id=178177
7662 Reviewed by Keith Miller.
7664 Bugs to track fixing these test are:
7665 https://bugs.webkit.org/show_bug.cgi?id=178174 -
7666 "Add support in named capture group identifiers for direct surrogate pairs"
7667 https://bugs.webkit.org/show_bug.cgi?id=178175 -
7668 "Test262 failure with Named Capture Groups - using a reference before the group is defined"
7672 2017-10-11 Caio Lima <ticaiolima@gmail.com>
7674 Object properties are undefined in super.call() but not in this.call()
7675 https://bugs.webkit.org/show_bug.cgi?id=177230
7677 Reviewed by Saam Barati.
7679 * stress/super-call-function-subclass.js: Added.
7683 * stress/super-dot-call-and-apply.js: Added.
7687 (A.prototype.apply):
7688 (B.prototype.testSuper):
7690 (const.obj.new.B.string_appeared_here.obj.testSuper.C):
7691 (D.prototype.testSuper):
7694 2017-10-10 Saam Barati <sbarati@apple.com>
7696 The prototype cache should be aware of the Executable it generates a Structure for
7697 https://bugs.webkit.org/show_bug.cgi?id=177907
7699 Reviewed by Filip Pizlo.
7701 * microbenchmarks/dont-confuse-structures-from-different-executable-as-poly-proto.js: Added.
7711 2017-10-09 Yusuke Suzuki <utatane.tea@gmail.com>
7713 `async` should be able to be used as an imported binding name
7714 https://bugs.webkit.org/show_bug.cgi?id=176573
7716 Reviewed by Saam Barati.
7718 * modules/import-default-async.js: Added.
7719 * modules/import-named-async-as.js: Added.
7720 * modules/import-named-async.js: Added.
7721 * modules/import-named-async/target.js: Added.
7722 * modules/import-namespace-async.js: Added.
7725 2017-09-29 Filip Pizlo <fpizlo@apple.com>
7727 Enable gigacage on iOS
7728 https://bugs.webkit.org/show_bug.cgi?id=177586
7730 Reviewed by JF Bastien.
7732 Add tests for when Gigacage gets runtime disabled.
7734 * stress/disable-gigacage-arrays.js: Added.
7736 * stress/disable-gigacage-strings.js: Added.
7738 * stress/disable-gigacage-typed-arrays.js: Added.
7741 2017-10-09 Michael Saboff <msaboff@apple.com>
7743 Implement RegExp Unicode property escapes
7744 https://bugs.webkit.org/show_bug.cgi?id=172069
7746 Reviewed by JF Bastien.
7748 Enabled Unicode Property tests.
7752 2017-10-09 Commit Queue <commit-queue@webkit.org>
7754 Unreviewed, rolling out r223015 and r223025.
7755 https://bugs.webkit.org/show_bug.cgi?id=178093
7757 Regressed Kraken on iOS by 20% (Requested by keith_mi_ on
7760 Reverted changesets:
7762 "Enable gigacage on iOS"
7763 https://bugs.webkit.org/show_bug.cgi?id=177586
7764 http://trac.webkit.org/changeset/223015
7766 "Unreviewed, disable Gigacage on ARM64 Linux"
7767 https://bugs.webkit.org/show_bug.cgi?id=177586
7768 http://trac.webkit.org/changeset/223025
7770 2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
7772 Update expectations for test262 tests that pass after r223043.
7773 https://bugs.webkit.org/show_bug.cgi?id=176685
7775 Unreviewed test gardening.
7779 2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
7781 Unreviewed, rolling out r223022.
7783 This change introduced 18 test262 failures.
7787 "`async` should be able to be used as an imported binding
7789 https://bugs.webkit.org/show_bug.cgi?id=176573
7790 http://trac.webkit.org/changeset/223022
7792 2017-10-09 Saam Barati <sbarati@apple.com>
7794 3 poly-proto JSC tests timing out on debug after r222827
7795 https://bugs.webkit.org/show_bug.cgi?id=177880
7796 <rdar://problem/34817122>
7800 I'm skipping these type profiler tests on debug since they are long running.
7802 * typeProfiler/deltablue-for-of.js:
7803 * typeProfiler/getter-richards.js:
7805 2017-10-09 Oleksandr Skachkov <gskachkov@gmail.com>
7807 Safari 10 /11 problem with if (!await get(something)).
7808 https://bugs.webkit.org/show_bug.cgi?id=176685
7810 Reviewed by Saam Barati.
7812 * stress/async-await-basic.js:
7813 (awaitEpression.async):
7814 * stress/async-await-syntax.js:
7815 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
7816 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
7818 2017-10-08 Saam Barati <sbarati@apple.com>
7820 Unreviewed. Make some type profiler tests run for less time to avoid debug timeouts.
7822 * typeProfiler/deltablue-for-of.js:
7823 * typeProfiler/getter-richards.js:
7825 2017-10-07 Yusuke Suzuki <utatane.tea@gmail.com>
7827 `async` should be able to be used as an imported binding name
7828 https://bugs.webkit.org/show_bug.cgi?id=176573
7830 Reviewed by Darin Adler.
7832 * modules/import-default-async.js: Added.
7833 * modules/import-named-async-as.js: Added.
7834 * modules/import-named-async.js: Added.
7835 * modules/import-named-async/target.js: Added.
7836 * modules/import-namespace-async.js: Added.
7838 2017-09-29 Filip Pizlo <fpizlo@apple.com>
7840 Enable gigacage on iOS
7841 https://bugs.webkit.org/show_bug.cgi?id=177586
7843 Reviewed by JF Bastien.
7845 Add tests for when Gigacage gets runtime disabled.
7847 * stress/disable-gigacage-arrays.js: Added.
7849 * stress/disable-gigacage-strings.js: Added.
7851 * stress/disable-gigacage-typed-arrays.js: Added.
7854 2017-10-06 Commit Queue <commit-queue@webkit.org>
7856 Unreviewed, rolling out r222791 and r222873.
7857 https://bugs.webkit.org/show_bug.cgi?id=178031
7859 Caused crashes with workers/wasm LayoutTests (Requested by
7860 ryanhaddad on #webkit).
7862 Reverted changesets:
7864 "WebAssembly: no VM / JS version of everything but Instance"
7865 https://bugs.webkit.org/show_bug.cgi?id=177473
7866 http://trac.webkit.org/changeset/222791
7868 "WebAssembly: address no VM / JS follow-ups"
7869 https://bugs.webkit.org/show_bug.cgi?id=177887
7870 http://trac.webkit.org/changeset/222873
7872 2017-10-05 Saam Barati <sbarati@apple.com>
7874 Make sure all prototypes under poly proto get added into the VM's prototype map
7875 https://bugs.webkit.org/show_bug.cgi?id=177909
7877 Reviewed by Keith Miller.
7879 * stress/poly-proto-prototype-map-having-a-bad-time.js: Added.
7885 2017-09-30 Yusuke Suzuki <utatane.tea@gmail.com>
7887 [JSC] Introduce import.meta
7888 https://bugs.webkit.org/show_bug.cgi?id=177703
7890 Reviewed by Filip Pizlo.
7892 * modules/import-meta-syntax.js: Added.
7895 * modules/import-meta.js: Added.
7896 * modules/import-meta/cocoa.js: Added.
7897 * modules/resources/assert.js:
7898 (export.shouldNotThrow):
7899 * stress/import-syntax.js:
7901 2017-10-04 Saam Barati <sbarati@apple.com>
7903 Make pertinent AccessCases watch the poly proto watchpoint
7904 https://bugs.webkit.org/show_bug.cgi?id=177765
7906 Reviewed by Keith Miller.
7908 * microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js: Added.
7913 * stress/poly-proto-clear-stub.js: Added.
7918 2017-10-04 Ryan Haddad <ryanhaddad@apple.com>
7920 Remove failure expectation for async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js.
7922 Unreviewed test gardening.
7926 2017-10-04 Saam Barati <sbarati@apple.com>
7928 3 poly-proto JSC tests timing out on debug after r222827
7929 https://bugs.webkit.org/show_bug.cgi?id=177880
7931 Rubber stamped by Mark Lam.
7933 * microbenchmarks/poly-proto-access.js:
7934 * typeProfiler/deltablue-for-of.js:
7935 * typeProfiler/getter-richards.js:
7937 2017-10-04 Joseph Pecoraro <pecoraro@apple.com>
7939 Unreviewed, marking tco-catch.js as a failure after test262 update
7940 https://bugs.webkit.org/show_bug.cgi?id=177859
7944 2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
7946 Unreviewed, marking one async iterator test262 test failed
7947 https://bugs.webkit.org/show_bug.cgi?id=177859
7951 2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
7953 [Test262] Update Test262 to Oct 4 version
7954 https://bugs.webkit.org/show_bug.cgi?id=177859
7956 Reviewed by Sam Weinig.
7958 Let's rebaseline test262. Since it includes the latest changes to ArrayIterator::next,
7959 we no longer need to mark it skip/fail. Also this update includes bunch of BigInt tests.
7962 * test262/harness/promiseHelper.js: Renamed from JSTests/test262/harness/PromiseHelper.js.
7964 * test262/harness/typeCoercion.js:
7965 (testCoercibleToIndexZero):
7966 (testCoercibleToIndexOne):
7967 (testCoercibleToIndexFromIndex):
7968 (testNotCoercibleToIndex.testPrimitiveValue):
7969 (testNotCoercibleToInteger):
7970 (testCoercibleToBigIntZero.testPrimitiveValue):
7971 (testCoercibleToBigIntZero):
7972 (testCoercibleToBigIntOne.testPrimitiveValue):
7973 (testCoercibleToBigIntOne):
7974 (testPrimitiveValue):
7975 (testCoercibleToBigIntFromBigInt):
7976 (testNotCoercibleToBigInt.testPrimitiveValue):
7977 (testNotCoercibleToBigInt.testStringValue):
7978 (testNotCoercibleToBigInt):
7979 * test262/test/built-ins/Array/from/proto-from-ctor-realm.js:
7980 * test262/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js:
7981 * test262/test/built-ins/Array/of/proto-from-ctor-realm.js:
7982 * test262/test/built-ins/Array/proto-from-ctor-realm.js:
7983 * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js:
7984 * test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js:
7985 * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
7986 * test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js:
7987 * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js:
7988 * test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js:
7989 * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js:
7990 * test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js:
7991 * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js:
7992 * test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js:
7993 * test262/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js:
7994 * test262/test/built-ins/BigInt/asIntN/bigint-tobigint.js:
7995 (testCoercibleToBigIntZero):
7996 (testCoercibleToBigIntOne):
7997 (testNotCoercibleToBigInt):
8000 (toString): Deleted.
8001 (Symbol.toPrimitive): Deleted.
8002 * test262/test/built-ins/BigInt/asIntN/bits-toindex.js:
8003 (testCoercibleToIndexZero):
8004 (testCoercibleToIndexOne):
8005 (testNotCoercibleToIndex):
8007 (assert.sameValue.BigInt.asIntN.valueOf): Deleted.
8008 (assert.sameValue.BigInt.asIntN.toString): Deleted.
8009 (BigInt.asIntN.Symbol.toPrimitive): Deleted.
8010 (BigInt.asIntN.valueOf): Deleted.
8011 (BigInt.asIntN.toString): Deleted.
8012 * test262/test/built-ins/BigInt/asUintN/arithmetic.js: Added.
8013 * test262/test/built-ins/BigInt/asUintN/asUintN.js: Added.
8014 * test262/test/built-ins/BigInt/asUintN/bigint-tobigint.js: Added.
8015 (testCoercibleToBigIntZero):
8016 (testCoercibleToBigIntOne):
8017 (testNotCoercibleToBigInt):
8018 * test262/test/built-ins/BigInt/asUintN/bits-toindex.js: Added.
8019 (testCoercibleToIndexZero):
8020 (testCoercibleToIndexOne):
8021 (testNotCoercibleToIndex):
8022 * test262/test/built-ins/BigInt/asUintN/length.js: Added.
8023 * test262/test/built-ins/BigInt/asUintN/name.js: Added.
8024 * test262/test/built-ins/BigInt/asUintN/order-of-steps.js: Added.
8027 * test262/test/built-ins/BigInt/prototype/valueOf/length.js: Added.
8028 * test262/test/built-ins/BigInt/prototype/valueOf/name.js: Added.
8029 * test262/test/built-ins/BigInt/prototype/valueOf/prop-desc.js: Added.
8030 * test262/test/built-ins/BigInt/prototype/valueOf/return.js: Added.
8031 * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-object-throws.js: Added.
8032 * test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-primitive-throws.js: Added.
8033 * test262/test/built-ins/Boolean/proto-from-ctor-realm.js:
8034 * test262/test/built-ins/DataView/proto-from-ctor-realm-sab.js:
8035 * test262/test/built-ins/DataView/proto-from-ctor-realm.js:
8036 * test262/test/built-ins/Date/proto-from-ctor-realm-one.js:
8037 * test262/test/built-ins/Date/proto-from-ctor-realm-two.js:
8038 * test262/test/built-ins/Date/proto-from-ctor-realm-zero.js:
8039 * test262/test/built-ins/Error/proto-from-ctor-realm.js:
8040 * test262/test/built-ins/Function/call-bind-this-realm-undef.js:
8041 * test262/test/built-ins/Function/call-bind-this-realm-value.js:
8042 * test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
8043 * test262/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js:
8044 * test262/test/built-ins/Function/internals/Construct/derived-return-val-realm.js:
8045 * test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:
8046 * test262/test/built-ins/Function/proto-from-ctor-realm.js:
8047 * test262/test/built-ins/Function/prototype/bind/get-fn-realm.js:
8048 * test262/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js:
8049 * test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js:
8050 * test262/test/built-ins/JSON/stringify/bigint-order.js: Added.
8052 (BigInt.prototype.toJSON):
8053 * test262/test/built-ins/JSON/stringify/bigint-replacer.js: Added.
8055 * test262/test/built-ins/JSON/stringify/bigint-tojson.js: Added.
8056 (BigInt.prototype.toJSON):
8057 * test262/test/built-ins/JSON/stringify/bigint.js:
8058 * test262/test/built-ins/Map/proto-from-ctor-realm.js:
8059 * test262/test/built-ins/Number/S9.3.1_A2_U180E.js:
8060 * test262/test/built-ins/Number/S9.3.1_A3_T1_U180E.js:
8061 * test262/test/built-ins/Number/S9.3.1_A3_T2_U180E.js:
8062 * test262/test/built-ins/Number/proto-from-ctor-realm.js:
8063 * test262/test/built-ins/Object/proto-from-ctor.js:
8064 * test262/test/built-ins/Promise/proto-from-ctor-realm.js:
8065 * test262/test/built-ins/Proxy/apply/arguments-realm.js:
8066 * test262/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js:
8067 * test262/test/built-ins/Proxy/construct/arguments-realm.js:
8068 * test262/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js:
8069 * test262/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js:
8070 * test262/test/built-ins/Proxy/defineProperty/desc-realm.js:
8071 * test262/test/built-ins/Proxy/defineProperty/null-handler-realm.js:
8072 * test262/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js:
8073 * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js:
8074 * test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js:
8075 * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js:
8076 * test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js:
8077 * test262/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js:
8078 * test262/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js:
8079 * test262/test/built-ins/Proxy/get-fn-realm.js:
8080 * test262/test/built-ins/Proxy/get/trap-is-not-callable-realm.js:
8081 * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js:
8082 * test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js:
8083 * test262/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js:
8084 * test262/test/built-ins/Proxy/has/trap-is-not-callable-realm.js:
8085 * test262/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js:
8086 * test262/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js:
8087 * test262/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js:
8088 * test262/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js:
8089 * test262/test/built-ins/Proxy/set/trap-is-not-callable-realm.js:
8090 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js:
8091 * test262/test/built-ins/RegExp/S15.10.2.12_A1_T1.js:
8094 * test262/test/built-ins/RegExp/dotall/with-dotall-unicode.js:
8095 * test262/test/built-ins/RegExp/dotall/with-dotall.js:
8096 * test262/test/built-ins/RegExp/dotall/without-dotall-unicode.js:
8097 * test262/test/built-ins/RegExp/dotall/without-dotall.js:
8098 * test262/test/built-ins/RegExp/proto-from-ctor-realm.js:
8099 * test262/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js:
8100 * test262/test/built-ins/RegExp/u180e.js: Added.
8101 * test262/test/built-ins/Set/proto-from-ctor-realm.js:
8102 * test262/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js:
8103 * test262/test/built-ins/String/proto-from-ctor-realm.js:
8104 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js:
8105 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js:
8106 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js:
8107 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js:
8108 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js:
8109 * test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js:
8110 * test262/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js:
8111 * test262/test/built-ins/String/prototype/endsWith/endsWith.js:
8112 * test262/test/built-ins/String/prototype/endsWith/length.js:
8113 * test262/test/built-ins/String/prototype/endsWith/name.js:
8114 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js:
8115 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js:
8116 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js:
8117 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js:
8118 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js:
8119 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js:
8120 * test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js:
8121 * test262/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js:
8122 * test262/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js:
8123 * test262/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js:
8124 * test262/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js:
8125 * test262/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js:
8126 * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js:
8127 * test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js:
8128 * test262/test/built-ins/String/prototype/endsWith/this-is-null-throws.js:
8129 * test262/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js:
8130 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js:
8131 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js:
8132 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js:
8133 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js:
8134 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js:
8135 * test262/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js:
8136 * test262/test/built-ins/String/prototype/includes/coerced-values-of-position.js:
8137 * test262/test/built-ins/String/prototype/includes/includes.js:
8138 * test262/test/built-ins/String/prototype/includes/length.js:
8139 * test262/test/built-ins/String/prototype/includes/name.js:
8140 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js:
8141 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-position.js:
8142 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js:
8143 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js:
8144 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js:
8145 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js:
8146 * test262/test/built-ins/String/prototype/includes/return-abrupt-from-this.js:
8147 * test262/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js:
8148 * test262/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js:
8149 * test262/test/built-ins/String/prototype/includes/searchstring-found-with-position.js:
8150 * test262/test/built-ins/String/prototype/includes/searchstring-found-without-position.js:
8151 * test262/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js:
8152 * test262/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js:
8153 * test262/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js:
8154 * test262/test/built-ins/String/prototype/includes/this-is-null-throws.js:
8155 * test262/test/built-ins/String/prototype/includes/this-is-undefined-throws.js:
8156 * test262/test/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js:
8157 * test262/test/built-ins/String/prototype/toLowerCase/Final_Sigma_U180E.js:
8158 * test262/test/built-ins/String/prototype/trim/u180e.js:
8159 * test262/test/built-ins/Symbol/for/cross-realm.js:
8160 * test262/test/built-ins/Symbol/hasInstance/cross-realm.js:
8161 * test262/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js:
8162 * test262/test/built-ins/Symbol/iterator/cross-realm.js:
8163 * test262/test/built-ins/Symbol/keyFor/cross-realm.js:
8164 * test262/test/built-ins/Symbol/match/cross-realm.js:
8165 * test262/test/built-ins/Symbol/replace/cross-realm.js:
8166 * test262/test/built-ins/Symbol/search/cross-realm.js:
8167 * test262/test/built-ins/Symbol/species/cross-realm.js:
8168 * test262/test/built-ins/Symbol/split/cross-realm.js:
8169 * test262/test/built-ins/Symbol/toPrimitive/cross-realm.js:
8170 * test262/test/built-ins/Symbol/toStringTag/cross-realm.js:
8171 * test262/test/built-ins/Symbol/unscopables/cross-realm.js:
8172 * test262/test/built-ins/ThrowTypeError/distinct-cross-realm.js:
8173 * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js:
8174 * test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js:
8175 * test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js:
8176 * test262/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js:
8177 * test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js:
8178 * test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js:
8179 * test262/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js:
8180 * test262/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js:
8181 * test262/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js:
8182 * test262/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js:
8183 * test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js:
8184 * test262/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js:
8185 * test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js:
8186 * test262/test/built-ins/WeakMap/proto-from-ctor-realm.js:
8187 * test262/test/built-ins/WeakSet/proto-from-ctor-realm.js:
8188 * test262/test/built-ins/parseFloat/S15.1.2.3_A2_T10_U180E.js:
8189 * test262/test/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js:
8190 * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js:
8191 * test262/test/language/comments/mongolian-vowel-separator-multi.js:
8192 * test262/test/language/comments/mongolian-vowel-separator-single-eval.js:
8193 * test262/test/language/comments/mongolian-vowel-separator-single.js:
8194 * test262/test/language/eval-code/indirect/realm.js:
8195 * test262/test/language/expressions/assignment/dstr-obj-rest-order.js: Added.
8198 * test262/test/language/expressions/call/eval-realm-indirect.js:
8199 * test262/test/language/expressions/generators/eval-body-proto-realm.js:
8200 * test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js: Added.
8201 * test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js: Added.
8202 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js: Added.
8203 * test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
8204 * test262/test/language/expressions/greater-than/bigint-and-bigint.js: Added.
8205 * test262/test/language/expressions/greater-than/bigint-and-non-finite.js: Added.
8206 * test262/test/language/expressions/greater-than/bigint-and-number-extremes.js: Added.
8207 * test262/test/language/expressions/greater-than/bigint-and-number.js:
8208 * test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js: Added.
8209 * test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js: Added.
8210 * test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js: Added.
8211 * test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
8212 * test262/test/language/expressions/less-than/bigint-and-bigint.js: Added.
8213 * test262/test/language/expressions/less-than/bigint-and-non-finite.js: Added.
8214 * test262/test/language/expressions/less-than/bigint-and-number-extremes.js: Added.
8215 * test262/test/language/expressions/less-than/bigint-and-number.js:
8216 * test262/test/language/expressions/new/non-ctor-err-realm.js:
8217 * test262/test/language/expressions/super/realm.js:
8218 * test262/test/language/expressions/tagged-template/cache-realm.js:
8219 * test262/test/language/expressions/template-literal/mongolian-vowel-separator-eval.js:
8220 * test262/test/language/expressions/template-literal/mongolian-vowel-separator.js:
8221 * test262/test/language/literals/regexp/mongolian-vowel-separator-eval.js:
8222 * test262/test/language/literals/regexp/mongolian-vowel-separator.js:
8223 * test262/test/language/literals/string/mongolian-vowel-separator-eval.js:
8224 * test262/test/language/literals/string/mongolian-vowel-separator.js:
8225 * test262/test/language/statements/for-of/dstr-obj-rest-order.js: Added.
8228 * test262/test/language/statements/for-of/iterator-next-reference.js:
8230 (iterator.next): Deleted.
8231 (x.of.iterable.): Deleted.
8232 (x.of.iterable.get return): Deleted.
8233 (x.of.iterable.iterator.next): Deleted.
8234 * test262/test/language/types/reference/get-value-prop-base-primitive-realm.js:
8235 * test262/test/language/types/reference/put-value-prop-base-primitive-realm.js:
8236 * test262/test/language/white-space/mongolian-vowel-separator-eval.js:
8237 * test262/test/language/white-space/mongolian-vowel-separator.js:
8238 * test262/test262-Revision.txt:
8240 2017-10-03 Saam Barati <sbarati@apple.com>
8242 Implement polymorphic prototypes
8243 https://bugs.webkit.org/show_bug.cgi?id=176391
8245 Reviewed by Filip Pizlo.
8247 * microbenchmarks/poly-proto-access.js: Added.
8250 (foo.C.prototype.get bar):
8253 * microbenchmarks/poly-proto-put-transition-speed.js: Added.
8255 (makePolyProtoObject.foo.C):
8256 (makePolyProtoObject.foo):
8257 (makePolyProtoObject):
8259 * microbenchmarks/poly-proto-setter-speed.js: Added.
8261 (makePolyProtoObject.foo.C):
8262 (makePolyProtoObject.foo.C.prototype.set p):
8263 (makePolyProtoObject.foo):
8264 (makePolyProtoObject):
8266 * stress/constructor-with-return.js:
8267 (i.tests.forEach.Constructor):
8269 (tests.forEach.Constructor): Deleted.
8270 (tests.forEach): Deleted.
8271 * stress/dom-jit-with-poly-proto.js: Added.
8273 (makePolyProtoObject.foo.C):
8274 (makePolyProtoObject.foo):
8275 (makePolyProtoObject):
8277 * stress/poly-proto-custom-value-and-accessor.js: Added.
8279 (makePolyProtoObject.foo.C):
8280 (makePolyProtoObject.foo):
8281 (makePolyProtoObject):
8284 * stress/poly-proto-intrinsic-getter-correctness.js: Added.
8286 (makePolyProtoObject.foo.C):
8287 (makePolyProtoObject.foo):
8288 (makePolyProtoObject):
8290 * stress/poly-proto-miss.js: Added.
8291 (makePolyProtoInstanceWithNullPrototype.foo.C):
8292 (makePolyProtoInstanceWithNullPrototype.foo):
8293 (makePolyProtoInstanceWithNullPrototype):
8296 * stress/poly-proto-op-in-caching.js: Added.
8298 (makePolyProtoObject.foo.C):
8299 (makePolyProtoObject.foo):
8300 (makePolyProtoObject):
8303 * stress/poly-proto-put-transition.js: Added.
8305 (makePolyProtoObject.foo.C):
8306 (makePolyProtoObject.foo):
8307 (makePolyProtoObject):
8309 (i.obj.__proto__.set p):
8310 * stress/poly-proto-set-prototype.js: Added.
8312 (let.alternateProto.get x):
8313 (let.alternateProto2.get y):
8314 (let.alternateProto2.get x):
8318 * stress/poly-proto-setter.js: Added.
8320 (makePolyProtoObject.foo.C):
8321 (makePolyProtoObject.foo.C.prototype.set p):
8322 (makePolyProtoObject.foo.C.prototype.get p):
8323 (makePolyProtoObject.foo):
8324 (makePolyProtoObject):
8326 * stress/poly-proto-using-inheritance.js: Added.
8329 (foo.C.prototype.get baz):
8334 * stress/primitive-poly-proto.js: Added.
8335 (makePolyProtoInstance.foo.C):
8336 (makePolyProtoInstance.foo):
8337 (makePolyProtoInstance):
8340 * stress/prototype-is-not-js-object.js: Added.
8345 * stress/try-get-by-id-poly-proto.js: Added.
8347 (makePolyProtoObject.foo.C):
8348 (makePolyProtoObject.foo):
8349 (makePolyProtoObject):
8351 (x.__proto__.get bar):
8353 * typeProfiler/overflow.js:
8355 2017-10-03 JF Bastien <jfbastien@apple.com>
8357 WebAssembly: no VM / JS version of everything but Instance
8358 https://bugs.webkit.org/show_bug.cgi?id=177473
8360 Reviewed by Filip Pizlo.
8362 - Exceeding max on memory growth now returns a range error as per
8363 spec. This is a (very minor) breaking change: it used to throw OOM
8364 error. Update the corresponding test.
8366 * wasm/js-api/memory-grow.js:
8368 * wasm/js-api/table.js:
8371 2017-10-03 Ryan Haddad <ryanhaddad@apple.com>
8373 Skip JSC test stress/regress-159779-2.js on debug.
8374 https://bugs.webkit.org/show_bug.cgi?id=177204
8376 Unreviewed test gardening.
8378 * stress/regress-159779-2.js:
8380 2017-10-02 Caio Lima <ticaiolima@gmail.com>
8382 ChakraCore/test/Function/apply3.js is resulting wrong result in x86_64
8383 https://bugs.webkit.org/show_bug.cgi?id=175642
8385 Reviewed by Darin Adler.
8387 * ChakraCore/test/Function/apply3.baseline-jsc:
8389 2017-10-01 Commit Queue <commit-queue@webkit.org>
8391 Unreviewed, rolling out r222564.
8392 https://bugs.webkit.org/show_bug.cgi?id=177720
8394 "It regressed JetStream by 2% on iOS caused by a 50%
8395 regression on the bigfib subtest" (Requested by saamyjoon on
8400 "Add Above/Below comparisons for UInt32 patterns"
8401 https://bugs.webkit.org/show_bug.cgi?id=177281
8402 http://trac.webkit.org/changeset/222564
8404 2017-09-29 Yusuke Suzuki <utatane.tea@gmail.com>
8406 [DFG] Support ArrayPush with multiple args
8407 https://bugs.webkit.org/show_bug.cgi?id=175823
8409 Reviewed by Saam Barati.
8411 * microbenchmarks/array-push-0.js: Added.
8413 * microbenchmarks/array-push-1.js: Added.
8415 * microbenchmarks/array-push-2.js: Added.
8417 * microbenchmarks/array-push-3.js: Added.
8419 * stress/array-push-multiple-contiguous.js: Added.
8422 * stress/array-push-multiple-double-nan.js: Added.
8425 * stress/array-push-multiple-double.js: Added.
8428 * stress/array-push-multiple-int32.js: Added.
8431 * stress/array-push-multiple-many-contiguous.js: Added.
8434 * stress/array-push-multiple-many-double.js: Added.
8437 * stress/array-push-multiple-many-int32.js: Added.
8440 * stress/array-push-multiple-many-storage.js: Added.
8443 * stress/array-push-multiple-storage.js: Added.
8446 * stress/array-push-with-force-exit.js: Added.
8447 (target.createBuiltin):
8449 2017-09-29 Saam Barati <sbarati@apple.com>
8451 Custom GetterSetterAccessCase does not use the correct slotBase when making call
8452 https://bugs.webkit.org/show_bug.cgi?id=177639
8454 Reviewed by Geoffrey Garen.
8456 * stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: Added.
8462 2017-09-29 Commit Queue <commit-queue@webkit.org>
8464 Unreviewed, rolling out r222563, r222565, and r222581.
8465 https://bugs.webkit.org/show_bug.cgi?id=177675
8467 "It causes a crash when playing youtube videos" (Requested by
8468 saamyjoon on #webkit).
8470 Reverted changesets:
8472 "[DFG] Support ArrayPush with multiple args"
8473 https://bugs.webkit.org/show_bug.cgi?id=175823
8474 http://trac.webkit.org/changeset/222563
8476 "Unreviewed, build fix after r222563"
8477 https://bugs.webkit.org/show_bug.cgi?id=175823
8478 http://trac.webkit.org/changeset/222565
8480 "Unreviewed, fix x86 breaking due to exhausted registers"
8481 https://bugs.webkit.org/show_bug.cgi?id=175823
8482 http://trac.webkit.org/changeset/222581
8484 2017-09-28 Mark Lam <mark.lam@apple.com>
8486 test262: Unexpected passes after r222617 and r222618.
8487 https://bugs.webkit.org/show_bug.cgi?id=177622
8488 <rdar://problem/34725960>
8490 Reviewed by Saam Barati.
8492 Update test262.yaml for tests that are now passing.
8496 2017-09-27 Michael Saboff <msaboff@apple.com>
8498 REGRESSION(210837): RegExp containing failed non-zero minimum greedy groups incorrectly match
8499 https://bugs.webkit.org/show_bug.cgi?id=177570
8501 Reviewed by Filip Pizlo.
8503 New regression test.
8505 * stress/regress-177570.js: Added.
8507 2017-09-28 Michael Saboff <msaboff@apple.com>
8509 Heap out of bounds read in JSC::Yarr::Parser<JSC::Yarr::SyntaxChecker, unsigned char>::peek()
8510 https://bugs.webkit.org/show_bug.cgi?id=177423
8512 Reviewed by Mark Lam.
8514 Updated regression test.
8516 * stress/regress-177423.js:
8519 2017-09-27 Mark Lam <mark.lam@apple.com>
8521 JSArray::canFastCopy() should fail if the source and destination arrays are the same.
8522 https://bugs.webkit.org/show_bug.cgi?id=177584
8523 <rdar://problem/34463903>
8525 Reviewed by Saam Barati.
8527 * stress/regress-177584.js: Added.
8529 (Array.prototype.Symbol.species):
8531 2017-09-27 Saam Barati <sbarati@apple.com>
8533 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
8534 https://bugs.webkit.org/show_bug.cgi?id=177523
8536 Reviewed by Mark Lam.
8538 * stress/prototype-chain-has-dictionary-structure-for-in-caching.js: Added.
8541 (addMethods.Test.prototype.string_appeared_here.i.methodNumber):
8543 (i.Test.prototype.propName):
8545 2017-09-27 Mark Lam <mark.lam@apple.com>
8547 Yarr::Parser::tryConsumeGroupName() should check for the end of the pattern.
8548 https://bugs.webkit.org/show_bug.cgi?id=177423
8549 <rdar://problem/34621320>
8551 Reviewed by Keith Miller.
8553 * stress/regress-177423.js: Added.
8555 2017-09-27 Yusuke Suzuki <utatane.tea@gmail.com>
8557 Add Above/Below comparisons for UInt32 patterns
8558 https://bugs.webkit.org/show_bug.cgi?id=177281
8560 Reviewed by Saam Barati.
8562 * stress/uint32-comparison-jump.js: Added.
8572 * stress/uint32-comparison.js: Added.
8583 2017-09-25 Yusuke Suzuki <utatane.tea@gmail.com>
8585 [DFG] Support ArrayPush with multiple args
8586 https://bugs.webkit.org/show_bug.cgi?id=175823
8588 Reviewed by Saam Barati.
8590 * microbenchmarks/array-push-0.js: Added.
8592 * microbenchmarks/array-push-1.js: Added.
8594 * microbenchmarks/array-push-2.js: Added.
8596 * microbenchmarks/array-push-3.js: Added.
8598 * stress/array-push-multiple-contiguous.js: Added.
8601 * stress/array-push-multiple-double-nan.js: Added.
8604 * stress/array-push-multiple-double.js: Added.
8607 * stress/array-push-multiple-int32.js: Added.
8610 * stress/array-push-multiple-many-contiguous.js: Added.
8613 * stress/array-push-multiple-many-double.js: Added.
8616 * stress/array-push-multiple-many-int32.js: Added.
8619 * stress/array-push-multiple-many-storage.js: Added.
8622 * stress/array-push-multiple-storage.js: Added.
8626 2017-09-26 Commit Queue <commit-queue@webkit.org>
8628 Unreviewed, rolling out r222518.
8629 https://bugs.webkit.org/show_bug.cgi?id=177507
8631 Break the High Sierra build (Requested by yusukesuzuki on
8636 "Add Above/Below comparisons for UInt32 patterns"
8637 https://bugs.webkit.org/show_bug.cgi?id=177281
8638 http://trac.webkit.org/changeset/222518
8640 2017-09-26 Yusuke Suzuki <utatane.tea@gmail.com>
8642 Add Above/Below comparisons for UInt32 patterns
8643 https://bugs.webkit.org/show_bug.cgi?id=177281
8645 Reviewed by Saam Barati.
8647 * stress/uint32-comparison-jump.js: Added.
8657 * stress/uint32-comparison.js: Added.
8668 2017-09-23 Keith Miller <keith_miller@apple.com>
8670 Fix infinite looping test262 test
8671 https://bugs.webkit.org/show_bug.cgi?id=177412
8673 Reviewed by Yusuke Suzuki.
8675 This test was poorly designed since failing it would cause the vm
8676 to inifinite loop. I've fixed it locally and will fix it on github pending
8677 the results of next weeks tc39 meeting.
8680 * test262/test/language/statements/for-of/iterator-next-reference.js:
8682 2017-09-23 Joseph Pecoraro <pecoraro@apple.com>
8684 test262: $.agent became $262.agent in test262 update
8685 https://bugs.webkit.org/show_bug.cgi?id=177407
8687 Reviewed by Yusuke Suzuki.
8690 ~320 tests pass now that we correctly make $262 available.
8692 2017-09-22 Keith Miller <keith_miller@apple.com>
8694 Speculatively change iteration protocall to use the same next function
8695 https://bugs.webkit.org/show_bug.cgi?id=175653
8697 Reviewed by Saam Barati.
8699 Change test to match the new iteration behavior.
8701 * stress/spread-optimized-properly.js:
8703 2017-09-22 Yusuke Suzuki <utatane.tea@gmail.com>
8705 [DFG][FTL] Profile array vector length for array allocation
8706 https://bugs.webkit.org/show_bug.cgi?id=177051
8708 Reviewed by Saam Barati.
8710 * microbenchmarks/new-array-buffer-vector-profile.js: Added.
8713 2017-09-22 Commit Queue <commit-queue@webkit.org>
8715 Unreviewed, rolling out r222380.
8716 https://bugs.webkit.org/show_bug.cgi?id=177352
8718 Octane/box2d shows 8% regression (Requested by yusukesuzuki on
8723 "[DFG][FTL] Profile array vector length for array allocation"
8724 https://bugs.webkit.org/show_bug.cgi?id=177051
8725 http://trac.webkit.org/changeset/222380
8727 2017-09-21 Yusuke Suzuki <utatane.tea@gmail.com>
8729 [DFG][FTL] Profile array vector length for array allocation
8730 https://bugs.webkit.org/show_bug.cgi?id=177051
8732 Reviewed by Saam Barati.
8734 * microbenchmarks/new-array-buffer-vector-profile.js: Added.
8737 2017-09-21 Joseph Pecoraro <pecoraro@apple.com>
8739 Skip new hanging test262 tests.
8740 https://bugs.webkit.org/show_bug.cgi?id=177326
8742 Unreviewed test gardening.
8746 2017-09-21 Ryan Haddad <ryanhaddad@apple.com>
8748 Mark 6 test262 tests as passing.
8749 https://bugs.webkit.org/show_bug.cgi?id=177307
8751 Unreviewed test gardening.
8755 2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
8757 Unreviewed follow-up to r222311.
8759 * test262/harness/sta.js:
8760 * test262/test/built-ins/Array/from/calling-from-valid-1-noStrict.js:
8761 * test262/test/built-ins/Array/from/calling-from-valid-1-onlyStrict.js:
8762 * test262/test/built-ins/Array/from/calling-from-valid-2.js:
8763 * test262/test/built-ins/Array/from/elements-added-after.js:
8764 * test262/test/built-ins/Array/from/elements-deleted-after.js:
8765 * test262/test/built-ins/Array/from/elements-updated-after.js:
8766 * test262/test/built-ins/Array/from/from-array.js:
8767 * test262/test/built-ins/Array/from/mapfn-is-not-callable-typeerror.js:
8768 * test262/test/built-ins/Array/from/mapfn-throws-exception.js:
8769 * test262/test/built-ins/Array/from/source-array-boundary.js:
8770 * test262/test/built-ins/Array/from/source-object-constructor.js:
8771 * test262/test/built-ins/Array/from/source-object-iterator-1.js:
8772 * test262/test/built-ins/Array/from/source-object-iterator-2.js:
8773 * test262/test/built-ins/Array/from/source-object-length.js:
8774 * test262/test/built-ins/Array/from/source-object-missing.js:
8775 * test262/test/built-ins/Array/from/source-object-without.js:
8776 * test262/test/built-ins/Array/from/this-null.js:
8777 * test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
8778 * test262/test/language/line-terminators/S7.3_A3.2_T1.js:
8779 * test262/test/language/literals/numeric/7.8.3-1gs.js:
8780 * test262/test/language/literals/numeric/7.8.3-2gs.js:
8781 * test262/test/language/literals/numeric/7.8.3-3gs.js:
8782 * test262/test/language/literals/regexp/7.8.5-1gs.js:
8783 * test262/test/language/literals/string/7.8.4-1gs.js:
8784 Fix some files that I failed to update when I applied my patch.
8786 2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
8788 Update test262 tests
8789 https://bugs.webkit.org/show_bug.cgi?id=177220
8791 Reviewed by Saam Barati and Yusuke Suzuki.
8794 * test262/test262-Revision.txt:
8795 New rebaselined expectations for all tests.
8800 2017-09-17 Yusuke Suzuki <utatane.tea@gmail.com>
8802 [DFG] Remove ToThis more aggressively
8803 https://bugs.webkit.org/show_bug.cgi?id=177056
8805 Reviewed by Saam Barati.
8807 * stress/generator-with-this-strict.js: Added.
8811 * stress/generator-with-this.js: Added.
8816 2017-09-17 Michael Saboff <msaboff@apple.com>
8818 https://bugs.webkit.org/show_bug.cgi?id=177038
8819 Add an option to run-jsc-stress-tests to limit tests variations to a basic set
8821 Reviewed by JF Bastien.
8823 * stress/unshiftCountSlowCase-correct-postCapacity.js: Disabled this test on ARM64 iOS devices
8824 as it dies using too much memory.
8826 2017-09-15 Saam Barati <sbarati@apple.com>
8828 Arity fixup during inlining should do a 2 phase commit so it properly recovers the frame in case of exit
8829 https://bugs.webkit.org/show_bug.cgi?id=176981
8831 Reviewed by Yusuke Suzuki.
8833 * stress/exit-during-inlined-arity-fixup-recover-proper-frame.js: Added.
8837 (const.bar.createBuiltin):
8839 2017-09-14 Saam Barati <sbarati@apple.com>
8841 It should be valid to exit before each set when doing arity fixup when inlining
8842 https://bugs.webkit.org/show_bug.cgi?id=176948
8844 Reviewed by Keith Miller.
8846 * stress/arity-fixup-inlining-dont-generate-invalid-use.js: Added.
8851 2017-09-14 Yusuke Suzuki <utatane.tea@gmail.com>
8853 [JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray
8854 https://bugs.webkit.org/show_bug.cgi?id=176867
8856 Reviewed by Sam Weinig.
8858 * microbenchmarks/object-get-own-property-symbols.js: Added.
8861 2017-09-13 Mark Lam <mark.lam@apple.com>
8863 Rolling out r221832: Regresses Speedometer by ~4% and Dromaeo CSS YUI by ~20%.
8864 https://bugs.webkit.org/show_bug.cgi?id=176888
8865 <rdar://problem/34381832>
8869 * stress/op_mod-ConstVar.js:
8870 * stress/op_mod-VarConst.js:
8871 * stress/op_mod-VarVar.js:
8873 2017-09-13 Ryan Haddad <ryanhaddad@apple.com>
8875 Skip 3 op_mod tests on Debug JSC bots.
8876 https://bugs.webkit.org/show_bug.cgi?id=176630
8878 Unreviewed test gardening.
8880 * stress/op_mod-ConstVar.js:
8881 * stress/op_mod-VarConst.js:
8882 * stress/op_mod-VarVar.js:
8884 2017-09-13 Yusuke Suzuki <utatane.tea@gmail.com>
8886 [JSC] Fix Array allocation in Object.keys
8887 https://bugs.webkit.org/show_bug.cgi?id=176826
8889 Reviewed by Saam Barati.
8891 * stress/object-own-property-keys.js: Added.
8894 2017-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
8896 [DFG] Optimize WeakMap::get by adding intrinsic and fixup
8897 https://bugs.webkit.org/show_bug.cgi?id=176010
8899 Reviewed by Filip Pizlo.
8901 * microbenchmarks/weak-map-key.js: Added.
8904 (let.start.Date.now):
8906 2017-09-12 Mark Lam <mark.lam@apple.com>
8908 REGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots.
8909 https://bugs.webkit.org/show_bug.cgi?id=176630
8911 Reviewed by JF Bastien.
8913 Debug builds are just slow, and these tests do a lot. They pass when I run them
8914 locally on my MacBook Pro. So, I'm bumping their timing multiplier to 2.0x as
8915 a speculative fix for the bots that are seeing these fail.
8917 I also undid the skipping of the op_mod tests for debug builds.
8919 * stress/op_div-ConstVar.js:
8920 * stress/op_div-VarConst.js:
8921 * stress/op_div-VarVar.js:
8922 * stress/op_mod-ConstVar.js:
8923 * stress/op_mod-VarConst.js:
8924 * stress/op_mod-VarVar.js:
8926 2017-09-12 Ryan Haddad <ryanhaddad@apple.com>
8928 Skip stress/value-to-boolean.js on Debug bots.
8929 https://bugs.webkit.org/show_bug.cgi?id=176787
8931 Unreviewed test gardening.
8933 * stress/value-to-boolean.js:
8935 2017-09-11 Mark Lam <mark.lam@apple.com>
8937 Change test expectation for test262/test/language/statements/try/tco-catch.js
8938 https://bugs.webkit.org/show_bug.cgi?id=176749
8940 Rubber stamped by Keith Miller.
8942 It's been failing since at least r221821. I'm changing the test expectation to
8943 fail to green the bots while I investigate some more.
8947 2017-09-11 Ryan Haddad <ryanhaddad@apple.com>
8949 Unreviewed, rolling out r221854.
8951 The test added with this change fails on 32-bit JSC bots.
8955 "[DFG] Optimize WeakMap::get by adding intrinsic and fixup"
8956 https://bugs.webkit.org/show_bug.cgi?id=176010
8957 http://trac.webkit.org/changeset/221854
8959 2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
8961 [DFG] Optimize WeakMap::get by adding intrinsic and fixup
8962 https://bugs.webkit.org/show_bug.cgi?id=176010
8964 Reviewed by Filip Pizlo.
8966 * microbenchmarks/weak-map-key.js: Added.
8969 (let.start.Date.now):
8971 2017-09-09 Yusuke Suzuki <utatane.tea@gmail.com>
8973 [JSC] Optimize Object.keys by using careful array allocation
8974 https://bugs.webkit.org/show_bug.cgi?id=176654
8976 Reviewed by Darin Adler.
8978 * microbenchmarks/object-keys.js: Added.
8981 2017-09-09 Filip Pizlo <fpizlo@apple.com>
8983 Error should compute .stack and friends lazily
8984 https://bugs.webkit.org/show_bug.cgi?id=176645
8986 Reviewed by Saam Barati.
8988 * ChakraCore.yaml: Skip test that was testing non-standard behavior of these fields.
8989 * microbenchmarks/new-error.js: Added.
8990 * microbenchmarks/throw.js: Added.
8992 2017-09-09 Mark Lam <mark.lam@apple.com>
8994 [Re-landing] Use JIT probes for DFG OSR exit.
8995 https://bugs.webkit.org/show_bug.cgi?id=175144
8996 <rdar://problem/33437050>
8998 Not reviewed. Original patch reviewed by Saam Barati.
9000 Disable these tests for debug builds because they run too slow with the new OSR exit.
9002 * stress/op_mod-ConstVar.js:
9003 * stress/op_mod-VarConst.js:
9004 * stress/op_mod-VarVar.js:
9006 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
9008 [DFG] NewArrayWithSize(size)'s size does not care negative zero
9009 https://bugs.webkit.org/show_bug.cgi?id=176300
9011 Reviewed by Saam Barati.
9013 * stress/new-array-with-size-div.js: Added.
9018 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
9020 [DFG] PutByVal with Array::Generic is too generic
9021 https://bugs.webkit.org/show_bug.cgi?id=176345
9023 Reviewed by Filip Pizlo.
9025 * stress/object-assign-symbols.js: Added.
9028 * stress/object-assign.js: Added.
9031 (i.shouldBe.JSON.stringify.test):
9033 2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
9035 [DFG][FTL] GetByVal(ObjectUse with Array::Generic, StringUse/SymbolUse) should be supported
9036 https://bugs.webkit.org/show_bug.cgi?id=176590
9038 Reviewed by Saam Barati.
9040 * microbenchmarks/object-iterate-symbols.js: Added.
9042 * microbenchmarks/object-iterate.js: Added.
9044 * stress/object-iterate-symbols.js: Added.
9047 * stress/object-iterate.js: Added.
9051 2017-09-07 Per Arne Vollan <pvollan@apple.com>
9053 [Win32] 10 JSC stress tests are failing.
9054 https://bugs.webkit.org/show_bug.cgi?id=176538
9056 Reviewed by Mark Lam.
9058 Skip tests on Windows to make the bots green.
9061 * stress/date-relaxed.js:
9063 2017-09-06 Mark Lam <mark.lam@apple.com>
9065 constructGenericTypedArrayViewWithArguments() is missing an exception check.
9066 https://bugs.webkit.org/show_bug.cgi?id=176485
9067 <rdar://problem/33898874>
9069 Reviewed by Keith Miller.
9071 * stress/regress-176485.js: Added.
9073 2017-09-05 Saam Barati <sbarati@apple.com>
9075 isNotCellSpeculation is wrong with respect to SpecEmpty
9076 https://bugs.webkit.org/show_bug.cgi?id=176429
9078 Reviewed by Michael Saboff.
9080 * microbenchmarks/is-not-cell-speculation-for-empty-value.js: Added.
9083 2017-09-05 Joseph Pecoraro <pecoraro@apple.com>
9085 test262: Completion values for control flow do not match the spec
9086 https://bugs.webkit.org/show_bug.cgi?id=171265
9088 Reviewed by Saam Barati.
9090 * stress/completion-value.js:
9091 Condensed test for completion values in top level statements.
9093 * stress/super-get-by-id.js:
9094 ClassDeclaration when evaled no longer produce values. Convert
9095 these to ClassExpressions so they produce the class value.
9097 * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
9098 This is a progression for currect spec behavior.
9100 * mozilla/mozilla-tests.yaml:
9101 This test is now outdated, so mark it as failing for that reason.
9104 Passing all "cptn" completion value tests.
9106 2017-09-04 Saam Barati <sbarati@apple.com>
9108 typeCheckHoistingPhase may emit a CheckStructure on the empty value which leads to a dereference of zero on 64 bit platforms
9109 https://bugs.webkit.org/show_bug.cgi?id=176317
9111 Reviewed by Keith Miller.
9113 * stress/dont-crash-when-hoist-check-structure-on-tdz.js: Added.
9116 2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
9118 [DFG][FTL] Efficiently execute number#toString()
9119 https://bugs.webkit.org/show_bug.cgi?id=170007
9121 Reviewed by Keith Miller.
9123 * microbenchmarks/number-to-string-strength-reduction.js: Added.
9125 * microbenchmarks/number-to-string-with-radix-10.js: Added.
9127 * microbenchmarks/number-to-string-with-radix-cse.js: Added.
9129 * microbenchmarks/number-to-string-with-radix.js: Added.
9131 * stress/number-to-string-strength-reduction.js: Added.
9134 * stress/number-to-string-with-radix-10.js: Added.
9137 * stress/number-to-string-with-radix-cse.js: Added.
9140 * stress/number-to-string-with-radix-invalid.js: Added.
9142 * stress/number-to-string-with-radix-watchpoint.js: Added.
9145 (i.i.1e3.Number.prototype.toString):
9146 * stress/number-to-string-with-radix.js: Added.
9150 2017-09-02 Yusuke Suzuki <utatane.tea@gmail.com>
9152 [DFG] Relax arity requirement
9153 https://bugs.webkit.org/show_bug.cgi?id=175523
9155 Reviewed by Saam Barati.
9157 * stress/arity-mismatch-arguments-length.js: Added.
9161 * stress/arity-mismatch-get-argument.js: Added.
9163 (builtin.createBuiltin):
9165 * stress/arity-mismatch-inlining-extra-slots.js: Added.
9169 * stress/arity-mismatch-inlining.js: Added.
9173 * stress/arity-mismatch-rest.js: Added.
9179 2017-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
9181 [JSC] Fix "name" and "length" of Proxy revoke function
9182 https://bugs.webkit.org/show_bug.cgi?id=176155
9184 Reviewed by Mark Lam.
9188 2017-08-31 Saam Barati <sbarati@apple.com>
9190 Graph::methodOfGettingAValueProfileFor compares NodeOrigin instead of the semantic CodeOrigin
9191 https://bugs.webkit.org/show_bug.cgi?id=176206
9193 Reviewed by Keith Miller.
9195 * stress/compare-semantic-origin-op-negate-method-of-getting-a-value-profile.js: Added.
9200 2017-08-31 Ryan Haddad <ryanhaddad@apple.com>
9202 Skip two slow JSC tests after r221422.
9204 Unreviewed test gardening.
9206 * stress/regexp-prototype-match-on-too-long-rope.js:
9207 * stress/regexp-prototype-test-on-too-long-rope.js:
9209 2017-08-31 Filip Pizlo <fpizlo@apple.com>
9211 Unreviewed, skipping slow tests.
9213 These tests are now timing out. They would have always been slow. The timeouts are probably because OOMs
9214 work differently now.
9216 * stress/regexp-prototype-exec-on-too-long-rope.js:
9217 * stress/string-prototype-charCodeAt-on-too-long-rope.js:
9219 2017-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
9221 [JSC] Use reifying system for "name" property of builtin JSFunction
9222 https://bugs.webkit.org/show_bug.cgi?id=175260
9224 Reviewed by Saam Barati.
9226 * stress/accessors-get-set-prefix.js:
9227 * stress/builtin-function-name.js: Added.
9230 (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
9231 (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
9232 * stress/private-name-as-anonymous-builtin.js: Added.
9236 2017-08-30 Saam Barati <sbarati@apple.com>
9238 Unreviewed. Make test stop printing.
9240 * microbenchmarks/fake-iterators-that-throw-when-finished.js:
9242 2017-08-30 Ryan Haddad <ryanhaddad@apple.com>
9244 Unreviewed, rolling out r221327.
9246 This change caused test262 failures.
9250 "[JSC] Use reifying system for "name" property of builtin
9252 https://bugs.webkit.org/show_bug.cgi?id=175260
9253 http://trac.webkit.org/changeset/221327
9255 2017-08-30 Saam Barati <sbarati@apple.com>
9257 semicolon is being interpreted as an = in the LiteralParser
9258 https://bugs.webkit.org/show_bug.cgi?id=176114
9260 Reviewed by Oliver Hunt.
9262 * stress/jsonp-literal-parser-semicolon-is-not-assignment.js: Added.
9263 * stress/resources/literal-parser-test-case.js: Added.
9265 2017-08-30 Oleksandr Skachkov <gskachkov@gmail.com>
9267 [ESNext] Async iteration - Implement async iteration statement: for-await-of
9268 https://bugs.webkit.org/show_bug.cgi?id=166698
9270 Reviewed by Yusuke Suzuki.
9272 * stress/async-iteration-for-await-of-syntax.js: Added.
9276 (checkSimpleAsyncGeneratorSloppyMode):
9277 (checkSimpleAsyncGeneratorStrictMode):
9278 (checkNestedAsyncGenerators):
9279 (checkSimpleAsyncGeneratorSyntaxErrorInStrictMode):
9280 * stress/async-iteration-for-await-of.js: Added.
9286 2017-08-29 Yusuke Suzuki <utatane.tea@gmail.com>
9288 [JSC] Use reifying system for "name" property of builtin JSFunction
9289 https://bugs.webkit.org/show_bug.cgi?id=175260
9291 Reviewed by Saam Barati.
9293 * stress/accessors-get-set-prefix.js:
9294 * stress/builtin-function-name.js: Added.
9297 (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
9298 (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
9300 2017-08-25 Saam Barati <sbarati@apple.com>
9302 Support compiling catch in the DFG
9303 https://bugs.webkit.org/show_bug.cgi?id=174590
9304 <rdar://problem/34047845>
9306 Reviewed by Filip Pizlo.
9308 * microbenchmarks/delta-blue-try-catch.js: Added.
9311 (OrderedCollection):
9312 (OrderedCollection.prototype.add):
9313 (OrderedCollection.prototype.at):
9314 (OrderedCollection.prototype.size):
9315 (OrderedCollection.prototype.removeFirst):
9316 (OrderedCollection.prototype.remove):
9318 (Strength.stronger):
9320 (Strength.weakestOf):
9321 (Strength.strongest):
9322 (Strength.prototype.nextWeaker):
9324 (Constraint.prototype.addConstraint):
9325 (Constraint.prototype.satisfy):
9326 (Constraint.prototype.destroyConstraint):
9327 (Constraint.prototype.isInput):
9329 (UnaryConstraint.prototype.addToGraph):
9330 (UnaryConstraint.prototype.chooseMethod):
9331 (UnaryConstraint.prototype.isSatisfied):
9332 (UnaryConstraint.prototype.markInputs):
9333 (UnaryConstraint.prototype.output):
9334 (UnaryConstraint.prototype.recalculate):
9335 (UnaryConstraint.prototype.markUnsatisfied):
9336 (UnaryConstraint.prototype.inputsKnown):
9337 (UnaryConstraint.prototype.removeFromGraph):
9339 (StayConstraint.prototype.execute):
9340 (EditConstraint.prototype.isInput):
9341 (EditConstraint.prototype.execute):
9343 (BinaryConstraint.prototype.chooseMethod):
9344 (BinaryConstraint.prototype.addToGraph):
9345 (BinaryConstraint.prototype.isSatisfied):
9346 (BinaryConstraint.prototype.markInputs):
9347 (BinaryConstraint.prototype.input):
9348 (BinaryConstraint.prototype.output):
9349 (BinaryConstraint.prototype.recalculate):
9350 (BinaryConstraint.prototype.markUnsatisfied):
9351 (BinaryConstraint.prototype.inputsKnown):
9352 (BinaryConstraint.prototype.removeFromGraph):
9354 (ScaleConstraint.prototype.addToGraph):
9355 (ScaleConstraint.prototype.removeFromGraph):
9356 (ScaleConstraint.prototype.markInputs):
9357 (ScaleConstraint.prototype.execute):
9358 (ScaleConstraint.prototype.recalculate):
9359 (EqualityConstraint):
9360 (EqualityConstraint.prototype.execute):
9362 (Variable.prototype.addConstraint):
9363 (Variable.prototype.removeConstraint):
9365 (Planner.prototype.incrementalAdd):
9366 (Planner.prototype.incrementalRemove):
9367 (Planner.prototype.newMark):
9368 (Planner.prototype.makePlan):
9369 (Planner.prototype.extractPlanFromConstraints):
9370 (Planner.prototype.addPropagate):
9371 (Planner.prototype.removePropagateFrom):
9372 (Planner.prototype.addConstraintsConsumingTo):
9374 (Plan.prototype.addConstraint):
9375 (Plan.prototype.size):
9376 (Plan.prototype.constraintAt):
9377 (Plan.prototype.execute):
9382 * microbenchmarks/fake-iterators-that-throw-when-finished.js: Added.
9385 (Numbers.prototype.next):
9387 (return.Transpose.prototype.next):
9393 * microbenchmarks/try-catch-word-count.js: Added.
9408 (A.prototype.getValue):
9409 (B.prototype.getParentValue):
9419 (set delete.set has.set add):
9420 * stress/catch-set-argument-speculation-failure.js: Added.
9428 * stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added.
9434 2017-08-24 Commit Queue <commit-queue@webkit.org>
9436 Unreviewed, rolling out r221119, r221124, and r221143.
9437 https://bugs.webkit.org/show_bug.cgi?id=175973
9439 "I think it regressed JSBench by 20%" (Requested by saamyjoon
9442 Reverted changesets:
9444 "Support compiling catch in the DFG"
9445 https://bugs.webkit.org/show_bug.cgi?id=174590
9446 http://trac.webkit.org/changeset/221119
9448 "Unreviewed, build fix in GTK port"
9449 https://bugs.webkit.org/show_bug.cgi?id=174590
9450 http://trac.webkit.org/changeset/221124
9452 "DFG::JITCode::osrEntry should get sorted since we perform a
9453 binary search on it"
9454 https://bugs.webkit.org/show_bug.cgi?id=175893
9455 http://trac.webkit.org/changeset/221143
9457 2017-08-24 Michael Saboff <msaboff@apple.com>
9459 Add support for RegExp "dotAll" flag
9460 https://bugs.webkit.org/show_bug.cgi?id=175924
9462 Reviewed by Keith Miller.
9464 Updated tests for new dotAll ('s' flag) changes.
9466 * es6/Proxy_internal_get_calls_RegExp.prototype.flags.js:
9467 * stress/static-getter-in-names.js:
9469 2017-08-24 Mark Lam <mark.lam@apple.com>
9471 Land regression test for https://bugs.webkit.org/show_bug.cgi?id=164081.
9472 https://bugs.webkit.org/show_bug.cgi?id=175940
9473 <rdar://problem/29003921>
9475 Reviewed by Saam Barati.
9477 * stress/regress-164081.js: Added.
9481 2017-08-24 Ryan Haddad <ryanhaddad@apple.com>
9483 Skip flaky JSC test stress/test-finally.js.
9484 https://bugs.webkit.org/show_bug.cgi?id=160283
9486 Unreviewed test gardening.
9488 * stress/test-finally.js:
9490 2017-08-23 Saam Barati <sbarati@apple.com>
9492 Support compiling catch in the DFG
9493 https://bugs.webkit.org/show_bug.cgi?id=174590
9495 Reviewed by Filip Pizlo.
9497 * microbenchmarks/delta-blue-try-catch.js: Added.
9500 (OrderedCollection):
9501 (OrderedCollection.prototype.add):
9502 (OrderedCollection.prototype.at):
9503 (OrderedCollection.prototype.size):
9504 (OrderedCollection.prototype.removeFirst):
9505 (OrderedCollection.prototype.remove):
9507 (Strength.stronger):
9509 (Strength.weakestOf):
9510 (Strength.strongest):
9511 (Strength.prototype.nextWeaker):
9513 (Constraint.prototype.addConstraint):
9514 (Constraint.prototype.satisfy):
9515 (Constraint.prototype.destroyConstraint):
9516 (Constraint.prototype.isInput):
9518 (UnaryConstraint.prototype.addToGraph):
9519 (UnaryConstraint.prototype.chooseMethod):
9520 (UnaryConstraint.prototype.isSatisfied):
9521 (UnaryConstraint.prototype.markInputs):
9522 (UnaryConstraint.prototype.output):
9523 (UnaryConstraint.prototype.recalculate):
9524 (UnaryConstraint.prototype.markUnsatisfied):
9525 (UnaryConstraint.prototype.inputsKnown):
9526 (UnaryConstraint.prototype.removeFromGraph):
9528 (StayConstraint.prototype.execute):
9529 (EditConstraint.prototype.isInput):
9530 (EditConstraint.prototype.execute):
9532 (BinaryConstraint.prototype.chooseMethod):
9533 (BinaryConstraint.prototype.addToGraph):
9534 (BinaryConstraint.prototype.isSatisfied):
9535 (BinaryConstraint.prototype.markInputs):
9536 (BinaryConstraint.prototype.input):
9537 (BinaryConstraint.prototype.output):
9538 (BinaryConstraint.prototype.recalculate):
9539 (BinaryConstraint.prototype.markUnsatisfied):
9540 (BinaryConstraint.prototype.inputsKnown):
9541 (BinaryConstraint.prototype.removeFromGraph):
9543 (ScaleConstraint.prototype.addToGraph):
9544 (ScaleConstraint.prototype.removeFromGraph):
9545 (ScaleConstraint.prototype.markInputs):
9546 (ScaleConstraint.prototype.execute):
9547 (ScaleConstraint.prototype.recalculate):
9548 (EqualityConstraint):
9549 (EqualityConstraint.prototype.execute):
9551 (Variable.prototype.addConstraint):
9552 (Variable.prototype.removeConstraint):
9554 (Planner.prototype.incrementalAdd):
9555 (Planner.prototype.incrementalRemove):
9556 (Planner.prototype.newMark):
9557 (Planner.prototype.makePlan):
9558 (Planner.prototype.extractPlanFromConstraints):
9559 (Planner.prototype.addPropagate):
9560 (Planner.prototype.removePropagateFrom):
9561 (Planner.prototype.addConstraintsConsumingTo):
9563 (Plan.prototype.addConstraint):
9564 (Plan.prototype.size):
9565 (Plan.prototype.constraintAt):
9566 (Plan.prototype.execute):
9571 * microbenchmarks/fake-iterators-that-throw-when-finished.js: Added.
9574 (Numbers.prototype.next):
9576 (return.Transpose.prototype.next):
9582 * microbenchmarks/try-catch-word-count.js: Added.
9597 (A.prototype.getValue):
9598 (B.prototype.getParentValue):
9608 (set delete.set has.set add):
9609 * stress/catch-set-argument-speculation-failure.js: Added.
9617 * stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added.
9623 2017-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
9625 [JSC] Optimize Map iteration with intrinsic
9626 https://bugs.webkit.org/show_bug.cgi?id=174355
9628 Reviewed by Saam Barati.
9630 * stress/map-iterator-result-should-have-expected-shape.js: Added.
9633 * stress/set-iterator-result-should-have-expected-shape.js: Added.
9635 (throw.new.Error.let.iterator.set Symbol):
9636 (throw.new.Error.set add):
9637 (let.iterator.set Symbol):
9639 2017-08-23 Robin Morisset <rmorisset@apple.com>
9641 Add a micro-benchmark for checking that accessing a variable within a 'with'
9642 block does not automatically prevent type prediction.
9643 https://bugs.webkit.org/show_bug.cgi?id=175738
9645 Reviewed by Saam Barati.
9647 * stress/with_and_arith.js: Added.
9650 2017-08-23 Skachkov Oleksandr <gskachkov@gmail.com>
9652 [ESNext] Async iteration - Implement Async Generator - runtime
9653 https://bugs.webkit.org/show_bug.cgi?id=175240
9655 Reviewed by Yusuke Suzuki.
9657 * stress/async-iteration-async-from-sync.js: Added.
9661 (this.fullfilledDone):
9666 (const.assertLogger):
9667 (const.getPromise.promiseHolder.return.new.Promise):
9673 * stress/async-iteration-basic.js: Added.
9677 (this.fullfilledDone):
9682 (const.assertLogger):
9683 (const.getPromise.promiseHolder.return.new.Promise):
9685 (iterator.next.then):
9690 (A.prototype.async.foo):
9691 (A.prototype.async.boo):
9693 (asyncGenExp.async):
9706 * stress/async-iteration-evaluation.js: Added.
9710 * stress/async-iteration-syntax.js:
9711 * stress/async-iteration-yield-promise.js: Added.
9715 (this.fullfilledDone):
9720 (const.assertLogger):
9721 (const.getPromise.promiseHolder.return.new.Promise):
9725 * stress/async-iteration-yield-star-interface.js: Added.
9727 (const.getPromise.promiseHolder.return.new.Promise):
9730 (this.fullfilledDone):
9736 (const.assertLogger):
9737 (let.asyncIter.Symbol.asyncIterator):
9738 (let.asyncIter.next):
9739 (let.asyncIter.throw):
9740 (let.asyncIter.return):
9742 (asyncIter.Symbol.asyncIterator):
9749 * stress/async-iteration-yield-star.js: Added.
9753 (this.fullfilledDone):
9759 (const.assertLogger):
9760 (const.getPromise.promiseHolder.return.new.Promise):
9769 (let.asyncIter.Symbol.asyncIterator):
9770 (let.asyncIter.next):
9771 (let.asyncIter.throw):
9772 (let.asyncIter.return):
9777 2017-08-23 JF Bastien <jfbastien@apple.com>
9779 Fix printing in test
9781 Unreviewed: fixing verbosity, shouldn't have been there.
9783 * wasm/regress/175693.js:
9787 2017-08-18 Ryan Haddad <ryanhaddad@apple.com>
9789 Skip flaky JSC test microbenchmarks/generator-with-several-types.js.
9790 https://bugs.webkit.org/show_bug.cgi?id=172543
9792 Unreviewed test gardening.
9794 * microbenchmarks/generator-with-several-types.js:
9796 2017-08-17 JF Bastien <jfbastien@apple.com>
9798 WebAssembly: const in unreachable code decoded incorrectly, erroneously rejects binary as invalid
9799 https://bugs.webkit.org/show_bug.cgi?id=175693
9800 <rdar://problem/33952443>
9802 Reviewed by Saam Barati.
9804 Add a regression directory for WebAssembly tests.
9807 * wasm/regress/175693.js: Added.
9809 (instance.new.WebAssembly.Instance.new.WebAssembly.Module):
9811 * wasm/regress/175693.wasm: Added.
9813 2017-08-15 Robin Morisset <rmorisset@apple.com>
9815 Support the 'with' keyword in FTL.
9816 https://bugs.webkit.org/show_bug.cgi?id=175585
9818 Reviewed by Saam Barati.
9820 Also improve the JSTest/stress/with.js file to test
9821 what happens when non-objects are passed to with.
9828 2017-08-14 Keith Miller <keith_miller@apple.com>
9830 Add testing tool to lie to the DFG about profiles
9831 https://bugs.webkit.org/show_bug.cgi?id=175487
9833 Reviewed by Saam Barati.
9835 * stress/compare-eq-incomplete-profile.js: Added.
9836 (const.test.createBuiltin):
9838 2017-08-14 Robin Morisset <rmorisset@apple.com>
9840 Support the with keyword in DFG
9841 https://bugs.webkit.org/show_bug.cgi?id=175470
9843 Reviewed by Saam Barati.
9845 Added a new stress-test for the 'with' keyword, that caught a bug in a
9846 previous version of this code.
9848 * stress/with.js: Added.
9851 2017-08-14 Ryan Haddad <ryanhaddad@apple.com>
9853 Skip flaky JSC test test/fieldopts/objtypespec-newobj-invalidation.1.js
9854 https://bugs.webkit.org/show_bug.cgi?id=175544
9856 Unreviewed test gardening.
9860 2017-08-09 Caitlin Potter <caitp@igalia.com>
9862 Early error on ANY operator before new.target
9863 https://bugs.webkit.org/show_bug.cgi?id=157970
9865 Reviewed by Saam Barati.
9867 Instead of throwing if any unary operator precedes new.target, only
9868 throw if the unary operator updates the reference.
9870 The following become legal in JSC:
9880 All of which are legal in v8 and SpiderMonkey in strict and sloppy mode
9882 * stress/new-target-syntax-errors.js:
9883 * stress/new-target.js:
9885 2017-08-09 Ryan Haddad <ryanhaddad@apple.com>
9887 Skip failing JSC tests stress/regress-169783.js and wasm.yaml/wasm/stress/oom.js.
9888 https://bugs.webkit.org/show_bug.cgi?id=175255
9890 Unreviewed test gardening.
9892 * stress/regress-169783.js:
9893 * wasm/stress/oom.js:
9895 2017-08-09 Oleksandr Skachkov <gskachkov@gmail.com>
9897 REGRESSION: 2 test262/test/language/statements/async-function failures
9898 https://bugs.webkit.org/show_bug.cgi?id=175334
9900 Reviewed by Yusuke Suzuki.
9902 Add @skip parameters to tests, and remove test for async iterator from
9903 async await syntax test because it is already covered by async-iterator-syntax.js
9905 * stress/async-await-syntax.js:
9906 * stress/async-iteration-syntax.js:
9908 2017-08-08 Yusuke Suzuki <utatane.tea@gmail.com>
9910 Unreviewed, gardening test262 for Promise resolve / reject function length
9911 https://bugs.webkit.org/show_bug.cgi?id=175333
9915 2017-08-07 Robin Morisset <rmorisset@apple.com>
9917 GetOwnProperty of TypedArray indexed fields is wrongly configurable
9918 https://bugs.webkit.org/show_bug.cgi?id=175307
9920 Reviewed by Saam Barati.
9922 * stress/typedarray-getownproperty-not-configurable.js: Added.
9926 2017-08-06 Yusuke Suzuki <utatane.tea@gmail.com>
9928 Promise resolve and reject function should have length = 1
9929 https://bugs.webkit.org/show_bug.cgi?id=175242
9931 Reviewed by Saam Barati.
9933 * stress/builtin-function-length.js: Added.
9936 (shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
9937 (shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
9939 2017-08-06 Oleksandr Skachkov <gskachkov@gmail.com>
9941 [ESNext] Async iteration - Implement Async Generator - parser
9942 https://bugs.webkit.org/show_bug.cgi?id=175210
9944 Reviewed by Yusuke Suzuki.
9946 * stress/async-await-syntax.js:
9947 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
9948 * stress/async-iteration-syntax.js: Added.
9952 (checkSimpleAsyncGeneratorSloppyMode):
9953 (checkSimpleAsyncGeneratorStrictMode):
9954 (checkNestedAsyncGenerators):
9955 (checkSimpleAsyncGeneratorSyntaxErrorInStrictMode):
9956 * stress/generator-class-methods-syntax.js:
9958 2017-08-03 Carlos Alberto Lopez Perez <clopez@igalia.com>
9960 JSC test wasm/js-api/test_memory_constructor.js should be skipped on memoryLimited
9961 https://bugs.webkit.org/show_bug.cgi?id=175150
9963 Unreviewed test gardening.
9965 * wasm/js-api/test_memory_constructor.js:
9967 2017-08-02 Carlos Alberto Lopez Perez <clopez@igalia.com>
9969 [Linux] JSTests/wasm/stress/oom.js should not run on Linux
9970 https://bugs.webkit.org/show_bug.cgi?id=175100
9972 Reviewed by Mark Lam.
9974 The JSC test JSTests/wasm/stress/oom.js tries to use all the
9975 available memory until an out of memory exception happens.
9977 The Linux kernel is more tuned for server workloads than for GUI
9978 responsiveness. When a process tries to use a lot of memory, Linux
9979 will do its best to serve the request. This usually translates to
9980 free physical RAM by writing to disk dirty pages and/or moving out
9981 less recently used pages to swap (disk storage).
9982 Meanwhile it does this, the system will become unresponsive and this
9983 leads to freezes that can last even some minutes on the worst cases.
9985 Therefore, let's skip this test on Linux as it will cause more harm
9986 than good on the Linux bots or on the machines of Linux developers.
9988 * wasm/stress/oom.js:
9990 2017-08-01 Oleksandr Skachkov <gskachkov@gmail.com>
9992 [JSC] Remove unnecessary print from stress\promise-finally.js test
9993 https://bugs.webkit.org/show_bug.cgi?id=175015
9995 Reviewed by Yusuke Suzuki.
9997 * stress/promise-finally.js:
10001 2017-07-31 Yusuke Suzuki <utatane.tea@gmail.com>
10003 Unreviewed, update test262 results for optional catch binding
10007 2017-07-31 Yusuke Suzuki <utatane.tea@gmail.com>
10009 [JSC] Support optional catch binding
10010 https://bugs.webkit.org/show_bug.cgi?id=174981
10012 Reviewed by Saam Barati.
10014 * stress/optional-catch-binding-syntax.js: Added.
10018 * stress/optional-catch-binding.js: Added.
10022 2017-07-28 Mark Lam <mark.lam@apple.com>
10024 ObjectToStringAdaptiveStructureWatchpoint should not fire if it's dying imminently.
10025 https://bugs.webkit.org/show_bug.cgi?id=174948
10026 <rdar://problem/33495680>
10028 Reviewed by Filip Pizlo.
10030 * stress/regress-174948.js: Added.
10032 2017-07-28 Yusuke Suzuki <utatane.tea@gmail.com>
10034 ASSERTION FAILED: candidate->op() == PhantomCreateRest || candidate->op() == PhantomDirectArguments || candidate->op() == PhantomClonedArguments || candidate->op() == PhantomSpread || candidate->op() == PhantomNewArrayWithSpread
10035 https://bugs.webkit.org/show_bug.cgi?id=174900
10037 Reviewed by Saam Barati.
10039 * stress/arguments-elimination-candidate-listings-should-respect-pseudo-terminals.js: Added.
10044 2017-07-27 Yusuke Suzuki <utatane.tea@gmail.com>
10046 Hoist DOM binding attribute getter prologue into JavaScriptCore taking advantage of DOMJIT / CheckSubClass
10047 https://bugs.webkit.org/show_bug.cgi?id=171637
10049 Reviewed by Darin Adler.
10051 * stress/domjit-getter-complex-with-incorrect-object.js:
10053 * stress/domjit-getter-type-check.js: Copied from JSTests/stress/domjit-getter-complex-with-incorrect-object.js.
10057 2017-07-26 JF Bastien <jfbastien@apple.com>
10059 WebAssembly: test throwing out of the start function
10060 https://bugs.webkit.org/show_bug.cgi?id=165714
10061 <rdar://problem/29760251>
10063 Reviewed by Keith Miller.
10066 * wasm/function-tests/trap-from-start.js: Added.
10068 * wasm/function-tests/trap-from-start-async.js: Added.
10069 (async.StartTrapsAsync):
10071 2017-07-21 Yusuke Suzuki <utatane.tea@gmail.com>
10073 [FTL] Arguments elimination is suppressed by unreachable blocks
10074 https://bugs.webkit.org/show_bug.cgi?id=174352
10076 Reviewed by Filip Pizlo.
10078 * stress/arguments-elimination-force-exit.js: Added.
10082 * stress/arguments-elimination-throw.js: Added.
10088 2017-07-13 Mark Lam <mark.lam@apple.com>
10090 Add some additional test cases for bug 170896.
10091 https://bugs.webkit.org/show_bug.cgi?id=174491
10093 Reviewed by Filip Pizlo.
10095 * stress/regress-170896-with-contiguous-shape-profile.js: Copied from JSTests/stress/regress-170896.js.
10096 * stress/regress-170896-with-double-shape-profile.js: Added.
10098 * stress/regress-170896-with-int32-shape-profile.js: Added.
10100 * stress/regress-170896.js: Removed.
10102 2017-07-13 Saam Barati <sbarati@apple.com>
10104 Missing exception check in JSObject::hasInstance
10105 https://bugs.webkit.org/show_bug.cgi?id=174455
10106 <rdar://problem/31384608>
10108 Reviewed by Mark Lam.
10110 * stress/has-instance-exception-check.js: Added.
10112 (let.getter.Object.getOwnPropertyDescriptor.get foo):
10114 2017-07-13 Caio Lima <ticaiolima@gmail.com>
10116 [ESnext] Implement Object Spread
10117 https://bugs.webkit.org/show_bug.cgi?id=167963
10119 Reviewed by Saam Barati.
10121 * stress/obj-rest-destructuring-order.js: Added.
10125 * stress/obj-spread-order.js: Added.
10129 * stress/object-spread.js: Added.
10131 (assert.sameValue):
10138 (try.let.obj.get foo):
10141 2017-07-12 Saam Barati <sbarati@apple.com>
10143 GenericArguments consults the wrong state when tracking modified argument descriptors and mapped arguments
10144 https://bugs.webkit.org/show_bug.cgi?id=174411
10145 <rdar://problem/31696186>
10147 Reviewed by Mark Lam.
10149 * stress/generic-arguments-correct-delete-behavior.js: Added.
10153 2017-07-07 Mark Lam <mark.lam@apple.com>
10155 \n\r is not the same as \r\n.
10156 https://bugs.webkit.org/show_bug.cgi?id=173053
10158 Reviewed by Keith Miller.
10160 * stress/regress-173053.js: Added.
10161 * stress/template-literal-line-terminators.js:
10163 2017-07-06 Saam Barati <sbarati@apple.com>
10165 We are missing places where we invalidate the for-in context
10166 https://bugs.webkit.org/show_bug.cgi?id=174184
10168 Reviewed by Geoffrey Garen.
10170 * stress/for-in-invalidate-context-weird-assignments.js: Added.
10174 2017-07-05 Saam Barati <sbarati@apple.com>
10176 NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time
10177 https://bugs.webkit.org/show_bug.cgi?id=174188
10178 <rdar://problem/30581423>
10180 Reviewed by Mark Lam.
10182 * stress/new-array-having-a-bad-time-double.js: Added.
10186 2017-07-05 Yusuke Suzuki <utatane.tea@gmail.com>
10188 WTF::StringImpl::copyChars segfaults when built with GCC 7
10189 https://bugs.webkit.org/show_bug.cgi?id=173407
10191 Reviewed by Andreas Kling.
10193 * stress/string-repeat-copy-chars-crash.js: Added.
10196 2017-07-03 Saam Barati <sbarati@apple.com>
10198 Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run.
10200 * stress/unshiftCountSlowCase-correct-postCapacity.js:
10202 2017-07-03 Yusuke Suzuki <utatane.tea@gmail.com>
10204 Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited
10206 It requires too much memory.
10208 * stress/dont-reserve-huge-capacity-lexer.js:
10210 2017-06-30 Michael Saboff <msaboff@apple.com>
10212 Skip a test on ARM64 platform since we run out of address space.
10214 Rubber stamped by Saam Barati.
10216 * stress/dont-reserve-huge-capacity-lexer.js:
10218 2017-06-30 Michael Saboff <msaboff@apple.com>
10220 RegExp's anchored with .* with \g flag can return wrong match start for strings with multiple matches
10221 https://bugs.webkit.org/show_bug.cgi?id=174044
10223 Reviewed by Oliver Hunt.
10225 New regression test.
10227 * stress/regress-174044.js: Added.
10231 2017-06-30 Filip Pizlo <fpizlo@apple.com>
10233 RegExpCachedResult::setInput should reify left and right contexts
10234 https://bugs.webkit.org/show_bug.cgi?id=173818
10236 Reviewed by Keith Miller.
10238 * stress/right-left-context-invalidated-by-input.js: Added.
10239 (test.validateContexts):
10242 2017-06-29 Saam Barati <sbarati@apple.com>
10244 Calculating postCapacity in unshiftCountSlowCase is wrong
10245 https://bugs.webkit.org/show_bug.cgi?id=173992
10246 <rdar://problem/32283199>
10248 Reviewed by Keith Miller.
10250 * stress/unshiftCountSlowCase-correct-postCapacity.js: Added.
10253 2017-06-29 Commit Queue <commit-queue@webkit.org>
10255 Unreviewed, rolling out r218512.
10256 https://bugs.webkit.org/show_bug.cgi?id=173981
10258 "It changes the behavior of the JS API's JSEvaluateScript
10259 which breaks TurboTax" (Requested by saamyjoon on #webkit).
10261 Reverted changeset:
10263 "test262: Completion values for control flow do not match the
10265 https://bugs.webkit.org/show_bug.cgi?id=171265
10266 http://trac.webkit.org/changeset/218512
10268 2017-06-27 JF Bastien <jfbastien@apple.com>
10270 WebAssembly: running out of executable memory should throw OoM
10271 https://bugs.webkit.org/show_bug.cgi?id=171537
10272 <rdar://problem/32963338>
10274 Reviewed by Saam Barati.
10277 * wasm/lowExecutableMemory/executable-memory-oom.js: Added.
10279 (failCount.0.catch):
10280 (failCount.0.module.undefined.catch):
10281 * wasm/lowExecutableMemory/exports-oom.js: Added.
10284 (const.randomProgram):
10285 (failCount.0.catch):
10286 (failCount.0.module.undefined.catch):
10287 * wasm/lowExecutableMemory/imports-oom.js: Added.
10290 (const.randomProgram):
10292 (failCount.0.catch):
10293 (failCount.0.module.undefined.catch):
10295 2017-06-27 Caio Lima <ticaiolima@gmail.com>
10297 [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
10298 https://bugs.webkit.org/show_bug.cgi?id=167962
10300 Reviewed by Saam Barati.
10302 * stress/object-rest-deconstruct.js: Added.
10304 (let.assertPropDescriptor):
10312 2017-06-27 Saam Barati <sbarati@apple.com>
10314 Function constructor needs to follow the spec and validate parameters and body independently
10315 https://bugs.webkit.org/show_bug.cgi?id=173303
10316 <rdar://problem/32732526>
10318 Reviewed by Keith Miller.
10320 * ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
10321 * stress/function-constructor-semantics.js: Added.
10330 2017-06-26 Saam Barati <sbarati@apple.com>
10332 RegExpPrototype.js builtin uses for-of iteration which is almost certainly incorrect
10333 https://bugs.webkit.org/show_bug.cgi?id=173740
10335 Reviewed by Mark Lam.
10337 * stress/regexp-prototype-replace-builtin-should-not-use-for-of.js: Added.
10338 (Array.prototype.Symbol.iterator):
10340 2017-06-26 Saam Barati <sbarati@apple.com>
10342 Skip a test on 32-bit platforms since we run out of address space.
10344 Rubber stamped by Mark Lam.
10346 * stress/dont-reserve-huge-capacity-lexer.js:
10348 2017-06-26 Saam Barati <sbarati@apple.com>
10350 Crash in JSC::Lexer<unsigned char>::setCode
10351 https://bugs.webkit.org/show_bug.cgi?id=172754
10353 Reviewed by Mark Lam.
10355 * stress/dont-reserve-huge-capacity-lexer.js: Added.
10358 2017-06-24 Yusuke Suzuki <utatane.tea@gmail.com>
10360 [JSC] Clean up Object.entries implementation
10361 https://bugs.webkit.org/show_bug.cgi?id=173759
10363 Reviewed by Sam Weinig.
10365 * microbenchmarks/object-entries.js: Added.
10368 2017-06-24 Joseph Pecoraro <pecoraro@apple.com>
10370 Remove Reflect.enumerate
10371 https://bugs.webkit.org/show_bug.cgi?id=173806
10373 Reviewed by Yusuke Suzuki.
10377 These tests now fail because they use Reflect.enumerate.
10380 This test now passes, it checked that Reflect.enumerate is undefined!
10382 * stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js:
10383 Convert to for..in which presented the original issue. See bug <https://webkit.org/b/149811>
10385 * stress/reflect-enumerate.js: Removed.
10386 Remove a test solely for Reflect.enumerate.
10388 2017-06-22 Saam Barati <sbarati@apple.com>
10390 ValueRep(DoubleRep(@v)) can not simply convert to @v
10391 https://bugs.webkit.org/show_bug.cgi?id=173687
10392 <rdar://problem/32855563>
10394 Reviewed by Mark Lam.
10396 * stress/dont-strength-reduce-valuerep-of-doublerep.js: Added.
10399 2017-06-22 Yusuke Suzuki <utatane.tea@gmail.com>
10401 [JSC] Object.values should be implemented in C++
10402 https://bugs.webkit.org/show_bug.cgi?id=173703
10404 Reviewed by Sam Weinig.
10406 * microbenchmarks/object-keys-map-values.js: Added.
10408 * microbenchmarks/object-values.js: Added.
10410 * stress/object-values-changing-properties.js: Added.
10412 (throw.new.Error.let.source.get x):
10414 (shouldBe.let.handler.get order):
10416 (shouldBe.let.handler.get return):
10417 (let.handler.get order):
10419 2017-06-21 Saam Barati <sbarati@apple.com>
10421 eval virtual call is incorrect in the baseline JIT
10422 https://bugs.webkit.org/show_bug.cgi?id=173587
10423 <rdar://problem/32867897>
10425 Reviewed by Michael Saboff.
10427 * stress/do-eval-virtual-call-correctly.js: Added.
10433 2017-06-20 Ryan Haddad <ryanhaddad@apple.com>
10435 Update test262 test expectations after r218581.
10437 Unreviewed test gardening.
10441 2017-06-20 Oleksandr Skachkov <gskachkov@gmail.com>
10443 Revert changes in bug#160417 about extending `null` not being a derived class
10444 https://bugs.webkit.org/show_bug.cgi?id=169293
10446 Reviewed by Saam Barati.
10448 * stress/class-derived-from-null.js:
10457 2017-06-13 Yusuke Suzuki <utatane.tea@gmail.com>
10459 [DFG] More ArrayIndexOf fixups for various types
10460 https://bugs.webkit.org/show_bug.cgi?id=173176
10462 Reviewed by Saam Barati.
10464 * stress/array-indexof-arraystorage.js: Added.
10466 (indexOfInt32Other):
10467 (indexOfInt32Cell):
10468 (indexOfInt32Boolean):
10469 (indexOfDoubleOther):
10470 (indexOfDoubleCell):
10471 (indexOfDoubleBoolean):
10474 * stress/array-indexof-constant-folding.js: Added.
10476 (indexOfInt32Other):
10477 (indexOfInt32Cell):
10478 (indexOfInt32Boolean):
10479 (indexOfDoubleOther):
10480 (indexOfDoubleCell):
10481 (indexOfDoubleBoolean):
10482 * stress/array-indexof-hole-and-other.js: Added.
10485 * stress/array-indexof-other.js: Added.
10491 * stress/array-indexof-symbol.js: Added.
10498 2017-06-19 Joseph Pecoraro <pecoraro@apple.com>
10500 test262: Completion values for control flow do not match the spec
10501 https://bugs.webkit.org/show_bug.cgi?id=171265
10503 Reviewed by Saam Barati.
10505 * stress/completion-value.js:
10506 Condensed test for completion values in top level statements.
10508 * stress/super-get-by-id.js:
10509 ClassDeclaration when evaled no longer produce values. Convert
10510 these to ClassExpressions so they produce the class value.
10512 * ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
10513 This is a progression for currect spec behavior.
10515 * mozilla/mozilla-tests.yaml:
10516 This test is now outdated, so mark it as failing for that reason.
10519 Passing all "cptn" completion value tests.
10521 2017-06-17 Keith Miller <keith_miller@apple.com>
10523 ArrayBuffer constructor needs to create subclass structures before its buffer
10524 https://bugs.webkit.org/show_bug.cgi?id=173510
10526 Reviewed by Yusuke Suzuki.
10530 2017-06-17 Keith Miller <keith_miller@apple.com>
10532 ArrayPrototype methods should use JSValue::toLength for non-Arrays.
10533 https://bugs.webkit.org/show_bug.cgi?id=173506
10535 Reviewed by Ryosuke Niwa.
10539 * ChakraCore/test/Function/apply3.baseline-jsc:
10542 2017-06-16 Yusuke Suzuki <utatane.tea@gmail.com>
10544 [JSC] Add fast path for Object.assign
10545 https://bugs.webkit.org/show_bug.cgi?id=173416
10547 Reviewed by Mark Lam.
10549 * stress/object-assign-changing-properties.js: Added.
10551 (throw.new.Error.let.source.get x):
10553 (shouldBe.let.source.get x):
10554 (shouldBe.let.target.set x):
10555 (shouldBe.let.target.get x):
10556 * stress/object-assign-proxy.js: Added.
10558 (throw.new.Error.let.handler.get order):
10560 2017-06-15 Yusuke Suzuki <utatane.tea@gmail.com>
10562 [JSC] Implement Object.assign in C++
10563 https://bugs.webkit.org/show_bug.cgi?id=173414
10565 Reviewed by Saam Barati.
10567 * stress/object-assign-string-first.js: Added.
10569 (source.get Symbol):
10571 (source.get cocoa):
10573 2017-06-14 JF Bastien <jfbastien@apple.com>
10575 WebAssembly: remove empty test files
10576 https://bugs.webkit.org/show_bug.cgi?id=173382
10578 Reviewed by Saam Barati.
10580 The following files:
10581 JSTests/wasm/function-tests/call-indirect-params.js
10582 JSTests/wasm/function-tests/call-indirect.js
10583 JSTests/wasm/js-api/call-indirect-results.js
10584 Were changed to empty files in https://trac.webkit.org/changeset/209771
10586 They were testing call_indirect with the wrong semantics, before
10587 we implemented tables. That change implemented tables and
10588 therefore removed the erroneous tests.
10590 We have a few tests for call_indirect which already do the right thing:
10591 JSTests/wasm/function-tests/context-switch.js
10592 JSTests/wasm/function-tests/exceptions.js
10593 JSTests/wasm/function-tests/grow-memory-2.js
10594 JSTests/wasm/function-tests/stack-overflow.js
10595 JSTests/wasm/function-tests/table-basic-2.js
10596 JSTests/wasm/function-tests/table-basic.js
10597 JSTests/wasm/js-api/call-indirect.js
10598 JSTests/wasm/js-api/table.js
10599 JSTests/wasm/js-api/unique-signature.js
10600 JSTests/wasm/js-api/wrapper-function.js
10602 I also just imported the updated spec tests which, among other
10603 things, test call_indirect:
10606 core/call_indirect.wast
10608 core/func_ptrs.wast
10610 core/left-to-right.wast
10614 core/typecheck.wast
10615 core/unreachable.wast
10617 So I think it's OK to just delete the tests which should just have
10618 been deleted back when tables were added.
10620 * wasm/function-tests/call-indirect-params.js: Removed.
10621 * wasm/function-tests/call-indirect.js: Removed.
10622 * wasm/js-api/call-indirect-results.js: Removed.
10624 2017-06-13 JF Bastien <jfbastien@apple.com>
10626 WebAssembly: import updated spec tests
10627 https://bugs.webkit.org/show_bug.cgi?id=173287
10628 <rdar://problem/32725975>
10630 Reviewed by Saam Barati.
10632 Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b,
10633 with a few modifications so things work.
10635 Fix a bunch of bugs found through this process, and punt a few tests (which I
10636 marked as blocked by this bug).
10640 Fix load / store alignment: r216908 erroneously implemented it as bit alignment
10641 instead of byte alignment. It was also missing memory-alignment.js despite it
10642 being in the ChangeLog, so add it too. This allows spec-test/align.wast.js to
10645 Tables can be imported or in a section. There can be only one, but sections can
10646 be empty. An Elements section can exist if there's no Table, as long as it is
10649 Memories can be imported or in a section. There can be only one, but sections
10650 can be empty. A Data section can exist if there's no Memory, as long as it is
10653 Prototypes: stringify without .prototype. in the string.
10655 WebAssembly.Table.prototype.grow was plain wrong: it takes a delta parameter,
10656 not a final size, and throws a RangeError on failure, not a TypeError.
10658 Fix compile / instantiate so the reject the promise if given an argument of the
10659 wrong type (instead of failing instantly).
10661 Fix async on neuter test.
10663 Element section shouldn't affect any Table if any of the elements are out of
10664 bounds. We need to process it in two passes.
10666 Segment section shouldn't affect any Data if any of the segments are out of
10667 bounds. We need to process it in two passes.
10669 Empty data segments are valid, but only when there is no memory. Their index
10670 still gets validated, and has to be zero.
10674 Error messages with context, the test seems overly restrictive but this is
10677 compile/instantiate/validate property descriptors.
10681 Temporarily disable NaN tests. We need to go back and implement the following
10682 semantics: https://github.com/WebAssembly/spec/pull/414 This doesn't matter as
10683 much as getting all the other tests passing.
10685 Worth noting for NaNs: f64.no_fold_mul_one (also a NaN test) as well as
10686 no_fold_promote_demote (an interesting corner case which we get wrong). mul by
10687 one is (assert_return (invoke \"f64.no_fold_mul_one\" (i64.const
10688 0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) which means converting sNaN
10689 to qNaN, and promote/demote is (assert_return (invoke \"no_fold_promote_demote\"
10690 (i32.const 0x7fa00000)) (i32.const 0x7fc00000)) which is the same. I'm not sure
10691 why they're not allowed.
10694 * wasm/function-tests/i32-load8-s.js:
10695 * wasm/function-tests/memory-access-past-4gib.js:
10696 (const.op.of.WASM.opcodes):
10697 * wasm/function-tests/memory-alignment.js: Added.
10698 (const.op.of.WASM.opcodes):
10699 * wasm/function-tests/memory-section-and-import.js:
10700 * wasm/js-api/Module-compile.js:
10701 (async.testPromiseAPI):
10702 * wasm/js-api/dont-mmap-zero-byte-memory.js:
10704 * wasm/js-api/element.js:
10705 (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
10706 * wasm/js-api/neutered-inputs.js:
10707 (const.testFunction): Deleted.
10708 (const.testConstructor): Deleted.
10709 * wasm/js-api/table.js:
10710 (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
10711 (new.WebAssembly.Module):
10713 (assertBadTableImport):
10714 (assert.throws.WebAssembly.Table.prototype.grow):
10715 (assertBadTableInstance): Deleted.
10716 * wasm/js-api/test_Data.js:
10717 (DataSectionWithoutMemory):
10718 * wasm/spec-harness/index.js:
10720 (uniqueTest): Deleted.
10721 (assert_invalid): Deleted.
10722 (assert_soft_invalid): Deleted.
10723 (register): Deleted.
10725 (get instance): Deleted.
10726 (exports): Deleted.
10728 (assert_unlinkable): Deleted.
10729 (assert_uninstantiable): Deleted.
10730 (assert_trap): Deleted.
10733 (assert_exhaustion): Deleted.
10734 (assert_return): Deleted.
10735 (assert_return_nan): Deleted.
10736 * wasm/spec-harness/testharness.css: Removed.
10737 * wasm/spec-harness/testharness.js: Removed.
10738 * wasm/spec-harness/testharnessreport.js: Removed.
10739 * wasm/spec-harness/wasm-constants.js:
10741 (assertWasmThrows):
10742 * wasm/spec-harness/wasm-module-builder.js:
10743 (Binary.prototype.emit_section):
10745 (WasmFunctionBuilder.prototype.addBody):
10746 (WasmFunctionBuilder.prototype.end):
10747 (WasmFunctionBuilder):
10748 (WasmModuleBuilder.prototype.stringToBytes):
10749 (WasmModuleBuilder.prototype.addCustomSection):
10750 (WasmModuleBuilder.prototype.addFunctionTableInit):
10751 (WasmModuleBuilder.prototype.appendToTable):
10752 (WasmModuleBuilder.prototype.toArray):
10753 (WasmModuleBuilder.prototype.toBuffer):
10754 (WasmModuleBuilder.prototype.instantiate):
10755 (WasmModuleBuilder):
10756 * wasm/spec-tests/address.wast.js:
10757 * wasm/spec-tests/align.wast.js: Added.
10758 * wasm/spec-tests/binary.wast.js:
10759 * wasm/spec-tests/block.wast.js:
10760 * wasm/spec-tests/br.wast.js:
10761 * wasm/spec-tests/br_if.wast.js:
10762 * wasm/spec-tests/br_table.wast.js:
10763 * wasm/spec-tests/call.wast.js:
10764 * wasm/spec-tests/call_indirect.wast.js:
10765 * wasm/spec-tests/comments.wast.js:
10766 * wasm/spec-tests/const.wast.js: Added.
10767 * wasm/spec-tests/conversions.wast.js: Added.
10768 * wasm/spec-tests/custom_section.wast.js:
10769 * wasm/spec-tests/exports.wast.js:
10770 * wasm/spec-tests/f32.wast.js: Added.
10771 * wasm/spec-tests/f64.wast.js: Added.
10772 * wasm/spec-tests/fac.wast.js:
10773 * wasm/spec-tests/float_exprs.wast.js: Added.
10774 * wasm/spec-tests/float_misc.wast.js: Added.
10775 * wasm/spec-tests/func.wast.js:
10776 * wasm/spec-tests/globals.wast.js:
10777 * wasm/spec-tests/if.wast.js:
10778 * wasm/spec-tests/imports.wast.js:
10779 * wasm/spec-tests/inline-module.wast.js: Added.
10780 * wasm/spec-tests/jsapi.js:
10783 * wasm/spec-tests/labels.wast.js:
10784 * wasm/spec-tests/loop.wast.js:
10785 * wasm/spec-tests/memory.wast.js:
10786 * wasm/spec-tests/memory_trap.wast.js: Added.
10787 * wasm/spec-tests/names.wast.js:
10788 * wasm/spec-tests/nop.wast.js:
10789 * wasm/spec-tests/return.wast.js:
10790 * wasm/spec-tests/stack.wast.js:
10791 * wasm/spec-tests/token.wast.js: Added.
10792 * wasm/spec-tests/type.wast.js: Added.
10793 * wasm/spec-tests/typecheck.wast.js:
10794 * wasm/spec-tests/unreachable.wast.js:
10795 * wasm/spec-tests/unreached-invalid.wast.js:
10796 * wasm/spec-tests/unwind.wast.js:
10797 * wasm/spec-tests/utf8-custom-section-id.wast.js: Added.
10798 * wasm/spec-tests/utf8-import-field.wast.js: Added.
10799 * wasm/spec-tests/utf8-import-module.wast.js: Added.
10801 2017-06-13 Ryan Haddad <ryanhaddad@apple.com>
10803 Unreviewed JSC test gardening.
10805 * stress/check-string-ident.js:
10806 * stress/new-largeish-contiguous-array-with-size.js:
10808 2017-06-13 Michael Saboff <msaboff@apple.com>
10810 DFG doesn't properly handle a property that is change to read only in a prototype
10811 https://bugs.webkit.org/show_bug.cgi?id=173321
10813 Reviewed by Filip Pizlo.
10815 * ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js.
10816 * stress/regress-173321.js: Added new regression test.
10821 2017-06-12 Saam Barati <sbarati@apple.com>
10823 Update test262 test expectation since r218082 makes new tests pass.
10827 2017-06-12 Saam Barati <sbarati@apple.com>
10829 We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms
10830 https://bugs.webkit.org/show_bug.cgi?id=172957
10831 <rdar://problem/32602704>
10833 Reviewed by Filip Pizlo.
10835 * stress/spec-empty-flows-through-cell-checks.js: Added.
10840 2017-06-12 Oleksandr Skachkov <gskachkov@gmail.com>
10842 We incorrectly allow escaped characters in keyword tokens
10843 https://bugs.webkit.org/show_bug.cgi?id=171310
10845 Reviewed by Yusuke Suzuki.
10847 * stress/destructuring-assignment-syntax.js:
10848 * stress/error-messages-for-in-operator-should-not-crash.js:
10850 * stress/reserved-word-with-escape.js:
10851 (testSyntaxError.String.raw.v):
10852 (String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
10853 (testSyntaxError.String.raw.a):
10854 * JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc:
10856 2017-06-09 Yusuke Suzuki <utatane.tea@gmail.com>
10858 [DFG] Add ArrayIndexOf intrinsic
10859 https://bugs.webkit.org/show_bug.cgi?id=172421
10861 Reviewed by Saam Barati.
10863 * stress/array-indexof-array-prototype-change.js: Added.
10866 * stress/array-indexof-have-a-bad-time-getter.js: Added.
10869 * stress/array-indexof-have-a-bad-time.js: Added.
10872 * stress/array-indexof-hole-with-prototype.js: Added.
10875 * stress/array-indexof-hole.js: Added.
10878 * stress/array-indexof-index.js: Added.
10885 * stress/array-indexof-negative-index.js: Added.
10892 * stress/array-indexof-non-int32-start-index.js: Added.
10896 * stress/array-indexof-object-prototype-change.js: Added.
10899 * stress/array-indexof-object.js: Added.
10902 * stress/array-indexof-original-array.js: Added.
10905 * stress/array-indexof-string.js: Added.
10908 * stress/array-indexof-structure-change-convert.js: Added.
10911 * stress/array-indexof-structure-change.js: Added.
10914 * stress/array-indexof.js: Added.
10918 2017-06-11 Keith Miller <keith_miller@apple.com>
10920 TypedArray constructor with string shouldn't throw
10921 https://bugs.webkit.org/show_bug.cgi?id=173181
10923 Reviewed by JF Bastien.
10925 We should be coercing primitive arguments to numbers in the various
10926 TypedArray constructors.
10928 * stress/typedarray-constructor.js:
10930 2017-06-11 Yusuke Suzuki <utatane.tea@gmail.com>
10932 Unreviewed, update test results part 3
10933 https://bugs.webkit.org/show_bug.cgi?id=173227
10935 * microbenchmarks/regexp-prototype-search-observable-side-effects.js:
10937 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
10939 Unreviewed, update test results part 2
10940 https://bugs.webkit.org/show_bug.cgi?id=173227
10944 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
10946 Unreviewed, update test results
10947 https://bugs.webkit.org/show_bug.cgi?id=173227
10949 * microbenchmarks/string-prototype-search-observable-side-effects.js:
10952 2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
10954 [JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
10955 https://bugs.webkit.org/show_bug.cgi?id=173227
10957 Reviewed by Mark Lam.
10961 * es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
10963 2017-06-08 Keith Miller <keith_miller@apple.com>
10965 WebAssembly: We should only create wrappers for functions that can be exported
10966 https://bugs.webkit.org/show_bug.cgi?id=173088
10968 Reviewed by Saam Barati.
10970 Remove a bunch of old tests that are actually duplicates of the spec-tests and rely
10971 on the old testWasmModuleFunctions api, which has been removed.
10973 * wasm/function-tests/copysign.js: Removed.
10974 * wasm/function-tests/ctz.js: Removed.
10975 * wasm/function-tests/drop.js: Removed.
10976 * wasm/function-tests/dumb-eq-if-then-else.js: Removed.
10977 * wasm/function-tests/dumb-less-than-fallthrough.js: Removed.
10978 * wasm/function-tests/dumb-less-than-ite.js: Removed.
10979 * wasm/function-tests/eqz.js: Removed.
10980 * wasm/function-tests/i32-trunc-s-f32.js: Removed.
10981 * wasm/function-tests/i32-trunc-s-f64.js: Removed.
10982 * wasm/function-tests/i32-trunc-u-f32.js: Removed.
10983 * wasm/function-tests/i32-trunc-u-f64.js: Removed.
10984 * wasm/function-tests/i64-trunc-s-f32.js: Removed.
10985 * wasm/function-tests/i64-trunc-s-f64.js: Removed.
10986 * wasm/function-tests/i64-trunc-u-f32.js: Removed.
10987 * wasm/function-tests/i64-trunc-u-f64.js: Removed.
10988 * wasm/function-tests/if-then-else-fallthrough.js: Removed.
10989 * wasm/function-tests/if-then-fallthrough.js: Removed.
10990 * wasm/function-tests/int-to-floating-point.js: Removed.
10991 * wasm/function-tests/loop-mult.js:
10992 * wasm/function-tests/loop-sum.js:
10993 * wasm/function-tests/max.js: Removed.
10994 * wasm/function-tests/min.js: Removed.
10995 * wasm/function-tests/nearest.js: Removed.
10996 * wasm/function-tests/nop.js: Removed.
10997 * wasm/function-tests/popcnt.js: Removed.
10998 * wasm/function-tests/ret5.js:
10999 * wasm/function-tests/select.js: Removed.
11000 * wasm/function-tests/tee-local.js: Removed.
11001 * wasm/function-tests/trunc.js: Removed.
11003 2017-06-07 JF Bastien <jfbastien@apple.com>
11005 WebAssembly: test imports and exports with 16-bit characters
11006 https://bugs.webkit.org/show_bug.cgi?id=165977
11007 <rdar://problem/29760130>
11009 Reviewed by Saam Barati.
11011 The output for import failure was improved, so many tests need to
11012 be updated here. Only one has new tests as noted below.
11014 * wasm/function-tests/memory-import-and-grow.js:
11015 * wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
11017 * wasm/js-api/global-error.js:
11020 * wasm/js-api/table.js:
11022 (new.WebAssembly.Table):
11023 * wasm/js-api/test_memory.js:
11025 * wasm/js-api/wasm-to-wasm-bad-signature.js:
11026 (BadSignatureDropStartParams.):
11027 (BadSignatureDropStartParams):
11028 (BadSignatureDropEndParams.):
11029 (BadSignatureSwapParam.):
11030 (BadSignatureRet.):
11031 * wasm/js-api/web-assembly-instantiate.js:
11032 (assert.asyncTest.async.test):
11033 (assert.asyncTest):
11034 * wasm/js-api/wrapper-function.js:
11035 (return.new.WebAssembly.Module):
11037 2017-06-07 Mark Lam <mark.lam@apple.com>
11039 Restrict the regress-173035.js test to only run on Darwin x86-64.
11040 https://bugs.webkit.org/show_bug.cgi?id=173075
11042 Reviewed by Saam Barati.
11044 This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that
11045 this test will require to succeed. Here's an example of this failure:
11046 https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio
11048 Since the issue is due to allocation of a very large amount of memory, the test
11049 will probably fail on iOS and other platforms as well. Hence, we should just
11050 skip this test for any platforms that is not Darwin x86-64.
11052 * stress/regress-173035.js:
11054 2017-06-07 Mark Lam <mark.lam@apple.com>
11056 ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
11057 https://bugs.webkit.org/show_bug.cgi?id=168587
11061 Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
11063 * stress/test-finally.js:
11065 2017-06-06 Mark Lam <mark.lam@apple.com>
11067 Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH.
11068 https://bugs.webkit.org/show_bug.cgi?id=173035
11069 <rdar://problem/32554593>
11071 Reviewed by Geoffrey Garen and Filip Pizlo.
11073 * stress/regress-173035.js: Added.
11075 2017-06-06 Saam Barati <sbarati@apple.com>
11077 Make sure we restore SP when doing calls that could be to JS
11078 https://bugs.webkit.org/show_bug.cgi?id=172946
11079 <rdar://problem/32579026>
11081 Reviewed by JF Bastien.
11083 * wasm/function-tests/many-args-tail-call-sp-restored.js: Added.
11084 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1):
11085 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end):
11086 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2):
11087 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly):
11089 2017-06-06 Joseph Pecoraro <pecoraro@apple.com>
11091 Unreviewed rollout r217807. Caused a test to crash.
11093 * heapProfiler/class-names.js: Removed.
11094 * heapProfiler/driver/driver.js:
11095 (CheapHeapSnapshotNode):
11096 (CheapHeapSnapshot):
11097 (createCheapHeapSnapshot):
11099 (createHeapSnapshot):
11100 * typeProfiler/inheritance.js:
11106 2017-06-06 Filip Pizlo <fpizlo@apple.com>
11108 index out of bound in bytecodebasicblock
11109 https://bugs.webkit.org/show_bug.cgi?id=172963
11111 Reviewed by Saam Barati and Mark Lam.
11113 * stress/dfg-call-class-constructor.js: Added.
11117 2017-06-05 Joseph Pecoraro <pecoraro@apple.com>
11119 Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
11120 https://bugs.webkit.org/show_bug.cgi?id=172848
11121 <rdar://problem/25709212>
11123 Reviewed by Saam Barati.
11125 * typeProfiler/inheritance.js:
11126 Rewrite the test slightly for clarity. The hoisting was confusing.
11128 * heapProfiler/class-names.js: Added.
11132 Test object types and improved class names.
11134 * heapProfiler/driver/driver.js:
11135 (CheapHeapSnapshotNode):
11136 (CheapHeapSnapshot):
11137 (createCheapHeapSnapshot):
11139 (createHeapSnapshot):
11140 Update snapshot parsing from version 1 to version 2.
11142 2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
11144 ASSERTION FAILED: "We should only declare a function as a lexically scoped variable in scopes where var declarations aren't allowed. ..." for function redeclaration with async function module export
11145 https://bugs.webkit.org/show_bug.cgi?id=168844
11147 Reviewed by Saam Barati.
11149 * modules/async-function-export.js: Added.
11153 2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
11155 ES2015 modules - Export default function hoisting
11156 https://bugs.webkit.org/show_bug.cgi?id=170174
11158 Reviewed by Saam Barati.
11160 This issue itself is solved by fixing function declaration hoisting rules.
11161 This patch just adds the specific test to modules tests to ensure the bug
11164 * modules/export-default-function-hoisting.js: Added.
11165 * modules/export-default-function-hoisting/cappuccino.js: Added.
11166 (import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):
11167 * modules/export-default-function-hoisting/cocoa.js: Added.
11168 (export.default.drinkCocoa):
11170 2017-06-01 Oleksandr Skachkov <gskachkov@gmail.com>
11172 Class Proxy can't be extended
11173 https://bugs.webkit.org/show_bug.cgi?id=169040
11175 Reviewed by Saam Barati.
11177 Adding tests that check correctness of Proxy to ES6 `class`
11178 Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849
11180 * stress/proxy-class.js: Added.
11182 (throw.new.Error.SuperClass):
11183 (throw.new.Error.A):
11186 2017-05-31 Yusuke Suzuki <utatane.tea@gmail.com>
11188 [JSC] Implement String.prototype.concat in JS builtins
11189 https://bugs.webkit.org/show_bug.cgi?id=172798
11191 Reviewed by Sam Weinig.
11193 * microbenchmarks/string-concat-convert.js: Added.
11195 * microbenchmarks/string-concat-long-convert.js: Added.
11197 * microbenchmarks/string-concat-long.js: Added.
11199 * microbenchmarks/string-concat.js: Added.
11202 2017-05-31 Oleksandr Skachkov <gskachkov@gmail.com>
11204 Rolling out: Prevent async methods named 'function'
11205 https://bugs.webkit.org/show_bug.cgi?id=172776
11207 Reviewed by Mark Lam.
11209 * stress/async-await-syntax.js:
11210 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
11211 (testTopLevelAsyncAwaitSyntaxSloppyMode):
11212 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
11213 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
11214 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
11216 2017-05-31 Ryan Haddad <ryanhaddad@apple.com>
11218 Skip flaky JSC test stress/test-finally.js
11219 https://bugs.webkit.org/show_bug.cgi?id=168587
11221 Unreviewed test gardening.
11223 * stress/test-finally.js:
11225 2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
11227 Prevent async methods named 'function' in Object literal
11228 https://bugs.webkit.org/show_bug.cgi?id=172660
11230 Reviewed by Saam Barati.
11232 * stress/async-await-syntax.js:
11233 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
11235 2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
11237 ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
11238 https://bugs.webkit.org/show_bug.cgi?id=171274
11240 Reviewed by Saam Barati.
11242 * stress/async-arrow-functions-lexical-binding-in-class.js:
11244 (shouldBeAsyncAndStoreBind):
11245 (promise.new.Promise):
11247 (ChildClass4.prototype.classValue):
11248 (ChildClass4.prototype.get classProperty):
11249 * stress/async-arrow-functions-lexical-super-binding.js:
11251 (const.childA1.new.prototype.var.f.async):
11252 (const.childA1.new.var):
11253 (const.childA1.new):
11254 (const.childA2.new.prototype.var.f.async):
11255 (const.childA2.new.var):
11256 (const.childA2.new):
11257 (const.childA3.new.prototype.var.f.async):
11258 (const.childA3.new.var):
11259 (const.childA3.new):
11260 (try.childA4.new.prototype.var.f.async):
11261 (try.childA4.new.var):
11264 (const.childA5.new.prototype.var.f.async):
11265 (const.childA5.new.var):
11266 (const.childA5.new):
11268 (checkClass.new.prototype.var.f.async):
11269 (checkClass.new.var):
11271 (checkClass.new.prototype.method):
11272 (checkClass.new.prototype.prop):
11274 2017-05-27 Yusuke Suzuki <utatane.tea@gmail.com>
11276 [JSC] Map and Set constructors should have fast path for cloning
11277 https://bugs.webkit.org/show_bug.cgi?id=172413
11279 Reviewed by Saam Barati.
11281 * stress/map-clone-instance-iterator-change.js: Added.
11283 (map.Symbol.iterator):
11284 * stress/map-clone-iterator-change.js: Added.
11286 (Map.prototype.Symbol.iterator):
11287 * stress/map-clone-next-change.js: Added.
11289 (map.Symbol.iterator.__proto__.next):
11290 * stress/map-clone.js: Added.
11293 * stress/map-inherit-set.js: Added.
11297 * stress/set-clone-instance-iterator-change.js: Added.
11299 (set Symbol.iterator):
11300 * stress/set-clone-iterator-change.js: Added.
11302 (set Set.prototype.Symbol.iterator):
11303 * stress/set-clone-next-change.js: Added.
11305 (set Symbol.iterator.__proto__.next):
11306 * stress/set-clone.js: Added.
11308 (set Set.prototype.add):
11309 * stress/set-inherit-add.js: Added.
11311 (DerivedSet.set add):
11313 2017-05-26 Ryan Haddad <ryanhaddad@apple.com>
11315 Unreviewed, rolling out r217458.
11317 This change caused 55 JSC test failures.
11319 Reverted changeset:
11321 "Date should use historical data if it's available."
11322 https://bugs.webkit.org/show_bug.cgi?id=172592
11323 http://trac.webkit.org/changeset/217458
11325 2017-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
11327 Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
11328 https://bugs.webkit.org/show_bug.cgi?id=167805
11330 Reviewed by Saam Barati.
11332 * modules/module-jit-reachability.js: Added.
11334 2017-05-26 Oleksandr Skachkov <gskachkov@gmail.com>
11336 Prevent async methods named 'function'
11337 https://bugs.webkit.org/show_bug.cgi?id=172598
11339 Reviewed by Mark Lam.
11341 * stress/async-await-syntax.js:
11342 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
11343 (testTopLevelAsyncAwaitSyntaxSloppyMode):
11344 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
11345 (prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
11346 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
11348 2017-05-25 Keith Miller <keith_miller@apple.com>
11350 Date should use historical data if it's available.
11351 https://bugs.webkit.org/show_bug.cgi?id=172592
11353 Reviewed by Mark Lam.
11355 Remove parts of the date tests that rely on the absence of
11356 historical data in Date.
11358 * mozilla/ecma/Date/15.9.5.31-1.js:
11360 * mozilla/ecma/Date/15.9.5.35-1.js:
11363 2017-05-25 Saam Barati <sbarati@apple.com>
11365 Our for-in optimization in the bytecode generator does its static analysis incorrectly
11366 https://bugs.webkit.org/show_bug.cgi?id=172532
11367 <rdar://problem/32369452>
11369 Reviewed by Mark Lam.
11371 * stress/for-in-invalidation-for-any-write.js: Added.
11376 2017-05-25 Mark Lam <mark.lam@apple.com>
11378 ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly.
11379 https://bugs.webkit.org/show_bug.cgi?id=172548
11380 <rdar://problem/31458393>
11382 Reviewed by Filip Pizlo.
11384 * stress/regress-172548.patch: Added.
11386 2017-05-23 Saam Barati <sbarati@apple.com>
11388 We should not mmap zero bytes for a memory in Wasm
11389 https://bugs.webkit.org/show_bug.cgi?id=172528
11390 <rdar://problem/32257076>
11392 Reviewed by Mark Lam.
11394 * wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
11397 2017-05-23 Saam Barati <sbarati@apple.com>
11399 CFGSimplificationPhase should not merge a block with itself
11400 https://bugs.webkit.org/show_bug.cgi?id=172508
11401 <rdar://problem/28424006>
11403 Reviewed by Keith Miller.
11405 * stress/dont-crash-in-cfg-simplification.js: Added.
11410 2017-05-20 Yusuke Suzuki <utatane.tea@gmail.com>
11412 [FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
11413 https://bugs.webkit.org/show_bug.cgi?id=172216
11415 Reviewed by Saam Barati.
11417 * stress/array-storage-get-by-val.js: Added.
11421 (testSlowPutOutOfBound):
11422 (testSlowPutInBound):
11424 2017-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
11426 Unreviewed, fix commented out tests
11427 https://bugs.webkit.org/show_bug.cgi?id=172225
11429 * stress/get-by-val-string.js:
11432 (Hello.prototype.get 42):
11433 (Hello.prototype.43):
11436 (throw.new.Error): Deleted.
11438 2017-05-21 Saam Barati <sbarati@apple.com>
11440 We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
11441 https://bugs.webkit.org/show_bug.cgi?id=171041
11442 <rdar://problem/32082516>
11444 Reviewed by Yusuke Suzuki.
11446 * stress/lexical-scoping-for-loop.js: Added.
11461 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
11463 [JSC] Make get_by_val & string "499" to number 499
11464 https://bugs.webkit.org/show_bug.cgi?id=172225
11466 Reviewed by Saam Barati.
11468 * stress/get-by-val-string.js: Added.
11473 (Hello.prototype.get 42):
11474 (Hello.prototype.43):
11477 2017-05-19 Mark Lam <mark.lam@apple.com>
11479 [Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
11480 https://bugs.webkit.org/show_bug.cgi?id=172383
11481 <rdar://problem/31418651>
11483 Reviewed by Filip Pizlo.
11485 * stress/regress-172383.js: Added.
11487 2017-05-19 Ryan Haddad <ryanhaddad@apple.com>
11489 Unreviewed, rolling out r217156.
11491 This change broke the iOS build.
11493 Reverted changeset:
11495 "DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
11497 https://bugs.webkit.org/show_bug.cgi?id=172383
11498 http://trac.webkit.org/changeset/217156
11500 2017-05-19 Mark Lam <mark.lam@apple.com>
11502 Add missing exception check.
11503 https://bugs.webkit.org/show_bug.cgi?id=172346
11504 <rdar://problem/32289640>
11506 Reviewed by Geoffrey Garen.
11508 * stress/regress-172346.js: Added.
11510 2017-05-19 Mark Lam <mark.lam@apple.com>
11512 DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
11513 https://bugs.webkit.org/show_bug.cgi?id=172383
11514 <rdar://problem/31418651>
11516 Reviewed by Filip Pizlo.
11518 * stress/regress-172383.js: Added.
11520 2017-05-19 Filip Pizlo <fpizlo@apple.com>
11522 arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
11523 https://bugs.webkit.org/show_bug.cgi?id=172369
11525 Reviewed by Mark Lam.
11527 * stress/undecided-concat.js: Added.
11529 2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
11531 [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
11532 https://bugs.webkit.org/show_bug.cgi?id=172098
11534 Reviewed by Saam Barati.
11536 * stress/check-sub-class.js: Added.
11543 2017-05-18 JF Bastien <jfbastien@apple.com>
11545 WebAssembly: exports is a getter
11546 https://bugs.webkit.org/show_bug.cgi?id=172129
11548 Reviewed by Saam Barati.
11550 Update test to reflect new semantics.
11552 * wasm/js-api/test_basic_api.js:
11553 (const.c.in.constructorProperties.switch):
11555 2017-05-18 Saam Barati <sbarati@apple.com>
11557 Proxy's [[Get]] passes incorrect receiver
11558 https://bugs.webkit.org/show_bug.cgi?id=164849
11559 <rdar://problem/31767058>
11561 Reviewed by Yusuke Suzuki.
11563 * stress/proxy-get-set-correct-receiver.js: Added.
11566 (test.let.target.set prop):
11567 (test.let.target.get prop):
11569 * stress/proxy-set.js:
11570 (let.target.get x):
11571 * stress/reflect-set-proxy-set.js:
11572 (let.target.get x):
11573 * stress/reflect-set-receiver-proxy-set.js:
11574 (let.target.get x):
11576 2017-05-18 Filip Pizlo <fpizlo@apple.com>
11578 Constructor calls set this too early
11579 https://bugs.webkit.org/show_bug.cgi?id=172302
11581 Reviewed by Saam Barati.
11583 This tests all three kinds of constructs in BytecodeGenerator. All three were previously
11586 * stress/construct-overwritten-variable.js: Added.
11588 * stress/construct-spread-overwritten-variable-2.js: Added.
11590 * stress/construct-spread-overwritten-variable.js: Added.
11593 2017-05-18 Saam Barati <sbarati@apple.com>
11595 WebAssembly: perform stack checks
11596 https://bugs.webkit.org/show_bug.cgi?id=165546
11597 <rdar://problem/29760307>
11599 Reviewed by Filip Pizlo.
11602 * wasm/function-tests/factorial.js:
11603 * wasm/function-tests/float-sub.js:
11604 * wasm/function-tests/stack-overflow.js: Added.
11605 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
11606 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
11607 (assertOverflows.makeInstance):
11608 (assertOverflows.makeInstance2):
11609 (assertOverflows.assertThrows):
11611 (assertThrows.test.makeSignature):
11612 (assertThrows.test.makeInstance):
11613 (assertThrows.test):
11616 2017-05-18 Keith Miller <keith_miller@apple.com>
11618 WebAssembly API: test with neutered inputs
11619 https://bugs.webkit.org/show_bug.cgi?id=163899
11621 Reviewed by JF Bastien.
11623 * wasm/js-api/neutered-inputs.js: Added.
11624 (const.testFunction):
11625 (const.testConstructor):
11626 * wasm/js-api/test_basic_api.js:
11627 (const.c.in.constructorProperties.switch):
11629 2017-05-18 Filip Pizlo <fpizlo@apple.com>
11631 DFG inlining should be hardened for the no-result case
11632 https://bugs.webkit.org/show_bug.cgi?id=172290
11634 Reviewed by Saam Barati.
11636 * stress/array-constructor-no-result.js: Added.
11638 * stress/pow-no-result.js: Added.
11641 2017-05-18 Commit Queue <commit-queue@webkit.org>
11643 Unreviewed, rolling out r217031, r217032, and r217037.
11644 https://bugs.webkit.org/show_bug.cgi?id=172293
11646 cause linking errors in Windows (Requested by yusukesuzuki on
11649 Reverted changesets:
11651 "[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
11652 https://bugs.webkit.org/show_bug.cgi?id=172098
11653 http://trac.webkit.org/changeset/217031
11655 "Unreviewed, rebaseline for newly added ClassInfo"
11656 https://bugs.webkit.org/show_bug.cgi?id=172098
11657 http://trac.webkit.org/changeset/217032
11659 "Unreviewed, fix debug and non-JIT build"
11660 https://bugs.webkit.org/show_bug.cgi?id=172098
11661 http://trac.webkit.org/changeset/217037
11663 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
11665 [JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
11666 https://bugs.webkit.org/show_bug.cgi?id=172098
11668 Reviewed by Saam Barati.
11670 * stress/check-sub-class.js: Added.
11677 2017-05-17 Filip Pizlo <fpizlo@apple.com>
11679 Unreviewed, address mlam's review feedback.
11681 * stress/arguments-elimination-varargs-too-many-args-arg-count.js:
11683 2017-05-17 Saam Barati <sbarati@apple.com>
11685 We don't do context switches for Wasm->Wasm call indirect
11686 https://bugs.webkit.org/show_bug.cgi?id=172188
11687 <rdar://problem/32231828>
11689 Reviewed by Keith Miller.
11691 * wasm/function-tests/context-switch.js: Added.
11692 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
11693 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
11694 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
11697 (assert.eq.makeInstance):
11698 (assert.eq.makeInstance2):
11701 2017-05-17 Filip Pizlo <fpizlo@apple.com>
11703 JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
11704 https://bugs.webkit.org/show_bug.cgi?id=172208
11706 Reviewed by Saam Barati.
11708 * stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
11713 2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
11715 [DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
11716 https://bugs.webkit.org/show_bug.cgi?id=172115
11718 Reviewed by Saam Barati.
11720 * stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
11728 2017-05-16 JF Bastien <jfbastien@apple.com>
11730 WebAssembly: add memory fuzzer
11731 https://bugs.webkit.org/show_bug.cgi?id=169976
11732 <rdar://problem/31965328>
11734 Reviewed by Keith Miller.
11736 * wasm/fuzz/memory.js: Added.
11738 (const.action.string_appeared_here):
11739 (const.performAction):
11742 2017-05-16 JF Bastien <jfbastien@apple.com>
11744 WebAssembly: validate load / store alignment
11745 https://bugs.webkit.org/show_bug.cgi?id=168836
11746 <rdar://problem/31965349>
11748 Reviewed by Keith Miller.
11750 * wasm/WASM.js: fix regular expression greed
11751 * wasm/function-tests/memory-alignment.js: Added.
11752 (const.op.of.WASM.opcodes):
11753 * wasm/wasm.json: fix formatting
11755 2017-05-15 Mark Lam <mark.lam@apple.com>
11757 Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
11758 https://bugs.webkit.org/show_bug.cgi?id=172147
11760 Rubber-stamped by Saam Barati.
11762 * stress/object-rest-deconstruct.js: Removed.
11763 * stress/object-spread.js: Removed.
11765 2017-05-11 JF Bastien <jfbastien@apple.com>
11767 WebAssembly: stop supporting 0xD
11768 https://bugs.webkit.org/show_bug.cgi?id=168788
11769 <rdar://problem/31880922>
11771 Reviewed by Saam Barati.
11773 Test that only version 1 is supported.
11775 * wasm/js-api/version.js: Added.
11777 2017-05-10 JF Bastien <jfbastien@apple.com>
11779 WebAssemby: builder doesn't do Memory section maximum correctly
11780 https://bugs.webkit.org/show_bug.cgi?id=171931
11782 Reviewed by Keith Miller.
11785 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
11786 * wasm/Builder_WebAssemblyBinary.js:
11787 (const.emitters.Memory):
11788 * wasm/function-tests/memory-grow-invalid.js: Added.
11790 2017-05-10 JF Bastien <jfbastien@apple.com>
11792 WebAssembly: support name section
11793 https://bugs.webkit.org/show_bug.cgi?id=171263
11795 Reviewed by Keith Miller.
11797 * wasm/function-tests/nameSection.js: Added.
11799 * wasm/function-tests/nameSection.wasm: Added.
11800 * wasm/function-tests/stack-trace.js: Update format
11802 2017-05-10 Filip Pizlo <fpizlo@apple.com>
11804 Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
11805 https://bugs.webkit.org/show_bug.cgi?id=171801
11807 Reviewed by Michael Saboff.
11809 These tests used to crash. The prefix and postfix tests cover different paths, except
11810 postfix-ignored goes down the same path as prefix due to an optimization.
11812 * stress/for-in-postfix-ignored-index.js: Added.
11814 * stress/for-in-postfix-index.js: Added.
11816 * stress/for-in-prefix-index.js: Added.
11819 2017-05-08 Mark Lam <mark.lam@apple.com>
11821 op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
11822 https://bugs.webkit.org/show_bug.cgi?id=171786
11823 <rdar://problem/32051023>
11825 Reviewed by Saam Barati.
11827 * stress/bug-171786.js: Added.
11829 2017-05-06 Oleksandr Skachkov <gskachkov@gmail.com>
11831 [ES6] Arrow function. Issue in access to this after eval('super()') within constructor
11832 https://bugs.webkit.org/show_bug.cgi?id=171543
11834 Reviewed by Saam Barati.
11836 * stress/arrowfunction-lexical-bind-supercall-4.js:
11840 2017-05-05 Saam Barati <sbarati@apple.com>
11842 putDirectIndex does not properly do defineOwnProperty
11843 https://bugs.webkit.org/show_bug.cgi?id=171591
11844 <rdar://problem/31735695>
11846 Reviewed by Geoffrey Garen.
11848 * stress/array-prototype-splice-making-typed-array.js:
11850 * stress/array-species-config-array-constructor.js:
11853 * stress/put-direct-index-broken-2.js: Added.
11856 (makeLengthWritable):
11857 (set get restoreOldDesc):
11858 * stress/put-direct-index-broken.js: Added.
11862 * stress/put-indexed-getter-setter.js: Added.
11863 (foo.X.prototype.set 7):
11864 (foo.X.prototype.get 7):
11868 2017-05-04 Yusuke Suzuki <utatane.tea@gmail.com>
11870 [JSC] Math unary functions should be handled by DFG
11871 https://bugs.webkit.org/show_bug.cgi?id=171269
11873 Reviewed by Saam Barati.
11875 * stress/arith-acos-on-various-types.js: Added.
11876 (let.validInputTypedTestCases.validInputTestCases.map):
11878 (opaqueACosNoArgument):
11880 (opaqueAllTypesACos):
11881 (testAllTypesCall):
11882 (testSingleTypeCall):
11884 (opaqueACosForSideEffects):
11885 (testSideEffect.let.testObject.valueOf):
11887 (opaqueACosForCSE):
11888 (testCSE.let.testObject.valueOf):
11890 (opaqueACosForDCE):
11891 (testDCE.let.testObject.valueOf):
11893 (testException.opaqueACosWithException):
11895 * stress/arith-acosh-on-various-types.js: Added.
11896 (let.validInputTypedTestCases.validInputTestCases.map):
11898 (opaqueACoshNoArgument):
11900 (opaqueAllTypesACosh):
11901 (testAllTypesCall):
11902 (testSingleTypeCall):
11904 (opaqueACoshForSideEffects):
11905 (testSideEffect.let.testObject.valueOf):
11907 (opaqueACoshForCSE):
11908 (testCSE.let.testObject.valueOf):
11910 (opaqueACoshForDCE):
11911 (testDCE.let.testObject.valueOf):
11913 (testException.opaqueACoshWithException):
11915 * stress/arith-asin-on-various-types.js: Added.
11916 (let.validInputTypedTestCases.validInputTestCases.map):
11918 (opaqueASinNoArgument):
11920 (opaqueAllTypesASin):
11921 (testAllTypesCall):
11922 (testSingleTypeCall):
11924 (opaqueASinForSideEffects):
11925 (testSideEffect.let.testObject.valueOf):
11927 (opaqueASinForCSE):
11928 (testCSE.let.testObject.valueOf):
11930 (opaqueASinForDCE):
11931 (testDCE.let.testObject.valueOf):
11933 (testException.opaqueASinWithException):
11935 * stress/arith-asinh-on-various-types.js: Added.
11936 (let.validInputTypedTestCases.validInputTestCases.map):
11938 (opaqueASinhNoArgument):
11940 (opaqueAllTypesASinh):
11941 (testAllTypesCall):
11942 (testSingleTypeCall):
11944 (opaqueASinhForSideEffects):
11945 (testSideEffect.let.testObject.valueOf):
11947 (opaqueASinhForCSE):
11948 (testCSE.let.testObject.valueOf):
11950 (opaqueASinhForDCE):
11951 (testDCE.let.testObject.valueOf):
11953 (testException.opaqueASinhWithException):
11955 * stress/arith-atan-on-various-types.js: Added.
11956 (let.validInputTypedTestCases.validInputTestCases.map):
11958 (opaqueATanNoArgument):
11960 (opaqueAllTypesATan):
11961 (testAllTypesCall):
11962 (testSingleTypeCall):
11964 (opaqueATanForSideEffects):
11965 (testSideEffect.let.testObject.valueOf):
11967 (opaqueATanForCSE):
11968 (testCSE.let.testObject.valueOf):
11970 (opaqueATanForDCE):
11971 (testDCE.let.testObject.valueOf):
11973 (testException.opaqueATanWithException):
11975 * stress/arith-atanh-on-various-types.js: Added.
11976 (let.validInputTypedTestCases.validInputTestCases.map):
11978 (opaqueATanhNoArgument):
11980 (opaqueAllTypesATanh):
11981 (testAllTypesCall):
11982 (testSingleTypeCall):
11984 (opaqueATanhForSideEffects):
11985 (testSideEffect.let.testObject.valueOf):
11987 (opaqueATanhForCSE):
11988 (testCSE.let.testObject.valueOf):
11990 (opaqueATanhForDCE):
11991 (testDCE.let.testObject.valueOf):
11993 (testException.opaqueATanhWithException):
11995 * stress/arith-cbrt-on-various-types.js: Added.
11996 (let.validInputTypedTestCases.validInputTestCases.map):
11998 (opaqueCbrtNoArgument):
12000 (opaqueAllTypesCbrt):
12001 (testAllTypesCall):
12002 (testSingleTypeCall):
12004 (opaqueCbrtForSideEffects):
12005 (testSideEffect.let.testObject.valueOf):
12007 (opaqueCbrtForCSE):
12008 (testCSE.let.testObject.valueOf):
12010 (opaqueCbrtForDCE):
12011 (testDCE.let.testObject.valueOf):
12013 (testException.opaqueCbrtWithException):
12015 * stress/arith-cosh-on-various-types.js: Added.
12016 (let.validInputTypedTestCases.validInputTestCases.map):
12018 (opaqueCoshNoArgument):
12020 (opaqueAllTypesCosh):
12021 (testAllTypesCall):
12022 (testSingleTypeCall):
12024 (opaqueCoshForSideEffects):
12025 (testSideEffect.let.testObject.valueOf):
12027 (opaqueCoshForCSE):
12028 (testCSE.let.testObject.valueOf):
12030 (opaqueCoshForDCE):
12031 (testDCE.let.testObject.valueOf):
12033 (testException.opaqueCoshWithException):
12035 * stress/arith-expm1-on-various-types.js: Added.
12036 (let.validInputTypedTestCases.validInputTestCases.map):
12038 (opaqueExpm1NoArgument):
12040 (opaqueAllTypesExpm1):
12041 (testAllTypesCall):
12042 (testSingleTypeCall):
12044 (opaqueExpm1ForSideEffects):
12045 (testSideEffect.let.testObject.valueOf):
12047 (opaqueExpm1ForCSE):
12048 (testCSE.let.testObject.valueOf):
12050 (opaqueExpm1ForDCE):
12051 (testDCE.let.testObject.valueOf):
12053 (testException.opaqueExpm1WithException):
12055 * stress/arith-log10-on-various-types.js: Added.
12056 (let.validInputTypedTestCases.validInputTestCases.map):
12058 (opaqueLog10NoArgument):
12060 (opaqueAllTypesLog10):
12061 (testAllTypesCall):
12062 (testSingleTypeCall):
12064 (opaqueLog10ForSideEffects):
12065 (testSideEffect.let.testObject.valueOf):
12067 (opaqueLog10ForCSE):
12068 (testCSE.let.testObject.valueOf):
12070 (opaqueLog10ForDCE):
12071 (testDCE.let.testObject.valueOf):
12073 (testException.opaqueLog10WithException):
12075 * stress/arith-log2-on-various-types.js: Added.
12076 (let.validInputTypedTestCases.validInputTestCases.map):
12078 (opaqueLog2NoArgument):
12080 (opaqueAllTypesLog2):
12081 (testAllTypesCall):
12082 (testSingleTypeCall):
12084 (opaqueLog2ForSideEffects):
12085 (testSideEffect.let.testObject.valueOf):
12087 (opaqueLog2ForCSE):
12088 (testCSE.let.testObject.valueOf):
12090 (opaqueLog2ForDCE):
12091 (testDCE.let.testObject.valueOf):
12093 (testException.opaqueLog2WithException):
12095 * stress/arith-sinh-on-various-types.js: Added.
12096 (let.validInputTypedTestCases.validInputTestCases.map):
12098 (opaqueSinhNoArgument):
12100 (opaqueAllTypesSinh):
12101 (testAllTypesCall):
12102 (testSingleTypeCall):
12104 (opaqueSinhForSideEffects):
12105 (testSideEffect.let.testObject.valueOf):
12107 (opaqueSinhForCSE):
12108 (testCSE.let.testObject.valueOf):
12110 (opaqueSinhForDCE):
12111 (testDCE.let.testObject.valueOf):
12113 (testException.opaqueSinhWithException):
12115 * stress/arith-tan-on-various-types.js:
12117 * stress/arith-tanh-on-various-types.js: Added.
12118 (let.validInputTypedTestCases.validInputTestCases.map):
12120 (opaqueTanhNoArgument):
12122 (opaqueAllTypesTanh):
12123 (testAllTypesCall):
12124 (testSingleTypeCall):
12126 (opaqueTanhForSideEffects):
12127 (testSideEffect.let.testObject.valueOf):
12129 (opaqueTanhForCSE):
12130 (testCSE.let.testObject.valueOf):
12132 (opaqueTanhForDCE):
12133 (testDCE.let.testObject.valueOf):
12135 (testException.opaqueTanhWithException):
12138 2017-05-03 Keith Miller <keith_miller@apple.com>
12140 Array.prototype.sort should also allow a null comparator
12141 https://bugs.webkit.org/show_bug.cgi?id=171621
12143 Reviewed by Michael Saboff.
12145 Add test to make it less likely we revert to the incompatable behavior.
12146 Also, fix now incorrect tests.
12148 * ChakraCore/test/Array/array_sort.baseline-jsc:
12149 * stress/array-sort-bad-comparator.js:
12151 * stress/sort-null-comparator.js: Added.
12154 2017-05-03 Caitlin Potter <caitp@igalia.com>
12156 [JSC] remove unneeded asyncFunctionTests.yaml
12157 https://bugs.webkit.org/show_bug.cgi?id=171611
12159 Reviewed by Yusuke Suzuki.
12161 Async functions have shipped, and those tests are run as part of
12162 JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
12164 * asyncFunctionTests.yaml: Removed.
12165 * stress/async-await-long-loop.js:
12166 * stress/async-await-throw-loop.js:
12168 2017-05-03 Keith Miller <keith_miller@apple.com>
12170 Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
12171 https://bugs.webkit.org/show_bug.cgi?id=47825
12173 Reviewed by Saam Barati.
12175 * stress/sorting-boolean-result-comparator.js: Added.
12178 2017-05-02 David Kilzer <ddkilzer@apple.com>
12180 check-webkit-style should keep JavaScript test functions in sync
12181 <https://webkit.org/b/171424>
12183 Reviewed by Joseph Pecoraro.
12185 This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
12186 and shouldThrow() in sync with other copies of these methods.
12188 * stress/resources/standalone-pre.js:
12189 (shouldBe): Fix whitespace. Prefix 'exception' and 'quiet'
12190 variables with underscore.
12191 (shouldThrow): Fix whitespace.
12193 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
12195 We initialize functions too early in an eval
12196 https://bugs.webkit.org/show_bug.cgi?id=161099
12198 Reviewed by Saam Barati.
12200 * stress/eval-func-decl-with-let-const-class.js: Added.
12202 2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
12204 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
12205 https://bugs.webkit.org/show_bug.cgi?id=163208
12207 Reviewed by Saam Barati.
12209 * stress/eval-func-decl-block-scoping-reassign.js: Added.
12211 (throw.new.Error.f):
12213 * stress/eval-func-decl-block-with-remove.js: Added.
12217 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
12224 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
12232 * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
12233 * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
12239 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
12246 * stress/eval-func-decl-in-frozen-global.js: Added.
12251 * stress/eval-func-decl-in-global-of-eval.js: Added.
12257 * stress/eval-func-decl-in-global.js: Added.
12260 * stress/eval-func-decl-in-if.js: Added.
12262 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
12272 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
12278 * stress/variable-under-tdz-eval-tricky.js:
12282 2017-04-27 Mark Lam <mark.lam@apple.com>
12284 Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
12285 https://bugs.webkit.org/show_bug.cgi?id=171404
12286 <rdar://problem/31876178>
12288 Reviewed by Saam Barati.
12290 * stress/js-fixed-array-out-of-memory.js: Added.
12292 2017-04-27 David Kilzer <ddkilzer@apple.com>
12294 Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
12295 <https://webkit.org/b/171362>
12296 <rdar://problem/31867686>
12298 Reviewed by Joseph Pecoraro.
12300 * stress/resources/standalone-pre.js:
12304 - Update shouldBe() to accept anonymous function arguments.
12305 (The shouldNotBe() function was never copied over.)
12306 - Also fix shouldThrow()/shouldNotThrow() to accept anonymous
12307 function arguments (which were missed in r202609 for Bug
12310 2017-04-27 Yusuke Suzuki <utatane.tea@gmail.com>
12312 [JSC] Handle PhantomSpread in LoadVarargs as the same to the others
12313 https://bugs.webkit.org/show_bug.cgi?id=171262
12315 Reviewed by Saam Barati.
12317 * stress/spread-outer-create-rest.js: Added.
12323 2017-04-26 Saam Barati <sbarati@apple.com>
12325 Print Wasm function index in stack trace
12326 https://bugs.webkit.org/show_bug.cgi?id=171349
12328 Reviewed by JF Bastien.
12330 * wasm/function-tests/stack-trace.js: Added.
12331 (import.Builder.from.string_appeared_here.assert):
12333 * wasm/function-tests/trap-after-cross-instance-call.js:
12334 (wasmFrameCountFromError):
12335 * wasm/function-tests/trap-load-2.js:
12336 (wasmFrameCountFromError):
12337 * wasm/function-tests/trap-load.js:
12338 (wasmFrameCountFromError):
12340 2017-04-26 Saam Barati <sbarati@apple.com>
12342 ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
12343 https://bugs.webkit.org/show_bug.cgi?id=170924
12344 <rdar://problem/31721052>
12346 Reviewed by Mark Lam.
12348 * stress/error-message-for-function-base-not-found.js: Added.
12351 * stress/error-messages-for-in-operator-should-not-crash.js: Added.
12354 2017-04-26 Keith Miller <keith_miller@apple.com>
12356 WebAssembly: Implement tier up
12357 https://bugs.webkit.org/show_bug.cgi?id=170134
12359 Reviewed by Filip Pizlo.
12361 * wasm/function-tests/trap-after-cross-instance-call.js:
12362 * wasm/tier-up/js-to-wasm.js: Added.
12364 * wasm/tier-up/wasm-to-wasm.js: Added.
12367 2017-04-26 Caitlin Potter <caitp@igalia.com>
12369 [JSC] Object.keys() must discard property names with no PropertyDescriptor
12370 https://bugs.webkit.org/show_bug.cgi?id=171291
12372 Reviewed by Yusuke Suzuki.
12374 * es6/Proxy_ownKeys_duplicates.js:
12375 * stress/proxy-own-keys.js:
12376 (let.handler.getOwnPropertyDescriptor):
12377 (let.handler.ownKeys):
12379 2017-04-25 Commit Queue <commit-queue@webkit.org>
12381 Unreviewed, rolling out r215476.
12382 https://bugs.webkit.org/show_bug.cgi?id=171304
12384 "It broke JSBench" (Requested by saamyjoon on #webkit).
12386 Reverted changeset:
12388 "[ES6]. Implement Annex B.3.3 function hoisting rules for
12390 https://bugs.webkit.org/show_bug.cgi?id=163208
12391 http://trac.webkit.org/changeset/215476
12393 2017-04-25 Saam Barati <sbarati@apple.com>
12395 JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
12396 https://bugs.webkit.org/show_bug.cgi?id=171150
12397 <rdar://problem/31771880>
12399 Reviewed by Sam Weinig.
12401 * stress/spread-optimized-properly.js: Added.
12405 (makeArrayIterator):
12408 (test.arr.__proto__.Symbol.iterator):
12409 (test.arr.Symbol.iterator):
12415 2017-04-25 Mark Lam <mark.lam@apple.com>
12417 [Follow up] Array.prototype.slice() should ensure that end >= begin.
12418 https://bugs.webkit.org/show_bug.cgi?id=170989
12419 <rdar://problem/31705652>
12423 Follow up to rename a test file that was accidentally named wrongly.
12425 * stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
12426 * stress/regress-170989.patch: Removed.
12428 2017-04-25 Mark Lam <mark.lam@apple.com>
12430 Array.prototype.slice() should ensure that end >= begin.
12431 https://bugs.webkit.org/show_bug.cgi?id=170989
12432 <rdar://problem/31705652>
12434 Reviewed by Saam Barati.
12436 * stress/regress-170989.patch: Added.
12438 2017-04-25 Mark Lam <mark.lam@apple.com>
12440 Local CSE wrongly CSEs array accesses with different result types.
12441 https://bugs.webkit.org/show_bug.cgi?id=170990
12442 <rdar://problem/31705945>
12444 Reviewed by Saam Barati.
12446 * stress/regress-170990.js: Added.
12448 2017-04-25 Yusuke Suzuki <utatane.tea@gmail.com>
12450 WebAssembly: exporting a property with a name that's a number doesn't work
12451 https://bugs.webkit.org/show_bug.cgi?id=168857
12453 Reviewed by JF Bastien.
12455 r213453 allows Wasm instances to expose indexed properties. We activate the tests.
12457 * wasm/js-api/test_Instance.js:
12460 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
12462 test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
12463 https://bugs.webkit.org/show_bug.cgi?id=171190
12465 Reviewed by Saam Barati.
12467 * stress/async-await-syntax.js:
12470 2017-04-24 Yusuke Suzuki <utatane.tea@gmail.com>
12472 [JSC] Use JSFixedArray directly when using call_varargs
12473 https://bugs.webkit.org/show_bug.cgi?id=171057
12475 Reviewed by Saam Barati.
12477 * stress/spread-capture-rest.js: Added.
12482 * stress/spread-multi-layers.js: Added.
12488 * stress/spread-non-varargs.js: Added.
12493 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
12495 test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
12496 https://bugs.webkit.org/show_bug.cgi?id=170897
12498 Reviewed by Saam Barati.
12502 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
12504 Address some FIXMEs in JavaScript tests for bugs that have been fixed
12505 https://bugs.webkit.org/show_bug.cgi?id=171191
12507 Reviewed by JF Bastien.
12509 * stress/proxy-is-extensible.js:
12511 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
12513 test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
12514 https://bugs.webkit.org/show_bug.cgi?id=171160
12516 Reviewed by JF Bastien.
12518 * stress/inferred-names.js:
12521 2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
12523 test262: test262/test/language/expressions/generators/yield-as-label.js
12524 https://bugs.webkit.org/show_bug.cgi?id=170979
12526 Reviewed by Saam Barati.
12528 * stress/async-await-module-reserved-word.js:
12529 * stress/async-await-reserved-word.js:
12530 Converge on "Cannot" instead of "Can't".
12532 * catch-parameter-syntax.js:
12533 * yield-named-variable-generator.js:
12534 * yield-named-variable.js:
12535 * stress/yield-label-generator.js:
12536 * stress/yield-label.js:
12537 * stress/yield-reserved-word.js: Added.
12538 More complete list of when 'yield' is allowed.
12540 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
12543 2017-04-23 Commit Queue <commit-queue@webkit.org>
12545 Unreviewed, rolling out r215674.
12546 https://bugs.webkit.org/show_bug.cgi?id=171212
12548 Possible unintended commit. This patch was on the wrong bug.
12549 (Requested by JoePeck on #webkit).
12551 Reverted changeset:
12553 "test262: test262/test/language/expressions/generators/yield-
12555 https://bugs.webkit.org/show_bug.cgi?id=170979
12556 http://trac.webkit.org/changeset/215674
12558 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
12560 test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
12561 https://bugs.webkit.org/show_bug.cgi?id=171197
12563 Reviewed by Saam Barati.
12567 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
12569 test262: test262/test/language/expressions/generators/yield-as-label.js
12570 https://bugs.webkit.org/show_bug.cgi?id=170979
12572 Reviewed by Saam Barati.
12574 * stress/async-await-module-reserved-word.js:
12575 * stress/async-await-reserved-word.js:
12576 Converge on "Cannot" instead of "Can't".
12578 * catch-parameter-syntax.js:
12579 * yield-named-variable-generator.js:
12580 * yield-named-variable.js:
12581 * stress/yield-label-generator.js:
12582 * stress/yield-label.js:
12583 * stress/yield-reserved-word.js: Added.
12584 More complete list of when 'yield' is allowed.
12586 * ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
12589 2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
12591 test262: test262/test/built-ins/Number/parseFloat.js
12592 https://bugs.webkit.org/show_bug.cgi?id=171193
12594 Reviewed by Yusuke Suzuki.
12598 2017-04-22 JF Bastien <jfbastien@apple.com>
12600 WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
12601 https://bugs.webkit.org/show_bug.cgi?id=171078
12603 Reviewed by Saam Barati.
12605 They're static properties of Module, not instance properties of a module.
12606 https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
12608 * wasm/js-api/Module.customSection.js:
12609 (assert.throws.WebAssembly.Module.customSections):
12611 (assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
12612 * wasm/js-api/Module.exports.js:
12613 (assert.throws.WebAssembly.Module.exports):
12615 (assert.throws.WebAssembly.Module.prototype.exports): Deleted.
12616 * wasm/js-api/Module.imports.js:
12617 (assert.throws.WebAssembly.Module.imports):
12619 (assert.throws.WebAssembly.Module.prototype.imports): Deleted.
12621 2017-04-21 JF Bastien <jfbastien@apple.com>
12625 Unreviewed, Fil / Michael and I talked about it in the corridor. I
12626 just forgot to set verbose to false before commit.
12628 * wasm/stress/oom.js:
12630 2017-04-20 Yusuke Suzuki <utatane.tea@gmail.com>
12632 [JSC][FTL] FTL should support Arrayify
12633 https://bugs.webkit.org/show_bug.cgi?id=169596
12635 Reviewed by Saam Barati.
12637 * stress/arrayify.js: Added.
12640 (arrayifyContiguous):
12642 2017-04-20 Mark Lam <mark.lam@apple.com>
12644 virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
12645 https://bugs.webkit.org/show_bug.cgi?id=171079
12646 <rdar://problem/31684756>
12648 Reviewed by Saam Barati.
12650 * stress/regress-171079.js: Added.
12652 2017-04-15 Filip Pizlo <fpizlo@apple.com>
12654 Optimize SharedArrayBuffer in the DFG+FTL
12655 https://bugs.webkit.org/show_bug.cgi?id=164108
12657 Reviewed by Saam Barati.
12659 Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
12660 combination of type and operation, and then first uses it nicely and then tries a bunch of
12661 erroneous conditions like OOB.
12663 * stress/SharedArrayBuffer-opt.js: Added.
12664 (string_appeared_here.switch):
12665 (string_appeared_here.str):
12669 (string_appeared_here.a.of.arrays.m.of.atomics):
12670 * stress/SharedArrayBuffer.js:
12672 2017-04-19 Mark Lam <mark.lam@apple.com>
12674 B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
12675 https://bugs.webkit.org/show_bug.cgi?id=170973
12676 <rdar://problem/30318657>
12678 Reviewed by Filip Pizlo.
12680 * stress/regress-170973.js: Added.
12682 2017-04-19 JF Bastien <jfbastien@apple.com>
12684 WebAssembly: limit slow memories
12685 https://bugs.webkit.org/show_bug.cgi?id=170825
12687 Reviewed by Saam Barati.
12690 * wasm/stress/oom.js: Added.
12691 (try.true.WebAssemblyMemoryMode):
12694 2017-04-19 JF Bastien <jfbastien@apple.com>
12696 WebAssembly: don't expose any WebAssembly JS object if JIT is off
12697 https://bugs.webkit.org/show_bug.cgi?id=170782
12699 Reviewed by Saam Barati.
12702 * wasm/noJIT/noJIT.js: Added.
12704 2017-04-18 Mark Lam <mark.lam@apple.com>
12706 r211670 broke double to int conversion.
12707 https://bugs.webkit.org/show_bug.cgi?id=170961
12708 <rdar://problem/31687696>
12710 Reviewed by Yusuke Suzuki.
12712 * microbenchmarks/double-to-int32.js: Added.
12713 * stress/to-int32-sensible2.js: Added.
12715 2017-04-18 Oleksandr Skachkov <gskachkov@gmail.com>
12717 [ES6]. Implement Annex B.3.3 function hoisting rules for eval
12718 https://bugs.webkit.org/show_bug.cgi?id=163208
12720 Reviewed by Saam Barati.
12722 * stress/eval-func-decl-block-scoping-reassign.js: Added.
12724 (throw.new.Error.f):
12726 * stress/eval-func-decl-block-with-remove.js: Added.
12730 * stress/eval-func-decl-block-with-var-and-remove.js: Added.
12737 * stress/eval-func-decl-block-with-var-sinthesize.js: Added.
12745 * stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
12746 * stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
12752 * stress/eval-func-decl-in-eval-within-with-scope.js: Added.
12759 * stress/eval-func-decl-in-frozen-global.js: Added.
12764 * stress/eval-func-decl-in-global-of-eval.js: Added.
12770 * stress/eval-func-decl-in-global.js: Added.
12773 * stress/eval-func-decl-in-if.js: Added.
12775 * stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
12785 * stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
12791 * stress/variable-under-tdz-eval-tricky.js:
12795 2017-04-18 Filip Pizlo <fpizlo@apple.com>
12797 wasm/function-tests/memory-multiagent times out sometimes
12798 https://bugs.webkit.org/show_bug.cgi?id=170958
12800 Reviewed by Keith Miller.
12802 Add the ability to skip tests easily. Skip the test.
12805 * wasm/function-tests/memory-multiagent.js:
12807 2017-04-18 Saam Barati <sbarati@apple.com>
12809 Follow up to debug build stack overflow in test after r215453
12811 Rubber stamped by Mark Lam.
12813 * stress/call-apply-exponential-bytecode-size.js: Decrease the call
12814 size to prevent stack overflow errors on debug builds.
12816 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
12818 [DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
12819 https://bugs.webkit.org/show_bug.cgi?id=170943
12821 Reviewed by Geoffrey Garen.
12823 * microbenchmarks/number-to-string-with-add-empty.js: Added.
12826 * microbenchmarks/number-to-string-with-add-in-loop.js: Added.
12829 * microbenchmarks/number-to-string-with-add.js: Added.
12832 * stress/number-to-string-with-add.js: Added.
12835 (toStringLeftEmpty):
12836 (toStringRightEmpty):
12838 2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
12840 [DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
12841 https://bugs.webkit.org/show_bug.cgi?id=170940
12843 Reviewed by Filip Pizlo.
12845 * microbenchmarks/for-of-array.js: Added.
12848 2017-04-17 Saam Barati <sbarati@apple.com>
12850 BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
12851 https://bugs.webkit.org/show_bug.cgi?id=139847
12852 <rdar://problem/19321122>
12854 Reviewed by Oliver Hunt.
12856 * stress/call-apply-exponential-bytecode-size.js: Added.
12861 (randomApplyOrCall):
12867 2017-04-17 Mark Lam <mark.lam@apple.com>
12869 JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
12870 https://bugs.webkit.org/show_bug.cgi?id=170896
12871 <rdar://problem/31651319>
12873 Reviewed by JF Bastien and Keith Miller.
12875 * stress/regress-170896.js: Added.
12877 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
12879 test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
12880 https://bugs.webkit.org/show_bug.cgi?id=170882
12882 Reviewed by Saam Barati.
12886 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
12888 test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
12889 https://bugs.webkit.org/show_bug.cgi?id=170888
12891 Reviewed by Saam Barati.
12893 * stress/computed-accessor.js:
12894 * stress/eval-in-arrow-function.js:
12895 * stress/rest-elements.js:
12896 * stress/string-object-define-own-property.js:
12897 Remove unused shouldThrow.
12899 * stress/symbol-toprimitive-errors.js: Added.
12900 Check for ToPrimitive TypeErrors.
12904 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
12906 test262: test262/test/language/expressions/tagged-template/template-object.js
12907 https://bugs.webkit.org/show_bug.cgi?id=170878
12909 Reviewed by Saam Barati.
12911 * stress/array-length-not-writable.js: Added.
12915 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
12917 test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
12918 https://bugs.webkit.org/show_bug.cgi?id=170879
12920 Reviewed by Saam Barati.
12922 * ChakraCore/test/es5/enumerable.baseline-jsc:
12925 2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
12927 test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
12928 https://bugs.webkit.org/show_bug.cgi?id=170884
12930 Reviewed by Yusuke Suzuki.
12934 2017-04-15 Joseph Pecoraro <pecoraro@apple.com>
12936 test262: test262/test/language/global-code/new.target-arrow.js
12937 https://bugs.webkit.org/show_bug.cgi?id=170872
12939 Reviewed by Saam Barati.
12941 * stress/async-arrow-functions-lexical-new.target-binding.js:
12942 (shouldThrowAsync): Deleted.
12943 (shouldThrowAsync.async): Deleted.
12944 This code should have thrown a SyntaxError. Instead it was throwing
12945 a ReferenceError for the internal @newTargetLocal variable.
12947 * stress/new-target-syntax-errors.js:
12948 Cover the arrow function in global code cases.
12951 * ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
12952 We now pass with an expected SyntaxError. Our error message is different.
12956 2017-04-14 Saam Barati <sbarati@apple.com>
12958 ParseInt intrinsic in DFG backend doesn't properly flush its operands
12959 https://bugs.webkit.org/show_bug.cgi?id=170865
12961 Reviewed by Mark Lam and Geoffrey Garen.
12963 * stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
12967 2017-04-14 Caitlin Potter <caitp@igalia.com>
12969 [JSC] use ExpressionErrorClassifier for AwaitExpression operand
12970 https://bugs.webkit.org/show_bug.cgi?id=170844
12972 Reviewed by Saam Barati.
12974 * stress/regress-170732.js: Added.
12976 2017-04-14 Oleksandr Skachkov <gskachkov@gmail.com>
12978 Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
12979 https://bugs.webkit.org/show_bug.cgi?id=170442
12981 Reviewed by Yusuke Suzuki.
12983 * stress/object-number-properties.js:
12985 2017-04-13 Yusuke Suzuki <utatane.tea@gmail.com>
12987 [JSC] Date.parse should accept wider range of representation
12988 https://bugs.webkit.org/show_bug.cgi?id=170720
12990 Reviewed by Darin Adler.
12992 * stress/date-relaxed.js: Added.
12996 2017-04-13 Mark Lam <mark.lam@apple.com>
12998 Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
12999 https://bugs.webkit.org/show_bug.cgi?id=170661
13000 <rdar://problem/31579046>
13002 Reviewed by Filip Pizlo.
13004 * stress/regress-170661.js: Added.
13006 2017-04-13 JF Bastien <jfbastien@apple.com>
13008 WebAssembly: manage memory better
13009 https://bugs.webkit.org/show_bug.cgi?id=170628
13011 Reviewed by Keith Miller, Michael Saboff.
13013 * wasm/Builder.js: move a helper out so tests can use it
13014 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
13015 * wasm/WASM.js: add utilities to classify opcodes
13017 (export.const.memoryAccessInfo.op.const.sign):
13018 * wasm/function-tests/memory-access-past-4gib.js: Added. This test
13019 fails before this patch.
13020 (const.op.of.WASM.opcodes):
13021 * wasm/function-tests/memory-many.js: Added. This simple tests
13022 just shouldn't crash. In verbose mode it's useful at determining
13023 if the GC falls behind or not.
13024 * wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
13025 (const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
13026 (const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
13027 (const.broadcastToAgents):
13028 * wasm/js-api/extension-MemoryMode.js: verbose logging.
13031 (testInstanceNoMemory):
13032 (testInstanceNoMax):
13034 * wasm/utilities.js: move a utility here.
13036 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
13038 test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
13039 https://bugs.webkit.org/show_bug.cgi?id=170668
13041 Reviewed by Keith Miller.
13044 * ChakraCore/test/Lib/error.baseline-jsc: Added.
13045 This test does not match the spec.
13049 2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
13051 test262: test262/test/language/literals/regexp/u-dec-esc.js
13052 https://bugs.webkit.org/show_bug.cgi?id=170687
13054 Reviewed by Michael Saboff.
13058 2017-04-11 Michael Saboff <msaboff@apple.com>
13060 Implement Object.isFrozen() and Object.isSealed() per ECMA spec
13061 https://bugs.webkit.org/show_bug.cgi?id=170753
13063 Reviewed by Mark Lam.
13065 Added JSC baseline and enabled defineIndexProperty test.
13067 Note that JSC differs from Chakra in that a JSC doesn't use indexed
13068 properties placed on the Array prototype when sorting the indexed
13069 properties of an Object. This is behavior is considered undefined
13073 * ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
13075 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
13077 test262: test262/test/annexB/language/comments/multi-line-html-close.js
13078 https://bugs.webkit.org/show_bug.cgi?id=170648
13080 Reviewed by Keith Miller.
13084 2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
13086 test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
13087 https://bugs.webkit.org/show_bug.cgi?id=170652
13089 Reviewed by Michael Saboff.
13091 * stress/native-constructors-length.js: Added.
13092 (assertLengthDescriptorAttributes):
13093 Add a quick test for the length properties of all native constructors.
13095 * ChakraCore/test/es5/enumerable.baseline-jsc:
13096 Rebaseline expectations for this test.
13100 2017-04-10 Keith Miller <keith_miller@apple.com>
13102 WebAssembly: Update spec tests
13103 https://bugs.webkit.org/show_bug.cgi?id=170683
13105 Rubber-stamped by JF Bastien.
13108 * wasm/spec-tests/br_table.wast.js:
13109 * wasm/spec-tests/conversions.wast.js: Removed.
13110 * wasm/spec-tests/f32_bitwise.wast.js: Added.
13111 * wasm/spec-tests/f32_cmp.wast.js:
13112 * wasm/spec-tests/f64_bitwise.wast.js: Added.
13113 * wasm/spec-tests/f64_cmp.wast.js:
13114 * wasm/spec-tests/i32.wast.js:
13115 * wasm/spec-tests/i64.wast.js:
13116 * wasm/spec-tests/int_exprs.wast.js:
13117 * wasm/spec-tests/memory.wast.js:
13119 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
13121 test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
13122 https://bugs.webkit.org/show_bug.cgi?id=170650
13124 Reviewed by Saam Barati.
13126 * stress/inferred-names.js:
13129 2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
13131 test262: test262/test/annexB/language/literals/regexp/identity-escape.js
13132 https://bugs.webkit.org/show_bug.cgi?id=170651
13134 Reviewed by Saam Barati.
13138 2017-04-07 Michael Saboff <msaboff@apple.com>
13140 Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
13141 https://bugs.webkit.org/show_bug.cgi?id=170580
13143 Reviewed by JF Bastien.
13145 Commented out subtest that expects defineProperty("length") to a getter on a
13146 sealed function shouldn't throw.
13149 * ChakraCore/test/es6/ES6Function_bugs.js:
13151 2017-04-06 Michael Saboff <msaboff@apple.com>
13153 Cannot Object.seal() or Object.freeze() global "this"
13154 https://bugs.webkit.org/show_bug.cgi?id=170549
13156 Reviewed by Mark Lam.
13158 Enabled failing tests fixed by the corresponding code change:
13159 ChakraCore/test/LetConst/delete.js
13160 ChakraCore/test/LetConst/dop.js
13161 ChakraCore/test/LetConst/dop1.js
13164 * ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
13165 * ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
13167 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
13169 test262: ES2017 test progressions need updated expectations (arguments.caller removed)
13170 https://bugs.webkit.org/show_bug.cgi?id=170536
13172 Reviewed by Mark Lam.
13175 After r208867 the tests are out of date and are now expected to fail.
13177 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
13179 test262: Final rebaseline of existing tests, a few tests have started failing
13180 https://bugs.webkit.org/show_bug.cgi?id=170538
13182 Reviewed by Mark Lam.
13185 These tests started failing a while ago. Mark them as legitmate failures.
13187 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
13189 test262: Rebaseline expectations for now passing tests
13190 https://bugs.webkit.org/show_bug.cgi?id=170532
13192 Reviewed by Ryosuke Niwa.
13195 Update expectations for tests we are now passing.
13197 2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
13199 test262: module test progressions need updated expectations (@@iterator changes)
13200 https://bugs.webkit.org/show_bug.cgi?id=170535
13202 Reviewed by Saam Barati.
13205 After r212430 the tests are out of date and are now expected to fail.
13207 2017-04-05 Michael Saboff <msaboff@apple.com>
13209 Unreviewed rollout of r214642 as the test still intermittently fails.
13211 Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
13215 2017-04-05 Michael Saboff <msaboff@apple.com>
13217 REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
13218 https://bugs.webkit.org/show_bug.cgi?id=170264
13219 <rdar://problem/31375593>
13221 Rubber-stamped by Saam Barati.
13223 The original bug was fixed in: https://trac.webkit.org/changeset/214714
13224 I'm just adding another test for good measure.
13226 * stress/double-array-to-array-storage.js: Added.
13229 2017-04-05 Keith Miller <keith_miller@apple.com>
13231 WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
13232 https://bugs.webkit.org/show_bug.cgi?id=170504
13234 Reviewed by Mark Lam.
13236 * wasm/function-tests/trap-after-cross-instance-call.js: Added.
13237 (b.new.WebAssembly.Memory):
13238 (importObject.foo.bar):
13239 (wasmFrameCountFromError):
13241 2017-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
13243 [JSC] Generate TemplateObjects at linking time
13244 https://bugs.webkit.org/show_bug.cgi?id=169743
13246 Reviewed by Keith Miller.
13248 * stress/template-string-tags-eval.js: Added.
13252 2017-04-04 Mark Lam <mark.lam@apple.com>
13254 On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
13255 https://bugs.webkit.org/show_bug.cgi?id=170473
13256 <rdar://problem/29912391>
13258 Reviewed by Saam Barati.
13260 * stress/regress-170473.js: Added.
13262 2017-04-03 Mark Lam <mark.lam@apple.com>
13264 Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
13265 https://bugs.webkit.org/show_bug.cgi?id=170412
13266 <rdar://problem/29697336>
13268 Reviewed by Filip Pizlo.
13270 * stress/regress-170412.js: Added.
13272 2017-04-03 Keith Miller <keith_miller@apple.com>
13274 WebAssembly: Update spec tests
13275 https://bugs.webkit.org/show_bug.cgi?id=170361
13277 Rubber-stamped by Saam Barati.
13279 Update the spec tests to run tests generated by the newer spec
13280 test builder wasm-spec/test/builder.py. This patch also adds the
13281 necessary harness code in spec-harness.js so we can run the tests.
13284 * wasm/import-spec-tests.rb:
13285 * wasm/spec-harness.js: Added.
13286 (import.string_appeared_here.then):
13289 (let.assert_unreached):
13290 * wasm/spec-harness/index.js: Added.
13296 (Result.prototype.isError):
13301 (assert_soft_invalid):
13307 (assert_unlinkable):
13308 (assert_uninstantiable):
13312 (assert_exhaustion):
13314 (assert_return_nan):
13315 * wasm/spec-harness/testharness.css: Added.
13321 (table#results th:first-child,):
13322 (table#results th:last-child,):
13323 (table#results.assertions th:last-child,):
13324 (table#results th):
13325 (table#results td):
13326 (tr.pass > td:first-child):
13327 (tr.fail > td:first-child):
13328 (tr.timeout > td:first-child):
13329 (tr.notrun > td:first-child):
13330 (.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
13331 (table#results span):
13332 (table#results span.expected):
13333 (table#results span.actual):
13337 (span.ok, span.timeout, span.error):
13338 * wasm/spec-harness/testharness.js: Added.
13339 (WindowTestEnvironment):
13340 (WindowTestEnvironment.prototype._dispatch):
13341 (WindowTestEnvironment.prototype._forEach_windows):
13342 (WindowTestEnvironment.prototype.on_tests_ready):
13343 (WindowTestEnvironment.prototype.setup_messages):
13344 (WindowTestEnvironment.prototype.next_default_test_name):
13345 (WindowTestEnvironment.prototype.on_new_harness_properties):
13346 (WindowTestEnvironment.prototype.add_on_loaded_callback):
13347 (WindowTestEnvironment.prototype.test_timeout):
13348 (WindowTestEnvironment.prototype.global_scope):
13349 (WorkerTestEnvironment):
13350 (WorkerTestEnvironment.prototype._dispatch):
13351 (WorkerTestEnvironment.prototype._add_message_port):
13352 (WorkerTestEnvironment.prototype.next_default_test_name):
13353 (WorkerTestEnvironment.prototype.on_new_harness_properties):
13354 (WorkerTestEnvironment.prototype.on_tests_ready):
13355 (WorkerTestEnvironment.prototype.add_on_loaded_callback):
13356 (WorkerTestEnvironment.prototype.test_timeout):
13357 (WorkerTestEnvironment.prototype.global_scope):
13358 (DedicatedWorkerTestEnvironment):
13359 (DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
13360 (SharedWorkerTestEnvironment):
13361 (SharedWorkerTestEnvironment.prototype.on_tests_ready):
13362 (ServiceWorkerTestEnvironment):
13363 (ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
13364 (create_test_environment):
13365 (is_shared_worker):
13366 (is_service_worker):
13379 * wasm/spec-harness/testharnessreport.js: Added.
13380 * wasm/spec-harness/wasm-constants.js: Added.
13390 (assertWasmThrows):
13391 * wasm/spec-harness/wasm-module-builder.js: Added.
13392 (Binary.prototype.emit_u8):
13393 (Binary.prototype.emit_u16):
13394 (Binary.prototype.emit_u32):
13395 (Binary.prototype.emit_u32v):
13396 (Binary.prototype.emit_bytes):
13397 (Binary.prototype.emit_string):
13398 (Binary.prototype.emit_header):
13399 (Binary.prototype.emit_section):
13401 (WasmFunctionBuilder):
13402 (WasmFunctionBuilder.prototype.exportAs):
13403 (WasmFunctionBuilder.prototype.exportFunc):
13404 (WasmFunctionBuilder.prototype.addBody):
13405 (WasmFunctionBuilder.prototype.addLocals):
13406 (WasmFunctionBuilder.prototype.end):
13407 (WasmGlobalBuilder):
13408 (WasmGlobalBuilder.prototype.exportAs):
13409 (WasmModuleBuilder):
13410 (WasmModuleBuilder.prototype.addStart):
13411 (WasmModuleBuilder.prototype.addMemory):
13412 (WasmModuleBuilder.prototype.addExplicitSection):
13413 (WasmModuleBuilder.prototype.addType):
13414 (WasmModuleBuilder.prototype.addGlobal):
13415 (WasmModuleBuilder.prototype.addFunction):
13416 (WasmModuleBuilder.prototype.addImport):
13417 (WasmModuleBuilder.prototype.addImportedGlobal):
13418 (WasmModuleBuilder.prototype.addImportedMemory):
13419 (WasmModuleBuilder.prototype.addImportedTable):
13420 (WasmModuleBuilder.prototype.addExport):
13421 (WasmModuleBuilder.prototype.addExportOfKind):
13422 (WasmModuleBuilder.prototype.addDataSegment):
13423 (WasmModuleBuilder.prototype.exportMemoryAs):
13424 (WasmModuleBuilder.prototype.addFunctionTableInit):
13425 (WasmModuleBuilder.prototype.appendToTable):
13426 (WasmModuleBuilder.prototype.setFunctionTableLength):
13427 (WasmModuleBuilder.prototype.toArray):
13428 (WasmModuleBuilder.prototype.toBuffer):
13429 (WasmModuleBuilder.prototype.instantiate):
13430 * wasm/spec-harness/wast.js: Added.
13432 (require.else._registry.name):
13457 (instr.else.switch.case.0.f):
13458 (instr.else.switch.case.1.f.1):
13459 (instr.else.switch.case.2.f.2):
13477 (is_memory_import):
13478 (is_global_import):
13482 (module_with_var_opt):
13489 (_registry.string_appeared_here):
13529 (array1_of_genarray):
13530 (array2_of_genarray):
13531 (array3_of_genarray):
13552 (advance_to_closing):
13553 (advance_to_non_alpha):
13583 (caml_array_concat):
13589 (caml_int32_float_of_bits):
13590 (caml_int32_bits_of_float):
13591 (caml_classify_float):
13593 (caml_ldexp_float):
13594 (caml_frexp_float):
13595 (caml_copysign_float):
13596 (caml_expm1_float):
13597 (caml_hypot_float):
13598 (caml_log10_float):
13601 (int_of_string_base):
13602 (parse_sign_and_base):
13603 (caml_int_of_string.aux):
13604 (caml_int_of_string):
13605 (caml_int64_of_string.aux):
13606 (caml_int64_of_string):
13609 (finish_formatting):
13611 (caml_int64_format):
13612 (caml_format_float):
13617 (caml_int32_bswap):
13646 (bits_of_float.to_nat):
13656 (prec_of_prec_opt):
13657 (param_format_of_ignored_format):
13658 (buffer_check_size):
13660 (buffer_add_string):
13666 (set while.set var):
13667 (set while.set else):
13673 (bprint_ignored_flag):
13676 (bprint_precision):
13677 (bprint_iconv_flag):
13679 (bprint_altint_fmt):
13680 (bprint_fconv_flag):
13681 (bprint_float_fmt):
13682 (string_of_formatting_lit):
13683 (string_of_formatting_gen):
13684 (bprint_char_literal):
13685 (bprint_string_literal):
13687 (int_of_custom_arity):
13693 (fmtty_of_formatting_gen):
13696 (fmtty_of_padding_fmtty):
13697 (fmtty_of_precision_fmtty):
13700 (type_ignored_param_one):
13702 (type_ignored_format_substitution):
13706 (fix_int_precision):
13707 (string_to_caml_string):
13713 (convert_nativeint):
13717 (format_caml_char):
13720 (else.switch.k.prime):
13721 (else.switch.else.):
13722 (else.switch.else.k.prime.1):
13725 (make_invalid_arg):
13726 (make_string_padding):
13727 (make_int_padding_precision):
13732 (failwith_message.k):
13733 (failwith_message):
13734 (open_box_of_string.else.invalid_box):
13735 (open_box_of_string.else.parse_spaces):
13736 (open_box_of_string.else.parse_lword):
13737 (open_box_of_string.else.parse_int):
13738 (open_box_of_string):
13739 (make_padding_fmt_ebb):
13740 (make_precision_fmt_ebb):
13741 (make_padprec_fmt_ebb):
13742 (invalid_format_message):
13743 (invalid_format_without):
13744 (expected_character):
13745 (compute_int_conv):
13746 (incompatible_flag):
13749 (parse_after_precision):
13750 (else.parse_literal):
13751 (parse_after_padding):
13757 (compute_float_conv):
13758 (search_subformat_end):
13762 (else.switch.case.99.char_format):
13763 (else.switch.scan_format):
13764 (parse_conversion):
13770 (fail_single_percent):
13771 (parse_char_set_after_char):
13772 (parse_char_set_content):
13773 (parse_char_set_start):
13777 (fmt_ebb_of_string):
13778 (format_of_string_fmtty):
13779 (format_of_string_format):
13781 (caml_ml_open_descriptor_in):
13782 (caml_ml_open_descriptor_out):
13785 (caml_ml_output_char):
13787 (caml_ml_input_char):
13788 (caml_ml_out_channels_list):
13792 (caml_lex_run_mem):
13793 (caml_lex_run_tag):
13794 (caml_new_lex_engine):
13796 (caml_obj_truncate):
13797 (caml_lazy_make_forward):
13798 (caml_update_dummy):
13799 (caml_int_compare):
13803 (caml_greaterequal):
13806 (caml_get_public_method):
13807 (caml_parse_engine):
13808 (caml_set_parser_trace):
13809 (js_string_of_char):
13811 (caml_create_string):
13812 (caml_string_compare):
13813 (caml_fill_string):
13814 (caml_blit_string):
13818 (caml_string_of_char_array):
13819 (caml_is_printable):
13820 (caml_string_get16):
13821 (caml_string_get32):
13893 (mutability.get if):
13901 (import_kind.get if):
13908 (export_kind.get if):
13935 (encode.patch_gap32):
13936 (encode.value_type):
13937 (encode.stack_type):
13938 (encode.func_type):
13940 (encode.table_type):
13941 (encode.memory_type):
13942 (encode.global_type):
13948 (encode.type_section):
13950 (encode.import_section):
13952 (encode.func_section):
13954 (encode.table_section):
13956 (encode.memory_section):
13958 (encode.global_section):
13959 (encode.export_kind):
13961 (encode.export_section):
13962 (encode.start_section):
13967 (encode.code_section):
13969 (encode.table_segment):
13970 (encode.elem_section):
13971 (encode.memory_segment):
13976 (print_nan_significand_digits):
13980 (Make.canonicalize_nan):
13981 (Make.determine_binary_nan):
13982 (Make.determine_unary_nan):
14005 (Make.of_signless_string):
14013 (pp_output_string):
14016 (pp_force_break_line):
14018 (else.switch.find):
14022 (enqueue_string_as):
14029 (pp_set_print_tags):
14030 (pp_set_mark_tags):
14031 (pp_get_print_tags):
14032 (pp_get_mark_tags):
14034 (pp_get_formatter_tag_functions):
14035 (pp_set_formatter_tag_functions):
14038 (pp_print_as_size):
14048 (pp_print_newline):
14050 (pp_force_newline):
14051 (pp_print_if_newline):
14063 (pp_set_max_boxes):
14064 (pp_get_max_boxes):
14065 (pp_over_max_boxes):
14066 (pp_get_ellipsis_text):
14068 (pp_set_max_indent):
14069 (pp_get_max_indent):
14072 (pp_set_formatter_out_functions):
14073 (pp_get_formatter_out_functions):
14074 (pp_set_formatter_output_functions):
14075 (pp_get_formatter_output_functions):
14076 (pp_set_all_formatter_output_functions):
14077 (pp_get_all_formatter_output_functions):
14084 (pp_set_formatter_out_channel):
14085 (default_pp_mark_open_tag):
14086 (default_pp_mark_close_tag):
14087 (default_pp_print_open_tag):
14088 (default_pp_print_close_tag):
14089 (pp_make_formatter):
14093 (formatter_of_out_channel):
14094 (formatter_of_buffer):
14095 (flush_str_formatter):
14096 (flush_buf_formatter):
14115 (print_if_newline):
14128 (set_ellipsis_text):
14129 (get_ellipsis_text):
14130 (set_formatter_out_channel):
14131 (set_formatter_out_functions):
14132 (get_formatter_out_functions):
14133 (set_formatter_output_functions):
14134 (get_formatter_output_functions):
14135 (set_all_formatter_output_functions):
14136 (get_all_formatter_output_functions):
14137 (set_formatter_tag_functions):
14138 (get_formatter_tag_functions):
14145 (output_formatting_lit):
14155 (asprintf.k.prime):
14173 (Make.clamp_rotate_count):
14186 (Make.to_string_u):
14191 (Make.of_string_s):
14192 (Make.of_string_u):
14201 (token.else.switch):
14202 (token.else.switch.):
14204 (__ocaml_lex_comment_rec):
14214 (sub_lexeme_char_opt):
14273 (Make.min_binding):
14274 (Make.max_binding):
14275 (Make.remove_min_binding):
14283 (Make.add_min_binding):
14284 (Make.add_max_binding):
14287 (Make.concat_or_join):
14296 (Make.bindings_aux):
14299 (set_double_field):
14346 (string_to_script):
14347 (string_to_module):
14350 (positions_to_region):
14380 (current_lookahead_fun):
14381 (catch.else.current_lookahead_fun.0):
14384 (symbol_start_pos):
14392 (is_current_lookahead):
14402 (valid_float_lexem):
14411 (output_substring):
14420 (unsafe_really_input):
14422 (really_input_string):
14423 (input_line.build_result):
14440 (string_of_format):
14441 (at_exit.exit_function.0):
14445 (output_binary_int):
14448 (out_channel_length):
14449 (set_binary_mode_out):
14450 (input_binary_int):
14454 (in_channel_length):
14456 (set_binary_mode_in):
14468 (string_of_region):
14469 (escaped.needs_escape):
14473 (string_of_value_type):
14474 (string_of_value_types):
14475 (string_of_elem_type):
14476 (string_of_limits):
14477 (string_of_table_type):
14478 (string_of_global_type):
14479 (string_of_stack_type):
14480 (string_of_func_type):
14484 (string_of_values):
14490 * wasm/spec-tests/address.wast.js:
14491 (register): Deleted.
14493 (instance): Deleted.
14494 (assert_malformed): Deleted.
14495 (assert_invalid): Deleted.
14496 (assert_soft_invalid): Deleted.
14497 (assert_unlinkable): Deleted.
14498 (assert_uninstantiable): Deleted.
14499 (assert_trap): Deleted.
14500 (assert_return): Deleted.
14501 (assert_return_nan): Deleted.
14502 * wasm/spec-tests/binary.wast.js:
14503 (register): Deleted.
14505 (instance): Deleted.
14506 (assert_malformed): Deleted.
14507 (assert_invalid): Deleted.
14508 (assert_soft_invalid): Deleted.
14509 (assert_unlinkable): Deleted.
14510 (assert_uninstantiable): Deleted.
14511 (assert_trap): Deleted.
14512 (assert_return): Deleted.
14513 (assert_return_nan): Deleted.
14514 * wasm/spec-tests/block.wast.js:
14515 (register): Deleted.
14517 (instance): Deleted.
14518 (assert_malformed): Deleted.
14519 (assert_invalid): Deleted.
14520 (assert_soft_invalid): Deleted.
14521 (assert_unlinkable): Deleted.
14522 (assert_uninstantiable): Deleted.
14523 (assert_trap): Deleted.
14524 (assert_return): Deleted.
14525 (assert_return_nan): Deleted.
14526 * wasm/spec-tests/br.wast.js:
14527 (register): Deleted.
14529 (instance): Deleted.
14530 (assert_malformed): Deleted.
14531 (assert_invalid): Deleted.
14532 (assert_soft_invalid): Deleted.
14533 (assert_unlinkable): Deleted.
14534 (assert_uninstantiable): Deleted.
14535 (assert_trap): Deleted.
14536 (assert_return): Deleted.
14537 (assert_return_nan): Deleted.
14538 * wasm/spec-tests/br_if.wast.js:
14539 (register): Deleted.
14541 (instance): Deleted.
14542 (assert_malformed): Deleted.
14543 (assert_invalid): Deleted.
14544 (assert_soft_invalid): Deleted.
14545 (assert_unlinkable): Deleted.
14546 (assert_uninstantiable): Deleted.
14547 (assert_trap): Deleted.
14548 (assert_return): Deleted.
14549 (assert_return_nan): Deleted.
14550 * wasm/spec-tests/br_table.wast.js:
14551 (register): Deleted.
14553 (instance): Deleted.
14554 (assert_malformed): Deleted.
14555 (assert_invalid): Deleted.
14556 (assert_soft_invalid): Deleted.
14557 (assert_unlinkable): Deleted.
14558 (assert_uninstantiable): Deleted.
14559 (assert_trap): Deleted.
14560 (assert_return): Deleted.
14561 (assert_return_nan): Deleted.
14562 * wasm/spec-tests/break-drop.wast.js:
14563 (register): Deleted.
14565 (instance): Deleted.
14566 (assert_malformed): Deleted.
14567 (assert_invalid): Deleted.
14568 (assert_soft_invalid): Deleted.
14569 (assert_unlinkable): Deleted.
14570 (assert_uninstantiable): Deleted.
14571 (assert_trap): Deleted.
14572 (assert_return): Deleted.
14573 (assert_return_nan): Deleted.
14574 * wasm/spec-tests/call.wast.js:
14575 (register): Deleted.
14577 (instance): Deleted.
14578 (assert_malformed): Deleted.
14579 (assert_invalid): Deleted.
14580 (assert_soft_invalid): Deleted.
14581 (assert_unlinkable): Deleted.
14582 (assert_uninstantiable): Deleted.
14583 (assert_trap): Deleted.
14584 (assert_return): Deleted.
14585 (assert_return_nan): Deleted.
14586 * wasm/spec-tests/call_indirect.wast.js:
14587 (register): Deleted.
14589 (instance): Deleted.
14590 (assert_malformed): Deleted.
14591 (assert_invalid): Deleted.
14592 (assert_soft_invalid): Deleted.
14593 (assert_unlinkable): Deleted.
14594 (assert_uninstantiable): Deleted.
14595 (assert_trap): Deleted.
14596 (assert_return): Deleted.
14597 (assert_return_nan): Deleted.
14598 * wasm/spec-tests/comments.wast.js:
14599 (register): Deleted.
14601 (instance): Deleted.
14602 (assert_malformed): Deleted.
14603 (assert_invalid): Deleted.
14604 (assert_soft_invalid): Deleted.
14605 (assert_unlinkable): Deleted.
14606 (assert_uninstantiable): Deleted.
14607 (assert_trap): Deleted.
14608 (assert_return): Deleted.
14609 (assert_return_nan): Deleted.
14610 * wasm/spec-tests/conversions.wast.js:
14611 (register): Deleted.
14613 (instance): Deleted.
14614 (assert_malformed): Deleted.
14615 (assert_invalid): Deleted.
14616 (assert_soft_invalid): Deleted.
14617 (assert_unlinkable): Deleted.
14618 (assert_uninstantiable): Deleted.
14619 (assert_trap): Deleted.
14620 (assert_return): Deleted.
14621 (assert_return_nan): Deleted.
14622 * wasm/spec-tests/custom_section.wast.js:
14623 (register): Deleted.
14625 (instance): Deleted.
14626 (assert_malformed): Deleted.
14627 (assert_invalid): Deleted.
14628 (assert_soft_invalid): Deleted.
14629 (assert_unlinkable): Deleted.
14630 (assert_uninstantiable): Deleted.
14631 (assert_trap): Deleted.
14632 (assert_return): Deleted.
14633 (assert_return_nan): Deleted.
14634 * wasm/spec-tests/endianness.wast.js:
14635 (register): Deleted.
14637 (instance): Deleted.
14638 (assert_malformed): Deleted.
14639 (assert_invalid): Deleted.
14640 (assert_soft_invalid): Deleted.
14641 (assert_unlinkable): Deleted.
14642 (assert_uninstantiable): Deleted.
14643 (assert_trap): Deleted.
14644 (assert_return): Deleted.
14645 (assert_return_nan): Deleted.
14646 * wasm/spec-tests/exports.wast.js:
14647 (register): Deleted.
14649 (instance): Deleted.
14650 (assert_malformed): Deleted.
14651 (assert_invalid): Deleted.
14652 (assert_soft_invalid): Deleted.
14653 (assert_unlinkable): Deleted.
14654 (assert_uninstantiable): Deleted.
14655 (assert_trap): Deleted.
14656 (assert_return): Deleted.
14657 (assert_return_nan): Deleted.
14658 * wasm/spec-tests/f32.wast.js: Removed.
14659 * wasm/spec-tests/f32_cmp.wast.js:
14660 (register): Deleted.
14662 (instance): Deleted.
14663 (assert_malformed): Deleted.
14664 (assert_invalid): Deleted.
14665 (assert_soft_invalid): Deleted.
14666 (assert_unlinkable): Deleted.
14667 (assert_uninstantiable): Deleted.
14668 (assert_trap): Deleted.
14669 (assert_return): Deleted.
14670 (assert_return_nan): Deleted.
14671 * wasm/spec-tests/f64.wast.js: Removed.
14672 * wasm/spec-tests/f64_cmp.wast.js:
14673 (register): Deleted.
14675 (instance): Deleted.
14676 (assert_malformed): Deleted.
14677 (assert_invalid): Deleted.
14678 (assert_soft_invalid): Deleted.
14679 (assert_unlinkable): Deleted.
14680 (assert_uninstantiable): Deleted.
14681 (assert_trap): Deleted.
14682 (assert_return): Deleted.
14683 (assert_return_nan): Deleted.
14684 * wasm/spec-tests/fac.wast.js:
14685 (register): Deleted.
14687 (instance): Deleted.
14688 (assert_malformed): Deleted.
14689 (assert_invalid): Deleted.
14690 (assert_soft_invalid): Deleted.
14691 (assert_unlinkable): Deleted.
14692 (assert_uninstantiable): Deleted.
14693 (assert_trap): Deleted.
14694 (assert_return): Deleted.
14695 (assert_return_nan): Deleted.
14696 * wasm/spec-tests/float_exprs.wast.js: Removed.
14697 * wasm/spec-tests/float_literals.wast.js:
14698 (register): Deleted.
14700 (instance): Deleted.
14701 (assert_malformed): Deleted.
14702 (assert_invalid): Deleted.
14703 (assert_soft_invalid): Deleted.
14704 (assert_unlinkable): Deleted.
14705 (assert_uninstantiable): Deleted.
14706 (assert_trap): Deleted.
14707 (assert_return): Deleted.
14708 (assert_return_nan): Deleted.
14709 * wasm/spec-tests/float_memory.wast.js:
14710 (register): Deleted.
14712 (instance): Deleted.
14713 (assert_malformed): Deleted.
14714 (assert_invalid): Deleted.
14715 (assert_soft_invalid): Deleted.
14716 (assert_unlinkable): Deleted.
14717 (assert_uninstantiable): Deleted.
14718 (assert_trap): Deleted.
14719 (assert_return): Deleted.
14720 (assert_return_nan): Deleted.
14721 * wasm/spec-tests/float_misc.wast.js: Removed.
14722 * wasm/spec-tests/forward.wast.js:
14723 (register): Deleted.
14725 (instance): Deleted.
14726 (assert_malformed): Deleted.
14727 (assert_invalid): Deleted.
14728 (assert_soft_invalid): Deleted.
14729 (assert_unlinkable): Deleted.
14730 (assert_uninstantiable): Deleted.
14731 (assert_trap): Deleted.
14732 (assert_return): Deleted.
14733 (assert_return_nan): Deleted.
14734 * wasm/spec-tests/func.wast.js:
14735 (register): Deleted.
14737 (instance): Deleted.
14738 (assert_malformed): Deleted.
14739 (assert_invalid): Deleted.
14740 (assert_soft_invalid): Deleted.
14741 (assert_unlinkable): Deleted.
14742 (assert_uninstantiable): Deleted.
14743 (assert_trap): Deleted.
14744 (assert_return): Deleted.
14745 (assert_return_nan): Deleted.
14746 * wasm/spec-tests/func_ptrs.wast.js:
14747 (register): Deleted.
14749 (instance): Deleted.
14750 (assert_malformed): Deleted.
14751 (assert_invalid): Deleted.
14752 (assert_soft_invalid): Deleted.
14753 (assert_unlinkable): Deleted.
14754 (assert_uninstantiable): Deleted.
14755 (assert_trap): Deleted.
14756 (assert_return): Deleted.
14757 (assert_return_nan): Deleted.
14758 * wasm/spec-tests/get_local.wast.js:
14759 (register): Deleted.
14761 (instance): Deleted.
14762 (assert_malformed): Deleted.
14763 (assert_invalid): Deleted.
14764 (assert_soft_invalid): Deleted.
14765 (assert_unlinkable): Deleted.
14766 (assert_uninstantiable): Deleted.
14767 (assert_trap): Deleted.
14768 (assert_return): Deleted.
14769 (assert_return_nan): Deleted.
14770 * wasm/spec-tests/globals.wast.js:
14771 (register): Deleted.
14773 (instance): Deleted.
14774 (assert_malformed): Deleted.
14775 (assert_invalid): Deleted.
14776 (assert_soft_invalid): Deleted.
14777 (assert_unlinkable): Deleted.
14778 (assert_uninstantiable): Deleted.
14779 (assert_trap): Deleted.
14780 (assert_return): Deleted.
14781 (assert_return_nan): Deleted.
14782 * wasm/spec-tests/i32.wast.js:
14783 (register): Deleted.
14785 (instance): Deleted.
14786 (assert_malformed): Deleted.
14787 (assert_invalid): Deleted.
14788 (assert_soft_invalid): Deleted.
14789 (assert_unlinkable): Deleted.
14790 (assert_uninstantiable): Deleted.
14791 (assert_trap): Deleted.
14792 (assert_return): Deleted.
14793 (assert_return_nan): Deleted.
14794 * wasm/spec-tests/i64.wast.js:
14795 (register): Deleted.
14797 (instance): Deleted.
14798 (assert_malformed): Deleted.
14799 (assert_invalid): Deleted.
14800 (assert_soft_invalid): Deleted.
14801 (assert_unlinkable): Deleted.
14802 (assert_uninstantiable): Deleted.
14803 (assert_trap): Deleted.
14804 (assert_return): Deleted.
14805 (assert_return_nan): Deleted.
14806 * wasm/spec-tests/if.wast.js: Added.
14807 * wasm/spec-tests/imports.wast.js:
14808 (register): Deleted.
14810 (instance): Deleted.
14811 (assert_malformed): Deleted.
14812 (assert_invalid): Deleted.
14813 (assert_soft_invalid): Deleted.
14814 (assert_unlinkable): Deleted.
14815 (assert_uninstantiable): Deleted.
14816 (assert_trap): Deleted.
14817 (assert_return): Deleted.
14818 (assert_return_nan): Deleted.
14819 * wasm/spec-tests/int_exprs.wast.js:
14820 (register): Deleted.
14822 (instance): Deleted.
14823 (assert_malformed): Deleted.
14824 (assert_invalid): Deleted.
14825 (assert_soft_invalid): Deleted.
14826 (assert_unlinkable): Deleted.
14827 (assert_uninstantiable): Deleted.
14828 (assert_trap): Deleted.
14829 (assert_return): Deleted.
14830 (assert_return_nan): Deleted.
14831 * wasm/spec-tests/int_literals.wast.js:
14832 (register): Deleted.
14834 (instance): Deleted.
14835 (assert_malformed): Deleted.
14836 (assert_invalid): Deleted.
14837 (assert_soft_invalid): Deleted.
14838 (assert_unlinkable): Deleted.
14839 (assert_uninstantiable): Deleted.
14840 (assert_trap): Deleted.
14841 (assert_return): Deleted.
14842 (assert_return_nan): Deleted.
14843 * wasm/spec-tests/jsapi.js: Added.
14844 (testJSAPI.get test):
14846 (testJSAPI.set test):
14847 (testJSAPI.assertCompileError):
14848 (testJSAPI.assertCompileSuccess):
14850 * wasm/spec-tests/labels.wast.js: Added.
14851 * wasm/spec-tests/left-to-right.wast.js:
14852 (register): Deleted.
14854 (instance): Deleted.
14855 (assert_malformed): Deleted.
14856 (assert_invalid): Deleted.
14857 (assert_soft_invalid): Deleted.
14858 (assert_unlinkable): Deleted.
14859 (assert_uninstantiable): Deleted.
14860 (assert_trap): Deleted.
14861 (assert_return): Deleted.
14862 (assert_return_nan): Deleted.
14863 * wasm/spec-tests/linking.wast.js:
14864 (register): Deleted.
14866 (instance): Deleted.
14867 (assert_malformed): Deleted.
14868 (assert_invalid): Deleted.
14869 (assert_soft_invalid): Deleted.
14870 (assert_unlinkable): Deleted.
14871 (assert_uninstantiable): Deleted.
14872 (assert_trap): Deleted.
14873 (assert_return): Deleted.
14874 (assert_return_nan): Deleted.
14875 * wasm/spec-tests/loop.wast.js:
14876 (register): Deleted.
14878 (instance): Deleted.
14879 (assert_malformed): Deleted.
14880 (assert_invalid): Deleted.
14881 (assert_soft_invalid): Deleted.
14882 (assert_unlinkable): Deleted.
14883 (assert_uninstantiable): Deleted.
14884 (assert_trap): Deleted.
14885 (assert_return): Deleted.
14886 (assert_return_nan): Deleted.
14887 * wasm/spec-tests/memory.wast.js:
14888 (register): Deleted.
14890 (instance): Deleted.
14891 (assert_malformed): Deleted.
14892 (assert_invalid): Deleted.
14893 (assert_soft_invalid): Deleted.
14894 (assert_unlinkable): Deleted.
14895 (assert_uninstantiable): Deleted.
14896 (assert_trap): Deleted.
14897 (assert_return): Deleted.
14898 (assert_return_nan): Deleted.
14899 * wasm/spec-tests/memory_redundancy.wast.js:
14900 (register): Deleted.
14902 (instance): Deleted.
14903 (assert_malformed): Deleted.
14904 (assert_invalid): Deleted.
14905 (assert_soft_invalid): Deleted.
14906 (assert_unlinkable): Deleted.
14907 (assert_uninstantiable): Deleted.
14908 (assert_trap): Deleted.
14909 (assert_return): Deleted.
14910 (assert_return_nan): Deleted.
14911 * wasm/spec-tests/memory_trap.wast.js: Removed.
14912 * wasm/spec-tests/names.wast.js:
14913 (register): Deleted.
14915 (instance): Deleted.
14916 (assert_malformed): Deleted.
14917 (assert_invalid): Deleted.
14918 (assert_soft_invalid): Deleted.
14919 (assert_unlinkable): Deleted.
14920 (assert_uninstantiable): Deleted.
14921 (assert_trap): Deleted.
14922 (assert_return): Deleted.
14923 (assert_return_nan): Deleted.
14924 * wasm/spec-tests/nop.wast.js:
14925 (register): Deleted.
14927 (instance): Deleted.
14928 (assert_malformed): Deleted.
14929 (assert_invalid): Deleted.
14930 (assert_soft_invalid): Deleted.
14931 (assert_unlinkable): Deleted.
14932 (assert_uninstantiable): Deleted.
14933 (assert_trap): Deleted.
14934 (assert_return): Deleted.
14935 (assert_return_nan): Deleted.
14936 * wasm/spec-tests/resizing.wast.js:
14937 (register): Deleted.
14939 (instance): Deleted.
14940 (assert_malformed): Deleted.
14941 (assert_invalid): Deleted.
14942 (assert_soft_invalid): Deleted.
14943 (assert_unlinkable): Deleted.
14944 (assert_uninstantiable): Deleted.
14945 (assert_trap): Deleted.
14946 (assert_return): Deleted.
14947 (assert_return_nan): Deleted.
14948 * wasm/spec-tests/return.wast.js:
14949 (register): Deleted.
14951 (instance): Deleted.
14952 (assert_malformed): Deleted.
14953 (assert_invalid): Deleted.
14954 (assert_soft_invalid): Deleted.
14955 (assert_unlinkable): Deleted.
14956 (assert_uninstantiable): Deleted.
14957 (assert_trap): Deleted.
14958 (assert_return): Deleted.
14959 (assert_return_nan): Deleted.
14960 * wasm/spec-tests/select.wast.js:
14961 (register): Deleted.
14963 (instance): Deleted.
14964 (assert_malformed): Deleted.
14965 (assert_invalid): Deleted.
14966 (assert_soft_invalid): Deleted.
14967 (assert_unlinkable): Deleted.
14968 (assert_uninstantiable): Deleted.
14969 (assert_trap): Deleted.
14970 (assert_return): Deleted.
14971 (assert_return_nan): Deleted.
14972 * wasm/spec-tests/set_local.wast.js:
14973 (register): Deleted.
14975 (instance): Deleted.
14976 (assert_malformed): Deleted.
14977 (assert_invalid): Deleted.
14978 (assert_soft_invalid): Deleted.
14979 (assert_unlinkable): Deleted.
14980 (assert_uninstantiable): Deleted.
14981 (assert_trap): Deleted.
14982 (assert_return): Deleted.
14983 (assert_return_nan): Deleted.
14984 * wasm/spec-tests/skip-stack-guard-page.wast.js:
14985 (register): Deleted.
14987 (instance): Deleted.
14988 (assert_malformed): Deleted.
14989 (assert_invalid): Deleted.
14990 (assert_soft_invalid): Deleted.
14991 (assert_unlinkable): Deleted.
14992 (assert_uninstantiable): Deleted.
14993 (assert_trap): Deleted.
14994 (assert_return): Deleted.
14995 (assert_return_nan): Deleted.
14996 * wasm/spec-tests/stack.wast.js:
14997 (register): Deleted.
14999 (instance): Deleted.
15000 (assert_malformed): Deleted.
15001 (assert_invalid): Deleted.
15002 (assert_soft_invalid): Deleted.
15003 (assert_unlinkable): Deleted.
15004 (assert_uninstantiable): Deleted.
15005 (assert_trap): Deleted.
15006 (assert_return): Deleted.
15007 (assert_return_nan): Deleted.
15008 * wasm/spec-tests/start.wast.js:
15009 (register): Deleted.
15011 (instance): Deleted.
15012 (assert_malformed): Deleted.
15013 (assert_invalid): Deleted.
15014 (assert_soft_invalid): Deleted.
15015 (assert_unlinkable): Deleted.
15016 (assert_uninstantiable): Deleted.
15017 (assert_trap): Deleted.
15018 (assert_return): Deleted.
15019 (assert_return_nan): Deleted.
15020 * wasm/spec-tests/store_retval.wast.js:
15021 (register): Deleted.
15023 (instance): Deleted.
15024 (assert_malformed): Deleted.
15025 (assert_invalid): Deleted.
15026 (assert_soft_invalid): Deleted.
15027 (assert_unlinkable): Deleted.
15028 (assert_uninstantiable): Deleted.
15029 (assert_trap): Deleted.
15030 (assert_return): Deleted.
15031 (assert_return_nan): Deleted.
15032 * wasm/spec-tests/switch.wast.js:
15033 (register): Deleted.
15035 (instance): Deleted.
15036 (assert_malformed): Deleted.
15037 (assert_invalid): Deleted.
15038 (assert_soft_invalid): Deleted.
15039 (assert_unlinkable): Deleted.
15040 (assert_uninstantiable): Deleted.
15041 (assert_trap): Deleted.
15042 (assert_return): Deleted.
15043 (assert_return_nan): Deleted.
15044 * wasm/spec-tests/tee_local.wast.js:
15045 (register): Deleted.
15047 (instance): Deleted.
15048 (assert_malformed): Deleted.
15049 (assert_invalid): Deleted.
15050 (assert_soft_invalid): Deleted.
15051 (assert_unlinkable): Deleted.
15052 (assert_uninstantiable): Deleted.
15053 (assert_trap): Deleted.
15054 (assert_return): Deleted.
15055 (assert_return_nan): Deleted.
15056 * wasm/spec-tests/traps.wast.js:
15057 (register): Deleted.
15059 (instance): Deleted.
15060 (assert_malformed): Deleted.
15061 (assert_invalid): Deleted.
15062 (assert_soft_invalid): Deleted.
15063 (assert_unlinkable): Deleted.
15064 (assert_uninstantiable): Deleted.
15065 (assert_trap): Deleted.
15066 (assert_return): Deleted.
15067 (assert_return_nan): Deleted.
15068 * wasm/spec-tests/typecheck.wast.js:
15069 (register): Deleted.
15071 (instance): Deleted.
15072 (assert_malformed): Deleted.
15073 (assert_invalid): Deleted.
15074 (assert_soft_invalid): Deleted.
15075 (assert_unlinkable): Deleted.
15076 (assert_uninstantiable): Deleted.
15077 (assert_trap): Deleted.
15078 (assert_return): Deleted.
15079 (assert_return_nan): Deleted.
15080 * wasm/spec-tests/unreachable.wast.js:
15081 (register): Deleted.
15083 (instance): Deleted.
15084 (assert_malformed): Deleted.
15085 (assert_invalid): Deleted.
15086 (assert_soft_invalid): Deleted.
15087 (assert_unlinkable): Deleted.
15088 (assert_uninstantiable): Deleted.
15089 (assert_trap): Deleted.
15090 (assert_return): Deleted.
15091 (assert_return_nan): Deleted.
15092 * wasm/spec-tests/unreached-invalid.wast.js: Added.
15093 * wasm/spec-tests/unwind.wast.js:
15094 (register): Deleted.
15096 (instance): Deleted.
15097 (assert_malformed): Deleted.
15098 (assert_invalid): Deleted.
15099 (assert_soft_invalid): Deleted.
15100 (assert_unlinkable): Deleted.
15101 (assert_uninstantiable): Deleted.
15102 (assert_trap): Deleted.
15103 (assert_return): Deleted.
15104 (assert_return_nan): Deleted.
15106 2017-04-01 Oleksandr Skachkov <gskachkov@gmail.com>
15108 Object with numerical keys with gaps gets filled by NaN values
15109 https://bugs.webkit.org/show_bug.cgi?id=164412
15111 Reviewed by Merk Lam.
15113 * stress/object-number-properties.js: Added.
15117 2017-03-30 Michael Saboff <msaboff@apple.com>
15119 Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
15120 https://bugs.webkit.org/show_bug.cgi?id=170313
15122 Reviewed by Saam Barati.
15124 Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.
15128 2017-03-30 Michael Saboff <msaboff@apple.com>
15130 Enable ChakraCore/Function/FuncBody.js test as it now works
15131 https://bugs.webkit.org/show_bug.cgi?id=170301
15133 Reviewed by Mark Lam.
15135 This test no longer crashes, so enable it and create a JSC specific
15139 * ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
15141 2017-03-30 JF Bastien <jfbastien@apple.com>
15143 WebAssembly: fix misc JS API implementation inconsistencies
15144 https://bugs.webkit.org/show_bug.cgi?id=170187
15146 Reviewed by Keith Miller.
15148 Verify that WebAssembly function are on the object's __proto__.
15150 * wasm/js-api/Module-compile.js:
15151 * wasm/js-api/validate.js:
15152 * wasm/js-api/web-assembly-instantiate.js:
15154 2017-03-29 JF Bastien <jfbastien@apple.com>
15156 WebAssembly: add shell-only Memory mode helper
15157 https://bugs.webkit.org/show_bug.cgi?id=170227
15159 Reviewed by Mark Lam.
15161 * wasm/assert.js: fix a prior debug thing I forgot to remove
15162 * wasm/function-tests/memory-section-and-import.js: the assert
15163 issue was hiding a failure in error message here
15164 * wasm/js-api/element.js: the assert issue was hiding a failure in
15166 (badInstantiation.test):
15167 (badInstantiation):
15168 * wasm/js-api/extension-MemoryMode.js: Added.
15169 (const.validateMode.what.switch):
15172 (testInstanceNoMemory):
15173 (testInstanceNoMax):
15175 * wasm/js-api/test_memory.js: the assert issue was hiding a
15176 failure in error message here
15179 2017-03-28 Keith Miller <keith_miller@apple.com>
15181 WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
15182 https://bugs.webkit.org/show_bug.cgi?id=169187
15184 Reviewed by Saam Barati.
15187 * wasm/js-api/Module-compile.js:
15188 (async.testPromiseAPI):
15189 * wasm/js-api/web-assembly-compile-parallel.js: Added.
15192 * wasm/js-api/web-assembly-instantiate-parallel.js: Added.
15194 * wasm/js-api/web-assembly-instantiate.js:
15195 (assert.eq.async.test):
15197 (assert.asyncTest.async.test):
15198 (assert.asyncTest):
15199 (assert.truthy.async.test): Deleted.
15200 (assert.truthy): Deleted.
15202 2017-03-28 JF Bastien <jfbastien@apple.com>
15204 WebAssembly: implement Module imports/exports
15205 https://bugs.webkit.org/show_bug.cgi?id=166982
15207 Reviewed by Saam Barati.
15209 * wasm/js-api/Module.exports.js: Added.
15210 (assert.throws.WebAssembly.Module.prototype.exports):
15212 * wasm/js-api/Module.imports.js: Added.
15213 (assert.throws.WebAssembly.Module.prototype.imports):
15216 2017-03-27 JF Bastien <jfbastien@apple.com>
15218 WebAssembly: misc memory testing
15219 https://bugs.webkit.org/show_bug.cgi?id=170137
15221 Reviewed by Keith Miller.
15223 * wasm/assert.js: handle newlines in code we print out, avoid regex
15224 * wasm/function-tests/memory-import-and-grow.js: Added.
15225 (const.instantiate):
15227 * wasm/function-tests/memory-section-and-import.js: Added.
15228 (const.instantiate):
15230 2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
15232 [JSC] Use jsNontrivialString agressively for ToString(Int52)
15233 https://bugs.webkit.org/show_bug.cgi?id=170002
15235 Reviewed by Sam Weinig.
15237 * stress/to-string-int52.js: Added.
15242 2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
15244 [JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions
15245 https://bugs.webkit.org/show_bug.cgi?id=169998
15247 Reviewed by Saam Barati.
15249 * microbenchmarks/int52-back-and-forth.js: Added.
15253 2017-03-23 Mark Lam <mark.lam@apple.com>
15255 Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks.
15256 https://bugs.webkit.org/show_bug.cgi?id=169783
15258 Reviewed by Saam Barati.
15260 * stress/regress-169783.js: Added.
15262 2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
15264 [JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup
15265 https://bugs.webkit.org/show_bug.cgi?id=169914
15267 Reviewed by Saam Barati.
15269 * stress/any-int-as-double-add.js: Added.
15272 * stress/to-this-numbers.js: Added.
15274 (Number.prototype.toThis):
15276 2017-03-22 Mark Lam <mark.lam@apple.com>
15278 Add support for Error.stackTraceLimit.
15279 https://bugs.webkit.org/show_bug.cgi?id=169904
15281 Reviewed by Saam Barati.
15283 * stress/error-stack-trace-limit.js: Added.
15285 2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
15287 [JSC] Use jsNontrivialString for Number toString operations
15288 https://bugs.webkit.org/show_bug.cgi?id=169965
15290 Reviewed by Mark Lam.
15292 * stress/to-string-int32.js: Added.
15297 2017-03-22 JF Bastien <jfbastien@apple.com>
15299 WebAssembly: test module namespace object for WebAssembly.Instance
15300 https://bugs.webkit.org/show_bug.cgi?id=169951
15302 Reviewed by Saam Barati.
15304 * wasm/js-api/test_basic_api.js:
15305 (const.c.in.constructorProperties.switch):
15307 2017-03-22 JF Bastien <jfbastien@apple.com>
15309 WebAssembly: constructors without new don't throw
15310 https://bugs.webkit.org/show_bug.cgi?id=165995
15312 Reviewed by Saam Barati.
15314 * wasm/js-api/test_basic_api.js:
15315 (const.c.in.constructorProperties.switch):
15317 2017-03-21 Yusuke Suzuki <utatane.tea@gmail.com>
15319 [JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double
15320 https://bugs.webkit.org/show_bug.cgi?id=167454
15322 Reviewed by Saam Barati.
15324 * stress/number-to-string-abstract-operation.js: Added.
15327 (shouldBe.int32ToString.new.Number.int52ToString):
15328 (shouldBe.int32ToString.new.Number):
15329 (shouldBe.doubleToString):
15330 * stress/number-to-string-radix.js: Added.
15333 (shouldBe.int32ToString.new.Number.int52ToString):
15334 (shouldBe.int32ToString.new.Number):
15335 (shouldBe.doubleToString):
15336 * stress/number-to-string.js: Added.
15339 (shouldBe.int32ToString.new.Number.int52ToString):
15340 (shouldBe.int32ToString.new.Number):
15341 (shouldBe.doubleToString):
15343 2017-03-19 Chris Dumez <cdumez@apple.com>
15345 `const location = "foo"` throws in a worker
15346 https://bugs.webkit.org/show_bug.cgi?id=169839
15348 Reviewed by Mark Lam.
15350 * ChakraCore/test/es6/letconst_global_shadow_builtins_nonconfigurable.baseline-jsc:
15351 Update expected jsc result now that we throw a SyntaxError when trying to shadow undefined
15352 with a let variable. We used not to throw because the value is undefined but this was not
15353 as per EcmaScript. Both Firefox and Chrome throw in this case.
15355 * stress/global-lexical-redeclare-variable.js:
15357 Update test that defines a non-configurable 'zoo' property on the global object and then
15358 expected shadowing it with a 'let zoo' variable to work because its value was undefined.
15359 This was not as per EcmaScript spec and both Firefox and Chrome throw in this case.
15361 2017-03-19 Yusuke Suzuki <utatane.tea@gmail.com>
15363 import(arg) crashes when ToString(arg) throws
15364 https://bugs.webkit.org/show_bug.cgi?id=169778
15366 Reviewed by Saam Barati.
15368 * stress/import-reject-with-exception.js: Added.
15370 (let.x.get toString):
15372 2017-03-16 Filip Pizlo <fpizlo@apple.com>
15374 FTL should support global and eval code
15375 https://bugs.webkit.org/show_bug.cgi?id=169656
15377 Reviewed by Geoffrey Garen and Saam Barati.
15379 Added basic performance tests of global and eval code. These tests will run a lot faster in with
15380 the FTL because of the object allocation.
15382 * microbenchmarks/eval-code-ftl-reentry.js: Added.
15383 * microbenchmarks/eval-code-ftl.js: Added.
15384 * microbenchmarks/global-code-ftl.js: Added.
15385 * stress/arith-log-on-various-types.js: This was a flaky fail with concurrent JIT, so I stopped running it with concurrent JIT. The failure was its assertion about how many times something gets compiled.
15387 2017-03-16 Caio Lima <ticaiolima@gmail.com>
15389 [ESnext] Implement Object Spread
15390 https://bugs.webkit.org/show_bug.cgi?id=167963
15392 Reviewed by Yusuke Suzuki.
15394 * stress/object-spread.js: Added.
15396 (assert.sameValue):
15403 (try.let.obj.get foo):
15406 2017-03-15 Yusuke Suzuki <utatane.tea@gmail.com>
15408 [JSC] Default parameter part should be retrieved by op_get_argument opcode instead of changing arity
15409 https://bugs.webkit.org/show_bug.cgi?id=164582
15411 Reviewed by Saam Barati.
15413 * stress/function-with-defaults-inlining.js: Added.
15417 * stress/function-with-defaults-non-inlining.js: Added.
15422 2017-03-15 Yusuke Suzuki <utatane.tea@gmail.com>
15424 [DFG] ToString operation should have fixup for primitives to say this node does not have side effects
15425 https://bugs.webkit.org/show_bug.cgi?id=169544
15427 Reviewed by Saam Barati.
15429 * microbenchmarks/template-string-array.js: Added.
15431 * stress/to-string-non-cell-use.js: Added.
15435 2017-03-13 Commit Queue <commit-queue@webkit.org>
15437 Unreviewed, rolling out r213856.
15438 https://bugs.webkit.org/show_bug.cgi?id=169562
15440 Breaks JSC stress test stress/super-property-access.js.ftl-
15441 eager failing (Requested by mlam|g on #webkit).
15443 Reverted changeset:
15445 "FTL should not flush strict arguments unless it really needs
15447 https://bugs.webkit.org/show_bug.cgi?id=169519
15448 http://trac.webkit.org/changeset/213856
15450 2017-03-11 Filip Pizlo <fpizlo@apple.com>
15452 FTL should not flush strict arguments unless it really needs to
15453 https://bugs.webkit.org/show_bug.cgi?id=169519
15455 Reviewed by Mark Lam.
15457 This benchmark runs 3.5x faster thanks to this patch.
15459 * microbenchmarks/strict-arguments-no-escape.js: Added.
15464 2017-03-13 Caio Lima <ticaiolima@gmail.com>
15466 [JSC] It should be possible create a label named let when parsing Statement in non strict mode
15467 https://bugs.webkit.org/show_bug.cgi?id=168684
15469 Reviewed by Saam Barati.
15471 * ChakraCore/test/LetConst/DeclOutofBlock.baseline-jsc:
15473 2017-03-10 Saam Barati <sbarati@apple.com>
15475 WebAssembly: Make more demos run
15476 https://bugs.webkit.org/show_bug.cgi?id=165510
15477 <rdar://problem/29760310>
15479 Reviewed by Keith Miller.
15482 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
15483 * wasm/js-api/wrapper-function.js: Added.
15485 (return.new.WebAssembly.Module):
15486 (assert.throws.makeInstance):
15487 (assert.throws.Bar):
15490 2017-03-10 Mark Lam <mark.lam@apple.com>
15492 JSC: BindingNode::bindValue doesn't increase the scope's reference count.
15493 https://bugs.webkit.org/show_bug.cgi?id=168546
15494 <rdar://problem/30589551>
15496 Reviewed by Saam Barati.
15498 * stress/regress-168546.js: Added.
15500 2017-03-09 Caio Lima <ticaiolima@gmail.com>
15502 [ESnext] Implement Object Rest - Implementing Object Rest Destructuring
15503 https://bugs.webkit.org/show_bug.cgi?id=167962
15505 Reviewed by Keith Miller.
15507 * stress/object-rest-deconstruct.js: Added.
15509 (let.assertPropDescriptor):
15517 2017-03-09 Saam Barati <sbarati@apple.com>
15519 WebAssembly: Make the Unity AngryBots demo run
15520 https://bugs.webkit.org/show_bug.cgi?id=169268
15522 Reviewed by Keith Miller.
15524 * wasm/function-tests/many-arguments-to-function.js: Added.
15525 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.I32Const.0.I32Const.1.I32Const.2.I32Const.3.I32Const.4.I32Const.5.I32Const.6.I32Const.7.I32Const.8.I32Const.9.I32Const.10.I32Const.11.I32Const.12.I32Const.13.I32Const.14.I32Const.15.I32Const.16.I32Const.17.Call.0.Return.End.End.foo):
15526 (i.instance.exports.f0.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.F32Const.Call.Return.End.End.foo):
15527 (i.instance.exports.f0):
15528 (instance.exports.f0.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.GetLocal.Call.Return.End.End.foo):
15529 (instance.exports.f0):
15531 2017-03-08 Yusuke Suzuki <utatane.tea@gmail.com>
15533 [GTK] JSC test stress/arity-check-ftl-throw.js.ftl-no-cjit-validate-sampling-profiler crashing on GTK bot
15534 https://bugs.webkit.org/show_bug.cgi?id=160124
15536 Reviewed by Mark Lam.
15538 * stress/spread-forward-call-varargs-stack-overflow.js:
15540 2017-03-06 Saam Barati <sbarati@apple.com>
15542 WebAssembly: Implement the WebAssembly.instantiate API
15543 https://bugs.webkit.org/show_bug.cgi?id=165982
15544 <rdar://problem/29760110>
15546 Reviewed by Keith Miller.
15548 * wasm/js-api/web-assembly-instantiate.js: Added.
15549 (assert.eq.async.test):
15551 (assert.truthy.async.test):
15554 2017-03-06 Saam Barati <sbarati@apple.com>
15556 Unreviewed. Fix test expected error message.
15558 * wasm/js-api/element.js:
15561 2017-03-06 Caio Lima <ticaiolima@gmail.com>
15563 op_get_by_id_with_this should use inline caching
15564 https://bugs.webkit.org/show_bug.cgi?id=162124
15566 Reviewed by Saam Barati.
15568 * microbenchmarks/super-getter.js: Added.
15569 (A.prototype.get f):
15571 (B.prototype.get f):
15573 * stress/super-force-ic-fail.js: Added.
15575 (let.aObj.get foo):
15577 (let.bObj.get foo):
15579 * stress/super-get-by-id.js: Added.
15582 (Base.prototype.get name):
15583 (Base.prototype.set name):
15584 (Subclass.prototype.get name):
15588 (PolymorphicSubclass.prototype.get value):
15589 (PolymorphicSubclass):
15592 (MegamorphicSubclass.prototype.get value):
15593 (MegamorphicSubclass):
15594 (let.subObj.get value):
15596 (subObj.get value):
15598 (BaseException.prototype.get name):
15599 (SubclassException.prototype.get name):
15600 (SubclassException):
15602 (prototype.get name):
15603 (SubclassExceptionComplex.prototype.get name):
15604 (SubclassExceptionComplex):
15605 * stress/super-getter-reset-ic.js: Added.
15609 2017-03-06 Saam Barati <sbarati@apple.com>
15611 WebAssembly: implement init_expr for Element
15612 https://bugs.webkit.org/show_bug.cgi?id=165888
15613 <rdar://problem/29760199>
15615 Reviewed by Keith Miller.
15617 * wasm/Builder_WebAssemblyBinary.js:
15618 (const.emitters.Element):
15620 * wasm/js-api/element.js:
15622 (badInstantiation.makeModule):
15623 (badInstantiation.test):
15624 (badInstantiation):
15625 * wasm/js-api/global-error.js:
15627 2017-03-06 Carlos Alberto Lopez Perez <clopez@igalia.com>
15629 [JSC] [Linux] Test stress/spread-forward-call-varargs-stack-overflow.js fails
15630 https://bugs.webkit.org/show_bug.cgi?id=169206
15632 Unreviewed test gardening.
15634 * stress/spread-forward-call-varargs-stack-overflow.js: Skip on Linux platforms.
15636 2017-03-06 Yusuke Suzuki <utatane.tea@gmail.com>
15638 [JSC] Allow indexed module namespace object fields
15639 https://bugs.webkit.org/show_bug.cgi?id=168870
15641 Reviewed by Saam Barati.
15643 * wasm/spec-tests/names.wast.js:
15645 2017-03-06 Yusuke Suzuki <utatane.tea@gmail.com>
15647 Null pointer crash when loading module with unresolved import also as a script file
15648 https://bugs.webkit.org/show_bug.cgi?id=168971
15650 Reviewed by Saam Barati.
15652 * stress/re-execute-error-module.js: Added.
15655 * stress/resources/error-module.js: Added.
15657 2017-03-02 Keith Miller <keith_miller@apple.com>
15659 WebAssemblyFunction should have Function.prototype as its prototype
15660 https://bugs.webkit.org/show_bug.cgi?id=169101
15662 Reviewed by Filip Pizlo.
15664 * wasm/js-api/web-assembly-function.js: Added.
15666 2017-02-28 Oleksandr Skachkov <gskachkov@gmail.com>
15668 Use of arguments in arrow function is slow
15669 https://bugs.webkit.org/show_bug.cgi?id=168829
15671 Reviewed by Saam Barati.
15673 * microbenchmarks/arrowfunciton-direct-arguments.js: Added.
15675 * microbenchmarks/arrowfunciton-reference-arguments.js: Added.
15678 2017-02-27 Commit Queue <commit-queue@webkit.org>
15680 Unreviewed, rolling out r213019.
15681 https://bugs.webkit.org/show_bug.cgi?id=168925
15683 "It broke 32-bit jsc tests in debug builds" (Requested by
15684 saamyjoon on #webkit).
15686 Reverted changeset:
15688 "op_get_by_id_with_this should use inline caching"
15689 https://bugs.webkit.org/show_bug.cgi?id=162124
15690 http://trac.webkit.org/changeset/213019
15692 2017-02-27 JF Bastien <jfbastien@apple.com>
15694 WebAssembly: miscellaneous spec fixes part deux
15695 https://bugs.webkit.org/show_bug.cgi?id=168861
15697 Reviewed by Keith Miller.
15699 * wasm.yaml: more passing tests
15700 * wasm/Builder.js: use a Map instead of an Object for the function
15701 index space, because Number entries such as 0 were colliding with
15702 string entries such as "0". This in turn requires some hashing of
15703 objects which are inserted, because Map uses Object's insertion
15704 order when comparing.
15705 (export.default.Builder):
15706 (export.default.Builder.prototype._functionIndexSpaceKeyHash):
15707 (export.default.Builder.prototype._registerFunctionToIndexSpace):
15708 (export.default.Builder.prototype._getFunctionFromIndexSpace):
15709 * wasm/js-api/test_Instance.js: add a FIXME test
15710 * wasm/spec-tests/memory.wast.js:
15711 (assert_unlinkable):
15712 * wasm/spec-tests/names.wast.js:
15714 2017-02-26 Caio Lima <ticaiolima@gmail.com>
15716 op_get_by_id_with_this should use inline caching
15717 https://bugs.webkit.org/show_bug.cgi?id=162124
15719 Reviewed by Saam Barati.
15721 * microbenchmarks/super-getter.js: Added.
15722 (A.prototype.get f):
15724 (B.prototype.get f):
15726 * stress/super-force-ic-fail.js: Added.
15728 (let.aObj.get foo):
15730 (let.bObj.get foo):
15732 * stress/super-get-by-id.js: Added.
15735 (Base.prototype.get name):
15736 (Base.prototype.set name):
15737 (Subclass.prototype.get name):
15741 (PolymorphicSubclass.prototype.get value):
15742 (PolymorphicSubclass):
15745 (MegamorphicSubclass.prototype.get value):
15746 (MegamorphicSubclass):
15747 (let.subObj.get value):
15749 (subObj.get value):
15751 (BaseException.prototype.get name):
15752 (SubclassException.prototype.get name):
15753 (SubclassException):
15755 (prototype.get name):
15756 (SubclassExceptionComplex.prototype.get name):
15757 (SubclassExceptionComplex):
15758 * stress/super-getter-reset-ic.js: Added.
15762 2017-02-24 JF Bastien <jfbastien@apple.com>
15764 WebAssembly: miscellaneous spec fixes
15765 https://bugs.webkit.org/show_bug.cgi?id=168822
15767 Reviewed by Saam Barati.
15769 * wasm.yaml: mark some skip tests as normal, now that they pass
15770 * wasm/Builder.js: error message was wrong, causing extra error if hit
15771 * wasm/js-api/global-error.js: new tests
15773 * wasm/spec-tests/call.wast.js: comment out stack check tests
15774 * wasm/spec-tests/call_indirect.wast.js: comment out stack check tests
15775 * wasm/spec-tests/fac.wast.js: comment out stack check tests
15776 * wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update
15777 * wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt
15778 (assert_unlinkable):
15780 2017-02-23 Saam Barati <sbarati@apple.com>
15782 Intrinsicify parseInt
15783 https://bugs.webkit.org/show_bug.cgi?id=168627
15785 Reviewed by Filip Pizlo.
15787 * stress/parse-int-intrinsic.js: Added.
15789 (testIntrinsic.let.s):
15791 (testIntrinsic2.baz):
15793 (testIntrinsic3.foo):
15795 (testIntrinsic4.foo):
15797 (testIntrinsic5.foo):
15799 (testIntrinsic6.foo):
15801 (testIntrinsic7.foo):
15804 2017-02-23 JF Bastien <jfbastien@apple.com>
15806 WebAssembly: support 0x1 version
15807 https://bugs.webkit.org/show_bug.cgi?id=168672
15809 Reviewed by Keith Miller.
15811 Update the version number for all the tests. Note that the spec
15812 tests are only updated with a new version number because spec+wabt
15813 aren't ready for 0x1 yet. This is tracked by bug #168784.
15815 * wasm/import-spec-tests.rb: use the new spec repository layout
15816 * wasm/js-api/test_basic_api.js:
15817 * wasm/self-test/test_BuilderWebAssembly.js:
15820 * wasm/spec-tests/address.wast.js:
15821 * wasm/spec-tests/binary.wast.js:
15822 * wasm/spec-tests/block.wast.js:
15823 * wasm/spec-tests/br.wast.js:
15824 * wasm/spec-tests/br_if.wast.js:
15825 * wasm/spec-tests/br_table.wast.js:
15826 * wasm/spec-tests/break-drop.wast.js:
15827 * wasm/spec-tests/call.wast.js:
15828 * wasm/spec-tests/call_indirect.wast.js:
15829 * wasm/spec-tests/comments.wast.js:
15830 * wasm/spec-tests/conversions.wast.js:
15831 * wasm/spec-tests/custom_section.wast.js:
15832 * wasm/spec-tests/endianness.wast.js:
15833 * wasm/spec-tests/exports.wast.js:
15834 * wasm/spec-tests/f32.wast.js:
15835 * wasm/spec-tests/f32_cmp.wast.js:
15836 * wasm/spec-tests/f64.wast.js:
15837 * wasm/spec-tests/f64_cmp.wast.js:
15838 * wasm/spec-tests/fac.wast.js:
15839 * wasm/spec-tests/float_exprs.wast.js:
15840 * wasm/spec-tests/float_literals.wast.js:
15841 * wasm/spec-tests/float_memory.wast.js:
15842 * wasm/spec-tests/float_misc.wast.js:
15843 * wasm/spec-tests/forward.wast.js:
15844 * wasm/spec-tests/func.wast.js:
15845 * wasm/spec-tests/func_ptrs.wast.js:
15846 * wasm/spec-tests/get_local.wast.js:
15847 * wasm/spec-tests/globals.wast.js:
15848 * wasm/spec-tests/i32.wast.js:
15849 * wasm/spec-tests/i64.wast.js:
15850 * wasm/spec-tests/imports.wast.js:
15851 * wasm/spec-tests/int_exprs.wast.js:
15852 * wasm/spec-tests/int_literals.wast.js:
15853 * wasm/spec-tests/left-to-right.wast.js:
15854 * wasm/spec-tests/linking.wast.js:
15855 * wasm/spec-tests/loop.wast.js:
15856 * wasm/spec-tests/memory.wast.js:
15857 * wasm/spec-tests/memory_redundancy.wast.js:
15858 * wasm/spec-tests/memory_trap.wast.js:
15859 * wasm/spec-tests/names.wast.js:
15860 * wasm/spec-tests/nop.wast.js:
15861 * wasm/spec-tests/resizing.wast.js:
15862 * wasm/spec-tests/return.wast.js:
15863 * wasm/spec-tests/select.wast.js:
15864 * wasm/spec-tests/set_local.wast.js:
15865 * wasm/spec-tests/skip-stack-guard-page.wast.js:
15866 * wasm/spec-tests/stack.wast.js:
15867 * wasm/spec-tests/start.wast.js:
15868 * wasm/spec-tests/store_retval.wast.js:
15869 * wasm/spec-tests/switch.wast.js:
15870 * wasm/spec-tests/tee_local.wast.js:
15871 * wasm/spec-tests/traps.wast.js:
15872 * wasm/spec-tests/typecheck.wast.js:
15873 * wasm/spec-tests/unreachable.wast.js:
15874 * wasm/spec-tests/unwind.wast.js:
15877 2017-02-22 Yusuke Suzuki <utatane.tea@gmail.com>
15879 JSModuleNamespace object should have IC
15880 https://bugs.webkit.org/show_bug.cgi?id=160590
15882 Reviewed by Saam Barati.
15884 * modules/module-assert-access-binding.js: Added.
15885 * modules/module-assert-access-namespace.js: Added.
15886 * modules/namespace-empty.js: Added.
15887 (from.string_appeared_here.access):
15889 * stress/module-namespace-access-change.js: Added.
15892 (import.string_appeared_here.then):
15893 * stress/module-namespace-access-non-constant.js: Added.
15895 (import.string_appeared_here.then):
15896 * stress/module-namespace-access-poly.js: Added.
15899 (import.string_appeared_here.then):
15900 * stress/module-namespace-access-transitive-exports.js: Added.
15902 (import.string_appeared_here.then):
15903 * stress/module-namespace-access.js: Added.
15905 (import.string_appeared_here.then):
15906 * stress/resources/module-namespace-access-transitive-exports-2.js: Added.
15909 * stress/resources/module-namespace-access-transitive-exports.js: Added.
15910 * stress/resources/module-namespace-access.js: Added.
15914 2017-02-20 Filip Pizlo <fpizlo@apple.com>
15916 The collector thread should only start when the mutator doesn't have heap access
15917 https://bugs.webkit.org/show_bug.cgi?id=167737
15919 Reviewed by Keith Miller.
15921 Add versions of splay that flash heap access, to simulate what might happen if a third-party app
15922 was running concurrent GC. In this case, we might actually start the collector thread.
15924 * stress/splay-flash-access-1ms.js: Added.
15926 (this.Setup.setup.setup):
15927 (this.TearDown.tearDown.tearDown):
15930 (BenchmarkResult.prototype.valueOf):
15934 (BenchmarkSuite.ResetRNG):
15936 (BenchmarkSuite.RunSuites):
15937 (BenchmarkSuite.CountBenchmarks):
15938 (BenchmarkSuite.GeometricMean):
15939 (BenchmarkSuite.GeometricMeanTime):
15940 (BenchmarkSuite.AverageAbovePercentile):
15941 (BenchmarkSuite.GeometricMeanLatency):
15942 (BenchmarkSuite.FormatScore):
15943 (BenchmarkSuite.prototype.NotifyStep):
15944 (BenchmarkSuite.prototype.NotifyResult):
15945 (BenchmarkSuite.prototype.NotifyError):
15946 (BenchmarkSuite.prototype.RunSingleBenchmark):
15948 (RunNextBenchmark):
15950 (BenchmarkSuite.prototype.RunStep):
15951 (GeneratePayloadTree):
15953 (SplayUpdateStats):
15959 (SplayTree.prototype.isEmpty):
15960 (SplayTree.prototype.insert):
15961 (SplayTree.prototype.remove):
15962 (SplayTree.prototype.find):
15963 (SplayTree.prototype.findMax):
15964 (SplayTree.prototype.findGreatestLessThan):
15965 (SplayTree.prototype.exportKeys):
15966 (SplayTree.prototype.splay_):
15968 (SplayTree.Node.prototype.traverse_):
15972 (averageAbovePercentile):
15974 * stress/splay-flash-access.js: Added.
15976 (this.Setup.setup.setup):
15977 (this.TearDown.tearDown.tearDown):
15980 (BenchmarkResult.prototype.valueOf):
15984 (BenchmarkSuite.ResetRNG):
15986 (BenchmarkSuite.RunSuites):
15987 (BenchmarkSuite.CountBenchmarks):
15988 (BenchmarkSuite.GeometricMean):
15989 (BenchmarkSuite.GeometricMeanTime):
15990 (BenchmarkSuite.AverageAbovePercentile):
15991 (BenchmarkSuite.GeometricMeanLatency):
15992 (BenchmarkSuite.FormatScore):
15993 (BenchmarkSuite.prototype.NotifyStep):
15994 (BenchmarkSuite.prototype.NotifyResult):
15995 (BenchmarkSuite.prototype.NotifyError):
15996 (BenchmarkSuite.prototype.RunSingleBenchmark):
15998 (RunNextBenchmark):
16000 (BenchmarkSuite.prototype.RunStep):
16001 (GeneratePayloadTree):
16003 (SplayUpdateStats):
16009 (SplayTree.prototype.isEmpty):
16010 (SplayTree.prototype.insert):
16011 (SplayTree.prototype.remove):
16012 (SplayTree.prototype.find):
16013 (SplayTree.prototype.findMax):
16014 (SplayTree.prototype.findGreatestLessThan):
16015 (SplayTree.prototype.exportKeys):
16016 (SplayTree.prototype.splay_):
16018 (SplayTree.Node.prototype.traverse_):
16022 (averageAbovePercentile):
16025 2017-02-21 Ryan Haddad <ryanhaddad@apple.com>
16027 Unreviewed, rolling out r212712.
16029 This change broke the CLoop build.
16031 Reverted changeset:
16033 "JSModuleNamespace object should have IC"
16034 https://bugs.webkit.org/show_bug.cgi?id=160590
16035 http://trac.webkit.org/changeset/212712
16037 2017-02-21 Yusuke Suzuki <utatane.tea@gmail.com>
16039 JSModuleNamespace object should have IC
16040 https://bugs.webkit.org/show_bug.cgi?id=160590
16042 Reviewed by Saam Barati.
16044 * modules/module-assert-access-binding.js: Added.
16045 * modules/module-assert-access-namespace.js: Added.
16046 * modules/namespace-empty.js: Added.
16047 (from.string_appeared_here.access):
16049 * stress/module-namespace-access-change.js: Added.
16052 (import.string_appeared_here.then):
16053 * stress/module-namespace-access-non-constant.js: Added.
16055 (import.string_appeared_here.then):
16056 * stress/module-namespace-access-poly.js: Added.
16059 (import.string_appeared_here.then):
16060 * stress/module-namespace-access-transitive-exports.js: Added.
16062 (import.string_appeared_here.then):
16063 * stress/module-namespace-access.js: Added.
16065 (import.string_appeared_here.then):
16066 * stress/resources/module-namespace-access-transitive-exports-2.js: Added.
16069 * stress/resources/module-namespace-access-transitive-exports.js: Added.
16070 * stress/resources/module-namespace-access.js: Added.
16074 2017-02-21 Yusuke Suzuki <utatane.tea@gmail.com>
16076 ASSERTION FAILED: "!scope.exception()" with Object.isSealed/isFrozen and uninitialized module bindings
16077 https://bugs.webkit.org/show_bug.cgi?id=168605
16079 Reviewed by Saam Barati.
16081 * modules/module-namespace-is-frozen.js: Added.
16082 (from.string_appeared_here.shouldThrow):
16084 * modules/module-namespace-is-sealed.js: Added.
16085 (from.string_appeared_here.shouldThrow):
16088 2017-02-19 Commit Queue <commit-queue@webkit.org>
16090 Unreviewed, rolling out r212466.
16091 https://bugs.webkit.org/show_bug.cgi?id=168577
16093 causes crashes on AArch64 on linux, maybe it's causing crashes
16094 on iOS too (Requested by pizlo on #webkit).
16096 Reverted changeset:
16098 "The collector thread should only start when the mutator
16099 doesn't have heap access"
16100 https://bugs.webkit.org/show_bug.cgi?id=167737
16101 http://trac.webkit.org/changeset/212466
16103 2017-02-10 Filip Pizlo <fpizlo@apple.com>
16105 The collector thread should only start when the mutator doesn't have heap access
16106 https://bugs.webkit.org/show_bug.cgi?id=167737
16108 Reviewed by Keith Miller.
16110 Add versions of splay that flash heap access, to simulate what might happen if a third-party app
16111 was running concurrent GC. In this case, we might actually start the collector thread.
16113 * stress/splay-flash-access-1ms.js: Added.
16115 (this.Setup.setup.setup):
16116 (this.TearDown.tearDown.tearDown):
16119 (BenchmarkResult.prototype.valueOf):
16123 (BenchmarkSuite.ResetRNG):
16125 (BenchmarkSuite.RunSuites):
16126 (BenchmarkSuite.CountBenchmarks):
16127 (BenchmarkSuite.GeometricMean):
16128 (BenchmarkSuite.GeometricMeanTime):
16129 (BenchmarkSuite.AverageAbovePercentile):
16130 (BenchmarkSuite.GeometricMeanLatency):
16131 (BenchmarkSuite.FormatScore):
16132 (BenchmarkSuite.prototype.NotifyStep):
16133 (BenchmarkSuite.prototype.NotifyResult):
16134 (BenchmarkSuite.prototype.NotifyError):
16135 (BenchmarkSuite.prototype.RunSingleBenchmark):
16137 (RunNextBenchmark):
16139 (BenchmarkSuite.prototype.RunStep):
16140 (GeneratePayloadTree):
16142 (SplayUpdateStats):
16148 (SplayTree.prototype.isEmpty):
16149 (SplayTree.prototype.insert):
16150 (SplayTree.prototype.remove):
16151 (SplayTree.prototype.find):
16152 (SplayTree.prototype.findMax):
16153 (SplayTree.prototype.findGreatestLessThan):
16154 (SplayTree.prototype.exportKeys):
16155 (SplayTree.prototype.splay_):
16157 (SplayTree.Node.prototype.traverse_):
16161 (averageAbovePercentile):
16163 * stress/splay-flash-access.js: Added.
16165 (this.Setup.setup.setup):
16166 (this.TearDown.tearDown.tearDown):
16169 (BenchmarkResult.prototype.valueOf):
16173 (BenchmarkSuite.ResetRNG):
16175 (BenchmarkSuite.RunSuites):
16176 (BenchmarkSuite.CountBenchmarks):
16177 (BenchmarkSuite.GeometricMean):
16178 (BenchmarkSuite.GeometricMeanTime):
16179 (BenchmarkSuite.AverageAbovePercentile):
16180 (BenchmarkSuite.GeometricMeanLatency):
16181 (BenchmarkSuite.FormatScore):
16182 (BenchmarkSuite.prototype.NotifyStep):
16183 (BenchmarkSuite.prototype.NotifyResult):
16184 (BenchmarkSuite.prototype.NotifyError):
16185 (BenchmarkSuite.prototype.RunSingleBenchmark):
16187 (RunNextBenchmark):
16189 (BenchmarkSuite.prototype.RunStep):
16190 (GeneratePayloadTree):
16192 (SplayUpdateStats):
16198 (SplayTree.prototype.isEmpty):
16199 (SplayTree.prototype.insert):
16200 (SplayTree.prototype.remove):
16201 (SplayTree.prototype.find):
16202 (SplayTree.prototype.findMax):
16203 (SplayTree.prototype.findGreatestLessThan):
16204 (SplayTree.prototype.exportKeys):
16205 (SplayTree.prototype.splay_):
16207 (SplayTree.Node.prototype.traverse_):
16211 (averageAbovePercentile):
16214 2017-02-16 Yusuke Suzuki <utatane.tea@gmail.com>
16216 [JSC] Update module namespace object according to the latest ECMA262
16217 https://bugs.webkit.org/show_bug.cgi?id=168280
16219 Reviewed by Saam Barati.
16221 * modules/namespace-object-symbol-iterator-name.js:
16222 * modules/namespace-object-typed-array-fast-path.js:
16223 * modules/namespace.js:
16224 (shouldBe.JSON.stringify.Reflect.getOwnPropertyDescriptor):
16227 2017-02-11 Yusuke Suzuki <utatane.tea@gmail.com>
16229 [JSC] Implement (Shared)ArrayBuffer.prototype.byteLength
16230 https://bugs.webkit.org/show_bug.cgi?id=166476
16232 Reviewed by Saam Barati.
16234 * ChakraCore/test/typedarray/arraybufferType.baseline-jsc:
16235 * stress/array-buffer-byte-length.js: Added.
16239 * stress/reflect-set.js:
16241 2017-02-10 Saam Barati <sbarati@apple.com>
16243 Object allocation sinking phase doesn't properly handle control flow when emitting a PutHint of a materialized object into a PromotedHeapLocation of a still sunken object
16244 https://bugs.webkit.org/show_bug.cgi?id=168140
16245 <rdar://problem/30205880>
16247 Reviewed by Filip Pizlo.
16249 * stress/allocation-sinking-puthint-control-flow.js: Added.
16258 2017-02-09 Mark Lam <mark.lam@apple.com>
16260 B3::Procedure::deleteOrphans() should neutralize upsilons with dead phis.
16261 https://bugs.webkit.org/show_bug.cgi?id=167437
16262 <rdar://problem/30198083>
16264 Reviewed by Filip Pizlo.
16266 * stress/b3-delete-orphans-should-neutralize-upsilons-with-dead-phis.js: Added.
16268 2017-02-09 Saam Barati <sbarati@apple.com>
16270 Sloppy mode: We don't properly hoist functions names "arguments" when we have a non-simple parameter list
16271 https://bugs.webkit.org/show_bug.cgi?id=167319
16272 <rdar://problem/30149432>
16274 Reviewed by Mark Lam.
16276 * stress/sloppy-mode-hoist-arguments-function-non-simple-parameter-list.js: Added.
16278 (assert.arguments):
16284 2017-02-09 Mark Lam <mark.lam@apple.com>
16286 Fix max length check in ArrayPrototype.js' concatSlowPath().
16287 https://bugs.webkit.org/show_bug.cgi?id=167270
16288 <rdar://problem/30128133>
16290 Reviewed by Filip Pizlo.
16292 * stress/array-prototype-concat-of-long-spliced-arrays.js: Added.
16293 * stress/array-prototype-concat-of-long-spliced-arrays2.js: Added.
16295 2017-02-09 Keith Miller <keith_miller@apple.com>
16297 We should not allow Function.caller to be used on native functions
16298 https://bugs.webkit.org/show_bug.cgi?id=165628
16300 Reviewed by Mark Lam.
16302 * stress/caller-native-code.js: Added.
16305 2017-02-04 Yusuke Suzuki <utatane.tea@gmail.com>
16307 [JSC] Add operationToInt32SensibleSlow to optimize kraken pbkdf2 and sha256
16308 https://bugs.webkit.org/show_bug.cgi?id=167736
16310 Reviewed by Saam Barati.
16312 * stress/to-int32-sensible.js: Added.
16317 2017-02-01 Yusuke Suzuki <utatane.tea@gmail.com>
16319 Unreviewed, remove loop
16320 https://bugs.webkit.org/show_bug.cgi?id=167694
16323 Original bug can be tested even without this loop.
16325 * stress/arity-fixup-should-not-touch-stack-area-below-sp.js:
16327 2017-02-01 Yusuke Suzuki <utatane.tea@gmail.com>
16329 ArityFixup should adjust SP first
16330 https://bugs.webkit.org/show_bug.cgi?id=167239
16332 Reviewed by Michael Saboff.
16334 Significantly large arity fixup reliably causes this crash.
16336 * stress/arity-fixup-should-not-touch-stack-area-below-sp.js: Added.
16338 2017-01-31 Filip Pizlo <fpizlo@apple.com>
16340 Move slow-running microbenchmarks out of JSTests/microbenchmarks
16341 https://bugs.webkit.org/show_bug.cgi?id=167676
16343 Reviewed by Saam Barati.
16345 The microbenchmarks directory is profitable when it's cheap to run. This change moves very slow
16346 tests (>=200ms running time on my machine) and puts them in JSTests/slowMicrobenchmarks instead.
16347 That directory is run only through `slow!; defaultQuickRun` and is not run by run-jsc-benchmarks.
16348 This is a big progression in test running time. But because it frontloads more slow tests, the
16349 tests will seem to run more slowly when you first start the test runner.
16351 * microbenchmarks/default-derived-constructor.js: Removed.
16352 * microbenchmarks/dense-set.js: Removed.
16353 * microbenchmarks/ftl-polymorphic-div.js: Removed.
16354 * microbenchmarks/ftl-polymorphic-mul.js: Removed.
16355 * microbenchmarks/function-bind-inlining.js: Removed.
16356 * microbenchmarks/function-bind-no-inlining.js: Removed.
16357 * microbenchmarks/large-map-iteration-with-additions.js: Removed.
16358 * microbenchmarks/large-map-iteration-with-mutation.js: Removed.
16359 * microbenchmarks/map-get-get-cse.js: Removed.
16360 * microbenchmarks/misc-bugs-847389-jpeg2000.js: Removed.
16361 * microbenchmarks/spread-small-array.js: Removed.
16362 * microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Removed.
16363 * slowMicrobenchmarks: Added.
16364 * slowMicrobenchmarks.yaml: Added.
16365 * slowMicrobenchmarks/README: Added.
16366 * slowMicrobenchmarks/default-derived-constructor.js: Copied from JSTests/microbenchmarks/default-derived-constructor.js.
16367 * slowMicrobenchmarks/dense-set.js: Copied from JSTests/microbenchmarks/dense-set.js.
16368 * slowMicrobenchmarks/ftl-polymorphic-div.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-div.js.
16369 * slowMicrobenchmarks/ftl-polymorphic-mul.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-mul.js.
16370 * slowMicrobenchmarks/function-bind-inlining.js: Copied from JSTests/microbenchmarks/function-bind-inlining.js.
16371 * slowMicrobenchmarks/function-bind-no-inlining.js: Copied from JSTests/microbenchmarks/function-bind-no-inlining.js.
16372 * slowMicrobenchmarks/large-map-iteration-with-additions.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-additions.js.
16373 * slowMicrobenchmarks/large-map-iteration-with-mutation.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-mutation.js.
16374 * slowMicrobenchmarks/map-get-get-cse.js: Copied from JSTests/microbenchmarks/map-get-get-cse.js.
16375 * slowMicrobenchmarks/misc-bugs-847389-jpeg2000.js: Copied from JSTests/microbenchmarks/misc-bugs-847389-jpeg2000.js.
16376 * slowMicrobenchmarks/spread-small-array.js: Copied from JSTests/microbenchmarks/spread-small-array.js.
16377 * slowMicrobenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Copied from JSTests/microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js.
16379 2017-01-30 Yusuke Suzuki <utatane.tea@gmail.com>
16381 [JSC] Do not reject WebAssembly.compile() with Exception
16382 https://bugs.webkit.org/show_bug.cgi?id=167585
16384 Reviewed by Mark Lam.
16386 * wasm/js-api/Module-compile.js:
16387 (async.testPromiseAPI):
16389 2017-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
16391 Lift template escape sequence restrictions in tagged templates
16392 https://bugs.webkit.org/show_bug.cgi?id=166871
16394 Reviewed by Saam Barati.
16396 Update the error messages and add new tests.
16398 * ChakraCore/test/es6/unicode_6_identifier_Blue524737.baseline-jsc:
16399 * stress/lift-template-literal.js: Added.
16401 (testTag.return.tag):
16403 * stress/template-literal-syntax.js:
16405 2017-01-26 Mark Lam <mark.lam@apple.com>
16407 Fix missing exception check in genericTypedArrayViewProtoFuncSet().
16408 https://bugs.webkit.org/show_bug.cgi?id=166812
16409 <rdar://problem/29916672>
16411 Reviewed by Saam Barati.
16413 * stress/regress-166812.js: Added.
16415 2017-01-26 Commit Queue <commit-queue@webkit.org>
16417 Unreviewed, rolling out r211224.
16418 https://bugs.webkit.org/show_bug.cgi?id=167479
16420 "It was a Kraken performance regression" (Requested by
16421 saamyjoon on #webkit).
16423 Reverted changeset:
16425 "OSR entry: delay outer-loop compilation when at inner-loop"
16426 https://bugs.webkit.org/show_bug.cgi?id=167149
16427 http://trac.webkit.org/changeset/211224
16429 2017-01-26 JF Bastien <jfbastien@apple.com>
16431 OSR entry: delay outer-loop compilation when at inner-loop
16432 https://bugs.webkit.org/show_bug.cgi?id=167149
16434 Reviewed by Filip Pizlo.
16436 Try to be mean to OSR entry by using nested loops, and having
16437 non-int32 types or truly varying types.
16439 Mandelbrot currently never tiers up to FTL because it exits too
16440 many times before this. That shouldn't happen because it's just
16441 numbers and int32s. I'll file a bug to fix this.
16443 * microbenchmarks/mandelbrot.js: Added.
16446 * microbenchmarks/nonude.js: Added.
16447 (Array.prototype.remove):
16453 2017-01-25 Saam Barati <sbarati@apple.com>
16455 WebAssembly JS API: coerce return values from imports
16456 https://bugs.webkit.org/show_bug.cgi?id=165480
16457 <rdar://problem/29760318>
16459 Reviewed by Yusuke Suzuki.
16461 * wasm/function-tests/function-import-return-value.js: Added.
16462 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.x.assert.eq):
16463 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.Math.fround):
16464 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.type.of.Reflect.ownKeys):
16469 2017-01-25 Filip Pizlo <fpizlo@apple.com>
16471 jsc.cpp should have the $.agent stuff for testing SAB
16472 https://bugs.webkit.org/show_bug.cgi?id=167431
16474 Reviewed by Saam Barati.
16476 Add a very basic test of Atomics using $.agent. This is based on
16477 LayoutTests/workers/sab/simple.html.
16479 * stress/lars-sab-workers.js: Added.
16485 2017-01-24 Filip Pizlo <fpizlo@apple.com>
16487 Atomics.store should return the int-converted value according to toInteger
16488 https://bugs.webkit.org/show_bug.cgi?id=167399
16490 Reviewed by Saam Barati.
16492 * stress/atomics-add-uint32.js: Added.
16493 * stress/atomics-store-return.js: Fix the test to match what the spec wants.
16495 2017-01-24 Yusuke Suzuki <utatane.tea@gmail.com>
16497 [JSC] Optimize Number#toString with Int52
16498 https://bugs.webkit.org/show_bug.cgi?id=167303
16500 Reviewed by Sam Weinig.
16502 * stress/to-string-with-int52.js: Added.
16505 2017-01-24 Filip Pizlo <fpizlo@apple.com>
16507 Atomics.store should return the int-converted value, not the value that it stored
16508 https://bugs.webkit.org/show_bug.cgi?id=167395
16510 Reviewed by Saam Barati.
16512 * stress/atomics-store-return.js: Added.
16514 2017-01-24 Filip Pizlo <fpizlo@apple.com>
16516 -0 is a valid array index and AtomicsObject should know this
16517 https://bugs.webkit.org/show_bug.cgi?id=167386
16519 Reviewed by Mark Lam.
16521 * stress/atomics-neg-zero.js: Added.
16523 2017-01-23 Saam Barati <sbarati@apple.com>
16525 https://bugs.webkit.org/show_bug.cgi?id=167247
16526 JSC: operationSpreadGeneric uses the wrong global object for the builtin function and slow_path_spread consults the wrong global object to prove if the iterator protocol is unobservable
16527 <rdar://problem/30121809>
16529 Reviewed by Filip Pizlo.
16531 * stress/spread-consults-correct-global-object.js: Added.
16534 * stress/spread-correct-global-object-on-exception.js: Added.
16537 (const.objectText.let.o.Symbol.iterator):
16540 2017-01-21 Yusuke Suzuki <utatane.tea@gmail.com>
16542 dynamic import is ambiguous with import declaration at module code
16543 https://bugs.webkit.org/show_bug.cgi?id=167098
16545 Reviewed by Darin Adler.
16547 * modules/import-call.js: Added.
16548 (from.string_appeared_here.import.string_appeared_here.then):
16549 * modules/import-call/main.js: Added.
16550 * stress/import-syntax.js:
16553 2017-01-19 Skachkov Oleksandr <gskachkov@gmail.com>
16555 "this" missing after await in async arrow function
16556 https://bugs.webkit.org/show_bug.cgi?id=166919
16558 Reviewed by Saam Barati.
16560 * stress/async-arrow-functions-lexical-binding-in-class.js:
16561 (ChildClass.prototype.asyncThisPropWithAwaitBody):
16562 (ChildClass.prototype.asyncThisPropInEvalWithAwaitBody):
16563 (ChildClass.prototype.asyncThisValueBodyWithAwait):
16564 (ChildClass.prototype.asyncThisValueInEvalWithAwaitBody):
16567 (ChildClass3.prototype.classValue):
16568 (ChildClass3.prototype.get classProperty):
16569 * stress/async-arrow-functions-lexical-new.target-binding.js:
16572 2017-01-16 Filip Pizlo <fpizlo@apple.com>
16574 Make opaque root scanning truly constraint-based
16575 https://bugs.webkit.org/show_bug.cgi?id=165760
16577 Reviewed by Geoffrey Garen.
16579 Added this test, which demonstrates the benefit of having a dedicated string subspace.
16581 * microbenchmarks/stringalloc.js: Added.
16583 2017-01-17 Michael Saboff <msaboff@apple.com>
16585 Nested parenthesized regular expressions with non-zero minimum counts appear to hang and use lots of memory
16586 https://bugs.webkit.org/show_bug.cgi?id=167125
16588 Reviewed by Filip Pizlo.
16590 * microbenchmarks/regexp-nested-nonzero-min-counted-parens.js: Added.
16591 New test with limits that run slow and take a reasonable amount of memory
16592 before the change and run fast, using little memory with the change.
16594 2017-01-14 Yusuke Suzuki <utatane.tea@gmail.com>
16596 Annotate large string tests with largeHeap
16597 https://bugs.webkit.org/show_bug.cgi?id=167054
16599 Reviewed by Filip Pizlo.
16601 * microbenchmarks/dense-set.js:
16602 * microbenchmarks/lots-of-fields.js:
16603 * stress/joined-strings-should-not-exceed-max-string-length.js:
16604 * stress/make-large-string-jit-strcat.js:
16605 * stress/make-large-string-jit.js:
16606 * stress/make-large-string-strcat.js:
16607 * stress/make-large-string.js:
16608 * stress/string-joining-long-strings-should-not-crash.js:
16609 * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
16611 2017-01-14 Yusuke Suzuki <utatane.tea@gmail.com>
16613 Reserve capacity for StringBuilder in unescape
16614 https://bugs.webkit.org/show_bug.cgi?id=167008
16616 Reviewed by Sam Weinig.
16618 * stress/unescape.js: Added.
16621 2017-01-12 Saam Barati <sbarati@apple.com>
16623 Add a slice intrinsic to the DFG/FTL
16624 https://bugs.webkit.org/show_bug.cgi?id=166707
16625 <rdar://problem/29913445>
16627 Reviewed by Filip Pizlo.
16629 * stress/array-slice-intrinsic.js: Added.
16634 * stress/array-slice-jettison-on-constructor-change.js: Added.
16638 (addRandomProperties):
16640 * stress/array-slice-osr-exit-2.js: Added.
16646 (addRandomProperties):
16648 * stress/array-slice-osr-exit.js: Added.
16654 (addRandomProperties):
16657 2017-01-11 Ryan Haddad <ryanhaddad@apple.com>
16659 Mark es6/typed_arrays_correct_prototype_chains.js as failing after r210570.
16660 https://bugs.webkit.org/show_bug.cgi?id=166931i
16662 Unreviewed test gardening.
16666 2017-01-10 Commit Queue <commit-queue@webkit.org>
16668 Unreviewed, rolling out r210052.
16669 https://bugs.webkit.org/show_bug.cgi?id=166915
16671 "breaks web compatability" (Requested by keith_miller on
16674 Reverted changeset:
16676 "Add support for global"
16677 https://bugs.webkit.org/show_bug.cgi?id=165171
16678 http://trac.webkit.org/changeset/210052
16680 2017-01-10 Mark Lam <mark.lam@apple.com>
16682 Property setters should not be called for bound arguments list entries.
16683 https://bugs.webkit.org/show_bug.cgi?id=165631
16685 Reviewed by Filip Pizlo.
16687 * stress/property-setters-should-not-be-called-for-bound-arguments-list-entries.js: Added.
16689 2017-01-10 Skachkov Oleksandr <gskachkov@gmail.com>
16691 Calling async arrow function which is in a class's member function will cause error
16692 https://bugs.webkit.org/show_bug.cgi?id=166879
16694 Reviewed by Saam Barati.
16696 * stress/async-arrow-functions-lexical-binding-in-class.js: Added.
16699 (BaseClass.prototype.baseClassValue):
16700 (BaseClass.prototype.get property):
16703 (ChildClass.prototype.classValue):
16704 (ChildClass.prototype.get classProperty):
16705 (ChildClass.prototype.asyncValueExp):
16706 (ChildClass.prototype.asyncValueBody):
16707 (ChildClass.prototype.asyncThisPropExp):
16708 (ChildClass.prototype.asyncThisPropBody):
16709 (ChildClass.prototype.asyncThisPropInEvalExp):
16710 (ChildClass.prototype.asyncThisPropInEvalBody):
16711 (ChildClass.prototype.asyncThisValueExp):
16712 (ChildClass.prototype.asyncThisValueBody):
16713 (ChildClass.prototype.asyncThisValueInEvalExp):
16714 (ChildClass.prototype.asyncThisValueInEvalBody):
16717 (ChildClass2.prototype.classValue):
16718 (ChildClass2.prototype.get classProperty):
16719 * stress/async-arrow-functions-lexical-super-binding.js:
16721 2017-01-09 Yusuke Suzuki <utatane.tea@gmail.com>
16723 [JSC] Prototype dynamic-import
16724 https://bugs.webkit.org/show_bug.cgi?id=165724
16726 Reviewed by Saam Barati.
16728 * stress/import-basic.js: Added.
16729 (async.async.load):
16732 * stress/import-from-eval.js: Added.
16735 * stress/import-syntax.js: Added.
16737 * stress/import-tests/cocoa.js: Added.
16740 * stress/import-tests/multiple.js: Added.
16742 * stress/import-tests/multiple2.js: Added.
16744 * stress/import-tests/should.js: Added.
16746 (export.shouldThrow):
16747 * stress/modules-syntax-error.js:
16749 2017-01-09 Commit Queue <commit-queue@webkit.org>
16751 Unreviewed, rolling out r210476.
16752 https://bugs.webkit.org/show_bug.cgi?id=166859
16754 "4% JSBench regression" (Requested by keith_mi_ on #webkit).
16756 Reverted changeset:
16758 "Add a slice intrinsic to the DFG/FTL"
16759 https://bugs.webkit.org/show_bug.cgi?id=166707
16760 http://trac.webkit.org/changeset/210476
16762 2017-01-06 Saam Barati <sbarati@apple.com>
16764 Add a slice intrinsic to the DFG/FTL
16765 https://bugs.webkit.org/show_bug.cgi?id=166707
16767 Reviewed by Filip Pizlo.
16769 * stress/array-slice-intrinsic.js: Added.
16774 * stress/array-slice-jettison-on-constructor-change.js: Added.
16778 (addRandomProperties):
16780 * stress/array-slice-osr-exit-2.js: Added.
16786 (addRandomProperties):
16788 * stress/array-slice-osr-exit.js: Added.
16794 (addRandomProperties):
16797 2017-01-06 Michael Saboff <msaboff@apple.com>
16799 @putByValDirect in Array.of and Array.from overwrites non-writable/configurable properties
16800 https://bugs.webkit.org/show_bug.cgi?id=153486
16802 Reviewed by Saam Barati.
16804 New regression test.
16806 * stress/regress-153486.js: Added.
16808 (makeUnwriteableUnconfigurableObject):
16813 2016-12-30 Filip Pizlo <fpizlo@apple.com>
16815 DeferGC::~DeferGC should be super cheap
16816 https://bugs.webkit.org/show_bug.cgi?id=166626
16818 Reviewed by Saam Barati.
16820 * stress/slow-path-generator-updating-current-node-dfg.js:
16821 * stress/unshift-array-storage.js:
16823 2017-01-04 JF Bastien <jfbastien@apple.com>
16825 WebAssembly: sections with the same name are allowed
16826 https://bugs.webkit.org/show_bug.cgi?id=166708
16828 Reviewed by Saam Barati.
16830 * wasm/self-test/test_BuilderJSON.js:
16831 (SectionsWithSameCustomName):
16833 2017-01-04 Saam Barati <sbarati@apple.com>
16835 stress/spread-calling.js timing out on the bots
16836 https://bugs.webkit.org/show_bug.cgi?id=166689
16837 <rdar://problem/29779182>
16839 Reviewed by Mark Lam.
16841 * stress/spread-calling.js:
16843 2017-01-04 JF Bastien <jfbastien@apple.com>
16845 WebAssembly JS API: add Module.sections
16846 https://bugs.webkit.org/show_bug.cgi?id=165159
16847 <rdar://problem/29760326>
16849 Reviewed by Mark Lam.
16851 As described here: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections
16853 * wasm/Builder.js: allow custom sections to be duplicated
16854 * wasm/js-api/Module.customSection.js: Added.
16855 (assert.throws.WebAssembly.Module.prototype.customSections):
16858 2017-01-04 Saam Barati <sbarati@apple.com>
16860 We don't properly handle exceptions inside the nativeCallTrampoline macro in the LLInt
16861 https://bugs.webkit.org/show_bug.cgi?id=163720
16863 Reviewed by Mark Lam.
16865 * stress/bound-function-tail-call-with-exception.js: Added.
16870 2017-01-03 JF Bastien <jfbastien@apple.com>
16872 WebAssembly JS API: check and test in-call / out-call values
16873 https://bugs.webkit.org/show_bug.cgi?id=164876
16874 <rdar://problem/29844107>
16876 Reviewed by Saam Barati.
16879 * wasm/assert.js: add an assert for NaN comparison
16880 * wasm/fuzz/export-function.js: Added. Generate random wasm export
16881 signatures, and call them with random parameters.
16882 (const.paramExporter):
16884 (const.types.generate):
16886 * wasm/js-api/export-arity.js: Added.
16887 (const.paramExporter): Test that mismatched arities when JS calls
16888 wasm follow the defined semantics: i32 is 0, f32 / f64 are NaN.
16889 https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects
16890 * wasm/js-api/export-void-is-undef.js: Added. Test that "void"
16891 wasm functions return "undefined" in JS.
16893 2017-01-02 JF Bastien <jfbastien@apple.com>
16895 WebAssembly: handle and optimize wasm export → wasm import calls
16896 https://bugs.webkit.org/show_bug.cgi?id=165282
16898 Reviewed by Saam Barati.
16900 * wasm/Builder.js: Add a Proxy to Builder.js, which intercepts
16901 unknown property lookups. This creates way better error messages
16902 on typos than 'undefined is not a function', which happens
16903 semi-frequently as I typo opcode names (and which one is a typo is
16904 hard to find because we chain builders).
16905 (const._isValidValue):
16907 (const._importFunctionContinuation):
16908 (const._importMemoryContinuation):
16909 (const._importTableContinuation):
16910 (const._exportFunctionContinuation):
16911 (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
16912 (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
16913 * wasm/LowLevelBinary.js: Add limited support for var{u}int64 (only the 32-bit values)
16914 (export.default.LowLevelBinary.prototype.varint32):
16915 (export.default.LowLevelBinary.prototype.varuint64):
16916 (export.default.LowLevelBinary.prototype.varint64):
16917 * wasm/function-tests/exceptions.js: update error message
16918 * wasm/function-tests/trap-load.js: update error message
16919 * wasm/function-tests/trap-store.js: update error message
16920 * wasm/js-api/wasm-to-wasm-bad-signature.js: Added. Test a bunch of bad wasm->wasm import signatures
16921 (const.makeImportee.signature.switch):
16922 (BadSignatureDropStartParams):
16923 * wasm/js-api/wasm-to-wasm.js: Added. Test 64-bit wasm->wasm import calls
16924 (const.callerModule):
16925 (const.calleeModule):
16928 2017-01-02 Saam Barati <sbarati@apple.com>
16930 WebAssembly: Some loads don't take into account the offset
16931 https://bugs.webkit.org/show_bug.cgi?id=166616
16932 <rdar://problem/29841541>
16934 Reviewed by Keith Miller.
16936 * wasm/function-tests/load-offset.js: Added.
16938 2016-12-29 Saam Barati <sbarati@apple.com>
16940 WebAssembly: Rebase spec-tests now that wabt has been updated to produce certain kinds of invalid modules
16941 https://bugs.webkit.org/show_bug.cgi?id=166491
16942 <rdar://problem/29814999>
16944 Reviewed by Yusuke Suzuki.
16946 Based off these revisions:
16947 - spec: b055d01ea1dfdd7a5231ae779095435f836de97f
16948 - wabt: d0d44702c753f851b094615298a2f4d4e3c21035
16950 The reason for the rebase is that wabt was updated to stop
16951 silently rejecting invalid modules. This was needed because
16952 some of the spec tests check to make sure that the module
16953 is invalid, but wabt was silently ignoring the errors and
16954 generating valid modules:
16955 https://github.com/WebAssembly/wabt/issues/256
16958 * wasm/spec-tests/address.wast.js:
16959 * wasm/spec-tests/binary.wast.js:
16960 * wasm/spec-tests/block.wast.js:
16961 * wasm/spec-tests/br.wast.js:
16962 * wasm/spec-tests/br_if.wast.js:
16963 * wasm/spec-tests/br_table.wast.js:
16964 * wasm/spec-tests/break-drop.wast.js:
16965 * wasm/spec-tests/call.wast.js:
16966 * wasm/spec-tests/call_indirect.wast.js:
16967 * wasm/spec-tests/comments.wast.js:
16968 * wasm/spec-tests/conversions.wast.js:
16969 * wasm/spec-tests/custom_section.wast.js:
16970 * wasm/spec-tests/endianness.wast.js:
16971 * wasm/spec-tests/exports.wast.js:
16972 * wasm/spec-tests/f32.wast.js:
16973 * wasm/spec-tests/f32_cmp.wast.js:
16974 * wasm/spec-tests/f64.wast.js:
16975 * wasm/spec-tests/f64_cmp.wast.js:
16976 * wasm/spec-tests/fac.wast.js:
16977 * wasm/spec-tests/float_exprs.wast.js:
16978 * wasm/spec-tests/float_literals.wast.js:
16979 * wasm/spec-tests/float_memory.wast.js:
16980 * wasm/spec-tests/float_misc.wast.js:
16981 * wasm/spec-tests/forward.wast.js:
16982 * wasm/spec-tests/func.wast.js:
16983 * wasm/spec-tests/func_ptrs.wast.js:
16984 * wasm/spec-tests/get_local.wast.js:
16985 * wasm/spec-tests/globals.wast.js:
16986 * wasm/spec-tests/i32.wast.js:
16987 * wasm/spec-tests/i64.wast.js:
16988 * wasm/spec-tests/imports.wast.js:
16989 * wasm/spec-tests/int_exprs.wast.js:
16990 * wasm/spec-tests/int_literals.wast.js:
16991 * wasm/spec-tests/left-to-right.wast.js:
16992 * wasm/spec-tests/linking.wast.js:
16993 * wasm/spec-tests/loop.wast.js:
16994 * wasm/spec-tests/memory.wast.js:
16995 * wasm/spec-tests/memory_redundancy.wast.js:
16996 * wasm/spec-tests/memory_trap.wast.js:
16997 * wasm/spec-tests/names.wast.js:
16998 * wasm/spec-tests/nop.wast.js:
16999 * wasm/spec-tests/resizing.wast.js:
17000 * wasm/spec-tests/return.wast.js:
17001 * wasm/spec-tests/select.wast.js:
17002 * wasm/spec-tests/set_local.wast.js:
17003 * wasm/spec-tests/skip-stack-guard-page.wast.js:
17004 * wasm/spec-tests/stack.wast.js:
17005 * wasm/spec-tests/start.wast.js:
17006 * wasm/spec-tests/store_retval.wast.js:
17007 * wasm/spec-tests/switch.wast.js:
17008 * wasm/spec-tests/tee_local.wast.js:
17009 * wasm/spec-tests/traps.wast.js:
17010 * wasm/spec-tests/typecheck.wast.js:
17011 * wasm/spec-tests/unreachable.wast.js:
17012 * wasm/spec-tests/unwind.wast.js:
17014 2016-12-28 Saam Barati <sbarati@apple.com>
17016 WebAssembly: Don't allow duplicate export names
17017 https://bugs.webkit.org/show_bug.cgi?id=166490
17018 <rdar://problem/29815000>
17020 Reviewed by Keith Miller.
17023 * wasm/function-tests/invalid-duplicate-export.js: Added.
17025 2016-12-28 Saam Barati <sbarati@apple.com>
17027 WebAssembly: Implement grow_memory and current_memory
17028 https://bugs.webkit.org/show_bug.cgi?id=166448
17029 <rdar://problem/29803676>
17031 Reviewed by Keith Miller.
17033 I rewrote some of the testWasmModuleFunctions that used Memory to use
17034 the JS API since the jsc.cpp version can no longer use memory.
17037 * wasm/function-tests/add-12.js:
17038 (testWasmModuleFunctions):
17039 * wasm/function-tests/br-if-loop-less-than.js:
17040 (testWasmModuleFunctions):
17041 * wasm/function-tests/brTableAsIf.js:
17042 (testWasmModuleFunctions):
17043 * wasm/function-tests/brTableManyValues.js:
17044 (testWasmModuleFunctions):
17045 * wasm/function-tests/brTableWithLoop.js:
17046 (testWasmModuleFunctions):
17047 * wasm/function-tests/dumb-eq-if-then-else.js:
17048 * wasm/function-tests/eqz.js:
17049 * wasm/function-tests/grow-memory-2.js: Added.
17051 (assert.eq.instance.exports.foo):
17052 * wasm/function-tests/grow-memory-3.js: Added.
17053 * wasm/function-tests/grow-memory-4.js: Added.
17055 * wasm/function-tests/grow-memory.js: Added.
17056 (binaryShouldNotParse):
17060 * wasm/function-tests/i32-load.js:
17061 (testWasmModuleFunctions):
17062 * wasm/function-tests/i32-load8-s.js:
17063 * wasm/function-tests/max.js:
17064 * wasm/function-tests/min.js:
17065 * wasm/js-api/memory-grow.js: Added.
17068 * wasm/js-api/test_memory.js:
17071 2016-12-25 Yusuke Suzuki <utatane.tea@gmail.com>
17073 Propagate the source origin as much as possible
17074 https://bugs.webkit.org/show_bug.cgi?id=166348
17076 Reviewed by Darin Adler.
17078 * stress/source-origin.js: Added.
17081 2016-12-24 Caio Lima <ticaiolima@gmail.com>
17083 [test262] Fixing mapped arguments object property test case
17084 https://bugs.webkit.org/show_bug.cgi?id=159398
17086 Reviewed by Saam Barati.
17088 * stress/arguments-bizarre-behaviour-disable-enumerability.js:
17089 * stress/arguments-define-property.js: Added.
17092 * stress/arguments-non-configurable.js: Added.
17094 (tryChangeNonConfigurableDescriptor):
17095 (set tryChangeNonConfigurableDescriptor):
17096 (tryChangeWritableOfNonConfigurableDescriptor):
17099 016-12-20 Caio Lima <ticaiolima@gmail.com>
17101 [test262] Fixing mapped arguments object property test case
17102 https://bugs.webkit.org/show_bug.cgi?id=159398
17106 * stress/arguments-bizarre-behaviour-disable-enumerability.js:
17107 * stress/arguments-define-property.js: Added.
17110 * stress/arguments-non-configurable.js: Added.
17112 (tryChangeNonConfigurableDescriptor):
17113 (set tryChangeNonConfigurableDescriptor):
17114 (tryChangeWritableOfNonConfigurableDescriptor):
17117 2016-12-23 Keith Miller <keith_miller@apple.com>
17119 WebAssembly: trap on bad division.
17120 https://bugs.webkit.org/show_bug.cgi?id=164786
17122 Reviewed by Mark Lam.
17124 Also, mark conversions as passing.
17129 2016-12-22 Keith Miller <keith_miller@apple.com>
17131 WebAssembly: Make spec-tests/f32.wast.js and spec-tests/f64.wast.js pass
17132 https://bugs.webkit.org/show_bug.cgi?id=166447
17134 Reviewed by Saam Barati.
17139 2016-12-22 Saam Barati <sbarati@apple.com>
17141 WebAssembly: Make calling Wasm functions that returns or takes an i64 as a parameter an early exception
17142 https://bugs.webkit.org/show_bug.cgi?id=166437
17143 <rdar://problem/29793949>
17145 Reviewed by Keith Miller.
17148 * wasm/function-tests/i64-from-js-exceptions.js: Added.
17149 (const.imp.import.sideEffects):
17150 (assert.throws.instance.exports.foo.valueOf):
17152 2016-12-22 Mark Lam <mark.lam@apple.com>
17154 De-duplicate finally blocks.
17155 https://bugs.webkit.org/show_bug.cgi?id=160168
17157 Reviewed by Saam Barati.
17159 Re-landing r209952 with a few new tests added in test-finally.js.
17161 * stress/deeply-nested-finallys.js: Copied from JSTests/stress/deeply-nested-finallys.js.
17162 - Tests many levels of finally nesting. This causes the old code to hang (and
17163 crashes eventually) while trying to generate bytecode for the exponentially
17164 duplicated finally blocks. The new code completes this test almost instantly.
17166 * stress/test-finally.js: Copied from JSTests/stress/test-finally.js.
17167 - Tests control flow through various permutations of finally blocks.
17169 2016-12-22 Saam Barati <sbarati@apple.com>
17171 WebAssembly: Make the spec-tests/address.wast.js test pass
17172 https://bugs.webkit.org/show_bug.cgi?id=166429
17173 <rdar://problem/29793220>
17175 Reviewed by Keith Miller.
17179 2016-12-22 Keith Miller <keith_miller@apple.com>
17181 WebAssembly: The validator should not allow unused stack entries at the end of a block
17182 https://bugs.webkit.org/show_bug.cgi?id=166411
17184 Reviewed by Saam Barati.
17186 Test cleanup and enable new passing tests.
17189 * wasm/function-tests/br-if-as-return.js:
17191 2016-12-22 Saam Barati <sbarati@apple.com>
17193 WebAssembly: Make the spec-tests/start.wast.js test pass
17194 https://bugs.webkit.org/show_bug.cgi?id=166416
17195 <rdar://problem/29784532>
17197 Reviewed by Yusuke Suzuki.
17201 2016-12-21 Keith Miller <keith_miller@apple.com>
17203 WebAssembly: Fix decode floating point constants in unreachable code
17204 https://bugs.webkit.org/show_bug.cgi?id=166400
17206 Reviewed by Saam Barati.
17210 2016-12-21 Keith Miller <keith_miller@apple.com>
17212 WebAssembly: Allow br, br_if, and br_table to act as a return
17213 https://bugs.webkit.org/show_bug.cgi?id=166393
17215 Reviewed by Saam Barati.
17217 Add tests for breaks acting as returns and fix tests that
17218 validate error messages.
17220 * wasm/function-tests/br-as-return.js: Added.
17221 * wasm/function-tests/br-if-as-return.js: Added.
17222 * wasm/function-tests/br-table-as-return.js: Added.
17223 * wasm/function-tests/if-no-else-non-void.js:
17224 * wasm/function-tests/struct.js: Added.
17225 * wasm/js-api/global-error.js:
17227 * wasm/js-api/table.js:
17230 2016-12-21 Saam Barati <sbarati@apple.com>
17232 WebAssembly: Import spec tests
17233 https://bugs.webkit.org/show_bug.cgi?id=166395
17235 Rubber stamped by Keith Miller.
17237 This patch implements the Wasm spec's tests found here:
17238 https://github.com/WebAssembly/spec/tree/master/interpreter/test
17240 These tests are in .wast s-epxression format. To convert
17241 them to JS, I use a script from the wabt library, found here:
17242 https://github.com/WebAssembly/wabt/blob/master/test/run-gen-spec-js.py
17244 I also added a script that automatically imports the tests as
17245 JS files. The inputs to the script is the path to the Wasm spec
17246 git repo and the path to the wabt git repo. This will make importing
17247 new tests easy in the future.
17249 The wasm spec imported is at commit: b055d01ea1dfdd7a5231ae779095435f836de97f
17250 The wabt used to do the import is at commit: 622b42dced6d793e9d49e9b1fd1d1524defd1387
17253 * wasm/import-spec-tests.rb: Added.
17254 * wasm/spec-tests: Added.
17255 * wasm/spec-tests/address.wast.js: Added.
17259 (assert_malformed):
17261 (assert_soft_invalid):
17262 (assert_unlinkable):
17263 (assert_uninstantiable):
17266 (assert_return_nan):
17267 * wasm/spec-tests/binary.wast.js: Added.
17271 (assert_malformed):
17273 (assert_soft_invalid):
17274 (assert_unlinkable):
17275 (assert_uninstantiable):
17278 (assert_return_nan):
17279 * wasm/spec-tests/block.wast.js: Added.
17283 (assert_malformed):
17285 (assert_soft_invalid):
17286 (assert_unlinkable):
17287 (assert_uninstantiable):
17290 (assert_return_nan):
17291 * wasm/spec-tests/br.wast.js: Added.
17295 (assert_malformed):
17297 (assert_soft_invalid):
17298 (assert_unlinkable):
17299 (assert_uninstantiable):
17302 (assert_return_nan):
17303 * wasm/spec-tests/br_if.wast.js: Added.
17307 (assert_malformed):
17309 (assert_soft_invalid):
17310 (assert_unlinkable):
17311 (assert_uninstantiable):
17314 (assert_return_nan):
17315 * wasm/spec-tests/br_table.wast.js: Added.
17319 (assert_malformed):
17321 (assert_soft_invalid):
17322 (assert_unlinkable):
17323 (assert_uninstantiable):
17326 (assert_return_nan):
17327 * wasm/spec-tests/break-drop.wast.js: Added.
17331 (assert_malformed):
17333 (assert_soft_invalid):
17334 (assert_unlinkable):
17335 (assert_uninstantiable):
17338 (assert_return_nan):
17339 * wasm/spec-tests/call.wast.js: Added.
17343 (assert_malformed):
17345 (assert_soft_invalid):
17346 (assert_unlinkable):
17347 (assert_uninstantiable):
17350 (assert_return_nan):
17351 * wasm/spec-tests/call_indirect.wast.js: Added.
17355 (assert_malformed):
17357 (assert_soft_invalid):
17358 (assert_unlinkable):
17359 (assert_uninstantiable):
17362 (assert_return_nan):
17363 * wasm/spec-tests/comments.wast.js: Added.
17367 (assert_malformed):
17369 (assert_soft_invalid):
17370 (assert_unlinkable):
17371 (assert_uninstantiable):
17374 (assert_return_nan):
17375 * wasm/spec-tests/conversions.wast.js: Added.
17379 (assert_malformed):
17381 (assert_soft_invalid):
17382 (assert_unlinkable):
17383 (assert_uninstantiable):
17386 (assert_return_nan):
17387 * wasm/spec-tests/custom_section.wast.js: Added.
17391 (assert_malformed):
17393 (assert_soft_invalid):
17394 (assert_unlinkable):
17395 (assert_uninstantiable):
17398 (assert_return_nan):
17399 * wasm/spec-tests/endianness.wast.js: Added.
17403 (assert_malformed):
17405 (assert_soft_invalid):
17406 (assert_unlinkable):
17407 (assert_uninstantiable):
17410 (assert_return_nan):
17411 * wasm/spec-tests/exports.wast.js: Added.
17415 (assert_malformed):
17417 (assert_soft_invalid):
17418 (assert_unlinkable):
17419 (assert_uninstantiable):
17422 (assert_return_nan):
17423 * wasm/spec-tests/f32.wast.js: Added.
17427 (assert_malformed):
17429 (assert_soft_invalid):
17430 (assert_unlinkable):
17431 (assert_uninstantiable):
17434 (assert_return_nan):
17435 * wasm/spec-tests/f32_cmp.wast.js: Added.
17439 (assert_malformed):
17441 (assert_soft_invalid):
17442 (assert_unlinkable):
17443 (assert_uninstantiable):
17446 (assert_return_nan):
17447 * wasm/spec-tests/f64.wast.js: Added.
17451 (assert_malformed):
17453 (assert_soft_invalid):
17454 (assert_unlinkable):
17455 (assert_uninstantiable):
17458 (assert_return_nan):
17459 * wasm/spec-tests/f64_cmp.wast.js: Added.
17463 (assert_malformed):
17465 (assert_soft_invalid):
17466 (assert_unlinkable):
17467 (assert_uninstantiable):
17470 (assert_return_nan):
17471 * wasm/spec-tests/fac.wast.js: Added.
17475 (assert_malformed):
17477 (assert_soft_invalid):
17478 (assert_unlinkable):
17479 (assert_uninstantiable):
17482 (assert_return_nan):
17483 * wasm/spec-tests/float_exprs.wast.js: Added.
17487 (assert_malformed):
17489 (assert_soft_invalid):
17490 (assert_unlinkable):
17491 (assert_uninstantiable):
17494 (assert_return_nan):
17495 * wasm/spec-tests/float_literals.wast.js: Added.
17499 (assert_malformed):
17501 (assert_soft_invalid):
17502 (assert_unlinkable):
17503 (assert_uninstantiable):
17506 (assert_return_nan):
17507 * wasm/spec-tests/float_memory.wast.js: Added.
17511 (assert_malformed):
17513 (assert_soft_invalid):
17514 (assert_unlinkable):
17515 (assert_uninstantiable):
17518 (assert_return_nan):
17519 * wasm/spec-tests/float_misc.wast.js: Added.
17523 (assert_malformed):
17525 (assert_soft_invalid):
17526 (assert_unlinkable):
17527 (assert_uninstantiable):
17530 (assert_return_nan):
17531 * wasm/spec-tests/forward.wast.js: Added.
17535 (assert_malformed):
17537 (assert_soft_invalid):
17538 (assert_unlinkable):
17539 (assert_uninstantiable):
17542 (assert_return_nan):
17543 * wasm/spec-tests/func.wast.js: Added.
17547 (assert_malformed):
17549 (assert_soft_invalid):
17550 (assert_unlinkable):
17551 (assert_uninstantiable):
17554 (assert_return_nan):
17555 * wasm/spec-tests/func_ptrs.wast.js: Added.
17559 (assert_malformed):
17561 (assert_soft_invalid):
17562 (assert_unlinkable):
17563 (assert_uninstantiable):
17566 (assert_return_nan):
17567 * wasm/spec-tests/get_local.wast.js: Added.
17571 (assert_malformed):
17573 (assert_soft_invalid):
17574 (assert_unlinkable):
17575 (assert_uninstantiable):
17578 (assert_return_nan):
17579 * wasm/spec-tests/globals.wast.js: Added.
17583 (assert_malformed):
17585 (assert_soft_invalid):
17586 (assert_unlinkable):
17587 (assert_uninstantiable):
17590 (assert_return_nan):
17591 * wasm/spec-tests/i32.wast.js: Added.
17595 (assert_malformed):
17597 (assert_soft_invalid):
17598 (assert_unlinkable):
17599 (assert_uninstantiable):
17602 (assert_return_nan):
17603 * wasm/spec-tests/i64.wast.js: Added.
17607 (assert_malformed):
17609 (assert_soft_invalid):
17610 (assert_unlinkable):
17611 (assert_uninstantiable):
17614 (assert_return_nan):
17615 * wasm/spec-tests/imports.wast.js: Added.
17619 (assert_malformed):
17621 (assert_soft_invalid):
17622 (assert_unlinkable):
17623 (assert_uninstantiable):
17626 (assert_return_nan):
17627 * wasm/spec-tests/int_exprs.wast.js: Added.
17631 (assert_malformed):
17633 (assert_soft_invalid):
17634 (assert_unlinkable):
17635 (assert_uninstantiable):
17638 (assert_return_nan):
17639 * wasm/spec-tests/int_literals.wast.js: Added.
17643 (assert_malformed):
17645 (assert_soft_invalid):
17646 (assert_unlinkable):
17647 (assert_uninstantiable):
17650 (assert_return_nan):
17651 * wasm/spec-tests/left-to-right.wast.js: Added.
17655 (assert_malformed):
17657 (assert_soft_invalid):
17658 (assert_unlinkable):
17659 (assert_uninstantiable):
17662 (assert_return_nan):
17663 * wasm/spec-tests/linking.wast.js: Added.
17667 (assert_malformed):
17669 (assert_soft_invalid):
17670 (assert_unlinkable):
17671 (assert_uninstantiable):
17674 (assert_return_nan):
17675 * wasm/spec-tests/loop.wast.js: Added.
17679 (assert_malformed):
17681 (assert_soft_invalid):
17682 (assert_unlinkable):
17683 (assert_uninstantiable):
17686 (assert_return_nan):
17687 * wasm/spec-tests/memory.wast.js: Added.
17691 (assert_malformed):
17693 (assert_soft_invalid):
17694 (assert_unlinkable):
17695 (assert_uninstantiable):
17698 (assert_return_nan):
17699 * wasm/spec-tests/memory_redundancy.wast.js: Added.
17703 (assert_malformed):
17705 (assert_soft_invalid):
17706 (assert_unlinkable):
17707 (assert_uninstantiable):
17710 (assert_return_nan):
17711 * wasm/spec-tests/memory_trap.wast.js: Added.
17715 (assert_malformed):
17717 (assert_soft_invalid):
17718 (assert_unlinkable):
17719 (assert_uninstantiable):
17722 (assert_return_nan):
17723 * wasm/spec-tests/names.wast.js: Added.
17727 (assert_malformed):
17729 (assert_soft_invalid):
17730 (assert_unlinkable):
17731 (assert_uninstantiable):
17734 (assert_return_nan):
17735 * wasm/spec-tests/nop.wast.js: Added.
17739 (assert_malformed):
17741 (assert_soft_invalid):
17742 (assert_unlinkable):
17743 (assert_uninstantiable):
17746 (assert_return_nan):
17747 * wasm/spec-tests/resizing.wast.js: Added.
17751 (assert_malformed):
17753 (assert_soft_invalid):
17754 (assert_unlinkable):
17755 (assert_uninstantiable):
17758 (assert_return_nan):
17759 * wasm/spec-tests/return.wast.js: Added.
17763 (assert_malformed):
17765 (assert_soft_invalid):
17766 (assert_unlinkable):
17767 (assert_uninstantiable):
17770 (assert_return_nan):
17771 * wasm/spec-tests/select.wast.js: Added.
17775 (assert_malformed):
17777 (assert_soft_invalid):
17778 (assert_unlinkable):
17779 (assert_uninstantiable):
17782 (assert_return_nan):
17783 * wasm/spec-tests/set_local.wast.js: Added.
17787 (assert_malformed):
17789 (assert_soft_invalid):
17790 (assert_unlinkable):
17791 (assert_uninstantiable):
17794 (assert_return_nan):
17795 * wasm/spec-tests/skip-stack-guard-page.wast.js: Added.
17799 (assert_malformed):
17801 (assert_soft_invalid):
17802 (assert_unlinkable):
17803 (assert_uninstantiable):
17806 (assert_return_nan):
17807 * wasm/spec-tests/stack.wast.js: Added.
17811 (assert_malformed):
17813 (assert_soft_invalid):
17814 (assert_unlinkable):
17815 (assert_uninstantiable):
17818 (assert_return_nan):
17819 * wasm/spec-tests/start.wast.js: Added.
17823 (assert_malformed):
17825 (assert_soft_invalid):
17826 (assert_unlinkable):
17827 (assert_uninstantiable):
17830 (assert_return_nan):
17831 * wasm/spec-tests/store_retval.wast.js: Added.
17835 (assert_malformed):
17837 (assert_soft_invalid):
17838 (assert_unlinkable):
17839 (assert_uninstantiable):
17842 (assert_return_nan):
17843 * wasm/spec-tests/switch.wast.js: Added.
17847 (assert_malformed):
17849 (assert_soft_invalid):
17850 (assert_unlinkable):
17851 (assert_uninstantiable):
17854 (assert_return_nan):
17855 * wasm/spec-tests/tee_local.wast.js: Added.
17859 (assert_malformed):
17861 (assert_soft_invalid):
17862 (assert_unlinkable):
17863 (assert_uninstantiable):
17866 (assert_return_nan):
17867 * wasm/spec-tests/traps.wast.js: Added.
17871 (assert_malformed):
17873 (assert_soft_invalid):
17874 (assert_unlinkable):
17875 (assert_uninstantiable):
17878 (assert_return_nan):
17879 * wasm/spec-tests/typecheck.wast.js: Added.
17883 (assert_malformed):
17885 (assert_soft_invalid):
17886 (assert_unlinkable):
17887 (assert_uninstantiable):
17890 (assert_return_nan):
17891 * wasm/spec-tests/unreachable.wast.js: Added.
17895 (assert_malformed):
17897 (assert_soft_invalid):
17898 (assert_unlinkable):
17899 (assert_uninstantiable):
17902 (assert_return_nan):
17903 * wasm/spec-tests/unwind.wast.js: Added.
17907 (assert_malformed):
17909 (assert_soft_invalid):
17910 (assert_unlinkable):
17911 (assert_uninstantiable):
17914 (assert_return_nan):
17916 2016-12-20 Keith Miller <keith_miller@apple.com>
17918 Add support for global
17919 https://bugs.webkit.org/show_bug.cgi?id=165171
17921 Reviewed by Filip Pizlo.
17923 * stress/global.js: Added.
17925 2016-12-20 JF Bastien <jfbastien@apple.com>
17927 WebAssembly API: implement WebAssembly.LinkError
17928 https://bugs.webkit.org/show_bug.cgi?id=165805
17929 <rdar://problem/29747874>
17931 Reviewed by Mark lam.
17933 Update all exception sites which now throw WebAssembly.LinkError.
17935 * wasm/js-api/element-data.js:
17936 * wasm/js-api/element.js:
17938 * wasm/js-api/global-error.js:
17940 * wasm/js-api/table.js:
17942 (new.WebAssembly.Table):
17943 * wasm/js-api/test_Data.js:
17944 * wasm/js-api/test_basic_api.js:
17945 (const.c.in.constructorProperties.switch):
17946 * wasm/js-api/test_memory.js:
17948 (test.testMemImportError): Deleted.
17950 2016-12-20 JF Bastien <jfbastien@apple.com>
17952 WebAssembly: unique function signatures
17953 https://bugs.webkit.org/show_bug.cgi?id=165957
17954 <rdar://problem/29735737>
17956 Reviewed by Saam Barati.
17958 * wasm/function-tests/table-basic.js: FIXME is now addressed,
17959 though instance to instance calls still need work which bug
17960 #165282 will address
17962 * wasm/js-api/unique-signature.js: Added.
17963 (CallIndirectWithDuplicateSignatures):
17965 2016-12-19 Mark Lam <mark.lam@apple.com>
17967 Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 2: Rollout r209952.
17968 https://bugs.webkit.org/show_bug.cgi?id=166049
17972 * stress/deeply-nested-finallys.js: Removed.
17973 * stress/test-finally.js: Removed.
17975 2016-12-19 Saam Barati <sbarati@apple.com>
17977 WebAssembly: Make running Wasm tests take less time by reducing some tests' iteration count and by splitting some tests into different files
17978 https://bugs.webkit.org/show_bug.cgi?id=166017
17980 Reviewed by Yusuke Suzuki.
17982 * wasm/function-tests/trap-load-2.js: Added.
17984 (wasmFrameCountFromError):
17987 * wasm/function-tests/trap-load.js:
17988 (assert.continuation): Deleted.
17989 * wasm/function-tests/trap-store-2.js: Added.
17990 (import.Builder.from.string_appeared_here.assert):
17993 * wasm/function-tests/trap-store.js:
17994 (assert.continuation): Deleted.
17996 * wasm/js-api/test_memory.js:
17999 2016-12-18 Saam Barati <sbarati@apple.com>
18001 WebAssembly: Implement the WebAssembly.compile and WebAssembly.validate
18002 https://bugs.webkit.org/show_bug.cgi?id=165936
18004 Reviewed by Mark Lam.
18006 * wasm/js-api/Module-compile.js: Added.
18007 (async.testPromiseAPI):
18008 * wasm/js-api/test_basic_api.js:
18009 (const.c.in.constructorProperties.switch):
18010 * wasm/js-api/validate.js: Added.
18011 (assert.truthy.WebAssembly.validate.builder.WebAssembly):
18013 2016-12-16 Mark Lam <mark.lam@apple.com>
18015 De-duplicate finally blocks.
18016 https://bugs.webkit.org/show_bug.cgi?id=160168
18018 Reviewed by Keith Miller.
18020 * stress/deeply-nested-finallys.js: Added.
18021 - Tests many levels of finally nesting. This causes the old code to hang (and
18022 crashes eventually) while trying to generate bytecode for the exponentially
18023 duplicated finally blocks. The new code completes this test almost instantly.
18025 * stress/test-finally.js: Added.
18026 - Tests control flow through various permutations of finally blocks.
18028 2016-12-16 Saam Barati <sbarati@apple.com>
18030 WebAssembly: WasmB3IRGenerator should throw exceptions instead of crash
18031 https://bugs.webkit.org/show_bug.cgi?id=165834
18033 Reviewed by Keith Miller.
18035 * wasm/function-tests/exceptions.js: Added.
18036 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
18037 * wasm/function-tests/table-basic.js:
18038 (i.i.42.throw.new.Error):
18040 2016-12-16 Keith Miller <keith_miller@apple.com>
18042 i64.eqz should use an Int64 zero
18043 https://bugs.webkit.org/show_bug.cgi?id=165942
18045 Reviewed by Mark Lam.
18049 2016-12-15 Keith Miller <keith_miller@apple.com>
18051 Fix validation of non-void if blocks with no else
18052 https://bugs.webkit.org/show_bug.cgi?id=165938
18054 Reviewed by Saam Barati.
18056 Add a new failing test and a fix an existing one.
18058 * wasm/function-tests/dead-call.js:
18059 * wasm/function-tests/if-no-else-non-void.js: Added.
18061 2016-12-15 Keith Miller <keith_miller@apple.com>
18063 Wasm should not create empty unlinked callsites
18064 https://bugs.webkit.org/show_bug.cgi?id=165933
18066 Reviewed by Mark Lam.
18068 * wasm/function-tests/dead-call.js: Added.
18070 2016-12-15 JF Bastien <jfbastien@apple.com>
18072 WebAssembly: improve compilation error messages
18073 https://bugs.webkit.org/show_bug.cgi?id=163919
18075 Reviewed by Saam Barati.
18077 Update error messages in these tests.
18078 Use the assert.throws facility in many of them which weren't already.
18080 * wasm/js-api/element.js:
18081 (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
18083 * wasm/js-api/global-error.js:
18084 (assert.throws.new.WebAssembly.Module.bin):
18087 * wasm/js-api/table.js:
18088 (assert.throws.new.WebAssembly.Module.builder.WebAssembly):
18090 (assertBadTableImport):
18091 * wasm/js-api/test_Data.js:
18092 (DataSectionWithoutMemory):
18093 * wasm/js-api/test_Start.js:
18094 (InvalidStartFunctionIndex):
18095 * wasm/js-api/test_basic_api.js:
18096 (const.c.in.constructorProperties.switch):
18098 2016-12-15 JF Bastien <jfbastien@apple.com>
18100 WebAssembly API: improve data section errors
18101 https://bugs.webkit.org/show_bug.cgi?id=165733
18103 Reviewed by Keith Miller.
18105 * wasm/js-api/element-data.js: Added.
18106 (ElementBeforeData.set const):
18107 (ElementBeforeData): check the order of initialization, which is observable on failure
18108 * wasm/js-api/test_Data.js:
18109 (DataSectionWithoutMemory):
18110 (DataSectionOffTheEnd): Deleted.
18111 (DataSectionPartlyOffTheEnd): Deleted.
18112 (DataSectionEmptyOffTheEnd): Deleted.
18113 (DataSectionSeenByStart): Deleted.
18115 2016-12-15 Keith Miller <keith_miller@apple.com>
18117 Fix 64-bit shift family Wasm opcodes
18118 https://bugs.webkit.org/show_bug.cgi?id=165902
18120 Reviewed by Geoffrey Garen.
18122 Add tests for shift family of instructions. Since
18123 we can't generate i64 values to pass to wasm we only compile
18124 the code for those functions. Attempting to generate any i64
18125 code using these instructions would have been enough to cause
18126 the B3 Validation error anyway.
18129 * wasm/function-tests/rotl.js: Added.
18130 * wasm/function-tests/rotr.js: Added.
18131 * wasm/function-tests/shl.js: Added.
18132 * wasm/function-tests/shr-s.js: Added.
18133 * wasm/function-tests/shr-u.js: Added.
18136 2016-12-14 Keith Miller <keith_miller@apple.com>
18138 WebAssembly: test_BuilderJSON.js is broken
18139 https://bugs.webkit.org/show_bug.cgi?id=165893
18141 Reviewed by Michael Saboff.
18144 (const._isValidValue):
18145 * wasm/self-test/test_BuilderJSON.js:
18147 2016-12-14 Keith Miller <keith_miller@apple.com>
18149 Unreviewed, fix test.
18151 * wasm/function-tests/i32-const.js:
18153 2016-12-14 Keith Miller <keith_miller@apple.com>
18155 Wasm should decode constants correctly
18156 https://bugs.webkit.org/show_bug.cgi?id=165886
18158 Reviewed by Saam Barati.
18161 (const._isValidValue):
18162 * wasm/Builder_WebAssemblyBinary.js:
18164 * wasm/LowLevelBinary.js:
18165 (export.default.LowLevelBinary.prototype.float):
18166 (export.default.LowLevelBinary.prototype.double):
18167 * wasm/function-tests/f32-const.js: Added.
18168 * wasm/function-tests/f64-const.js: Added.
18169 * wasm/function-tests/i32-const.js: Added.
18172 2016-12-14 Saam Barati <sbarati@apple.com>
18174 WebAssembly: Add various low hanging fruit that will allow us to run the LLVM torture tests in Wasm
18175 https://bugs.webkit.org/show_bug.cgi?id=165883
18177 Reviewed by Keith Miller.
18180 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
18181 * wasm/Builder_WebAssemblyBinary.js:
18182 (const.emitters.Export):
18183 * wasm/js-api/table.js:
18187 * wasm/js-api/test_memory.js:
18188 (binaryShouldNotParse):
18190 (test.testMemImportError):
18194 2016-12-14 Filip Pizlo <fpizlo@apple.com>
18196 DirectTailCall implementation needs to tell the shuffler what to put into the ArgumentCount explicitly
18197 https://bugs.webkit.org/show_bug.cgi?id=165882
18199 Reviewed by Mark Lam.
18201 * stress/direct-tail-call-arity-mismatch-count-args.js: Added.
18205 2016-12-14 Keith Miller <keith_miller@apple.com>
18207 WebAssembly JS API: implement Global
18208 https://bugs.webkit.org/show_bug.cgi?id=164133
18210 Reviewed by Saam Barati.
18213 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
18214 * wasm/Builder_WebAssemblyBinary.js:
18215 (const.valueType.WASM.description.type.i32.type.const.putGlobalType):
18217 (const.putInitExpr):
18218 (const.emitters.Import):
18219 (const.emitters.Global):
18220 (const.emitters.Export):
18221 (const.emitters.Code):
18222 * wasm/LowLevelBinary.js:
18223 (export.default.LowLevelBinary.prototype.varuint32):
18224 (export.default.LowLevelBinary.prototype.varint32):
18225 * wasm/js-api/global-error.js: Added.
18228 * wasm/js-api/global-external-init-from-import.js: Added.
18229 * wasm/js-api/global-internal-init-from-import.js: Added.
18230 * wasm/js-api/global-mutate.js: Added.
18231 (createInternalGlobalModule):
18232 * wasm/js-api/globals-export.js: Added.
18233 * wasm/js-api/globals-import.js: Added.
18236 2016-12-13 Saam Barati <sbarati@apple.com>
18238 WebAssembly: implement the elements section
18239 https://bugs.webkit.org/show_bug.cgi?id=165715
18241 Reviewed by Keith Miller.
18244 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
18245 (export.default.Builder.prototype._registerSectionBuilders.switch):
18246 * wasm/Builder_WebAssemblyBinary.js:
18247 (const.emitters.Element):
18248 * wasm/function-tests/basic-element.js: Added.
18249 * wasm/js-api/element.js: Added.
18251 (assertBadBinary.badInstantiation):
18253 2016-12-13 Saam Barati <sbarati@apple.com>
18255 WebAssembly: implement the table section and table import
18256 https://bugs.webkit.org/show_bug.cgi?id=165716
18258 Reviewed by Keith Miller.
18261 (const._importMemoryContinuation):
18262 (const._importTableContinuation):
18263 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
18264 (const._importMemoryContinuation.section): Deleted.
18266 (const._importMemoryContinuation.assert): Deleted.
18267 * wasm/Builder_WebAssemblyBinary.js:
18268 (const.putResizableLimits):
18270 (const.emitters.Import):
18271 (const.emitters.Table):
18272 * wasm/function-tests/call-indirect-params.js:
18273 * wasm/function-tests/call-indirect.js:
18274 * wasm/function-tests/table-basic-2.js: Added.
18275 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
18277 * wasm/function-tests/table-basic.js: Added.
18278 (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
18279 * wasm/js-api/call-indirect-results.js:
18280 (const.wasmModuleWhichImportJS): Deleted.
18281 (MonomorphicImport): Deleted.
18282 * wasm/js-api/call-indirect.js:
18283 (const.wasmModuleWhichImportJS):
18287 (MonomorphicImport): Deleted.
18288 * wasm/js-api/table.js: Added.
18292 (assertBadTableImport):
18293 (assertBadBinary.assertBadTableInstance):
18294 (assertBadTableInstance):
18295 (new.WebAssembly.Table):
18296 * wasm/js-api/test_basic_api.js:
18297 (const.c.in.constructorProperties.switch):
18299 2016-12-13 Commit Queue <commit-queue@webkit.org>
18301 Unreviewed, rolling out r209725.
18302 https://bugs.webkit.org/show_bug.cgi?id=165811
18304 "Broke ARMv7 builds" (Requested by msaboff on #webkit).
18306 Reverted changeset:
18308 "REGRESSION(r209653): speedometer crashes making virtual slow
18310 https://bugs.webkit.org/show_bug.cgi?id=165748
18311 http://trac.webkit.org/changeset/209725
18313 2016-12-12 Michael Saboff <msaboff@apple.com>
18315 REGRESSION(r209653): speedometer crashes making virtual slow path tailcalls
18316 https://bugs.webkit.org/show_bug.cgi?id=165748
18318 Reviewed by Filip Pizlo.
18320 New regression test.
18322 * stress/regress-165748.js: Added.
18332 2016-12-12 Mark Lam <mark.lam@apple.com>
18334 Debug JSC test timeout: stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js.ftl-no-cjit.
18335 https://bugs.webkit.org/show_bug.cgi?id=164630
18337 Reviewed by Keith Miller.
18339 Speculative fix for timeout issue. It looks like this test just runs a bit
18340 slower on debug builds. So, we'll give it a little more time to run.
18342 * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
18344 2016-12-11 Saam Barati <sbarati@apple.com>
18346 We should be able to throw exceptions from Wasm code and when Wasm frames are on the stack
18347 https://bugs.webkit.org/show_bug.cgi?id=165429
18349 Reviewed by Keith Miller.
18351 * wasm/function-tests/trap-load.js: Added.
18353 (wasmFrameCountFromError):
18355 (assert.continuation):
18356 * wasm/function-tests/trap-store.js: Added.
18357 (import.Builder.from.string_appeared_here.assert):
18359 (assert.continuation):
18361 * wasm/js-api/test_memory_constructor.js:
18364 2016-12-10 Commit Queue <commit-queue@webkit.org>
18366 Unreviewed, rolling out r209653, r209654, r209663, and
18368 https://bugs.webkit.org/show_bug.cgi?id=165739
18370 speedometer crashes (Requested by pizlo on #webkit).
18372 Reverted changesets:
18374 "JSVALUE64: Pass arguments in platform argument registers when
18375 making JavaScript calls"
18376 https://bugs.webkit.org/show_bug.cgi?id=160355
18377 http://trac.webkit.org/changeset/209653
18379 "Unreviewed build fix for 32 bit builds."
18380 http://trac.webkit.org/changeset/209654
18382 "Unreviewed build fix for the CLOOP after r209653"
18383 http://trac.webkit.org/changeset/209663
18385 "REGRESSION(r209653) Crash in CallFrameShuffler::snapshot()"
18386 https://bugs.webkit.org/show_bug.cgi?id=165728
18387 http://trac.webkit.org/changeset/209673
18389 2016-12-10 Michael Saboff <msaboff@apple.com>
18391 REGRESSION(r209653) Crash in CallFrameShuffler::snapshot()
18392 https://bugs.webkit.org/show_bug.cgi?id=165728
18394 Reviewed by Filip Pizlo.
18396 New regression test.
18398 * stress/regress-165728.js: Added.
18404 2016-12-10 Keith Miller <keith_miller@apple.com>
18406 Fix indirect_call if the result type is used.
18407 https://bugs.webkit.org/show_bug.cgi?id=165727
18409 Reviewed by Michael Saboff.
18411 * wasm/js-api/call-indirect-results.js: Added.
18412 (const.wasmModuleWhichImportJS):
18413 (MonomorphicImport):
18415 2016-12-10 Yusuke Suzuki <utatane.tea@gmail.com>
18417 [JSC] Module namespace object behaves like immutable prototype exotic object
18418 https://bugs.webkit.org/show_bug.cgi?id=165598
18420 Reviewed by Mark Lam.
18422 * modules/namespace-prototype-assignment.js: Added.
18429 (doInternalSetPrototypeOf):
18430 (ordinarySetPrototypeOf):
18431 (setImmutablePrototype):
18432 (windowProxySetPrototypeOf):
18433 (initSetterExpectation):
18434 (throwIfNoExceptionPending):
18435 (objectSetPrototypeOf):
18436 (setUnderscoreProto):
18437 (reflectSetPrototypeOf):
18439 (newObjectProto.toString):
18443 * modules/namespace-set-prototype-of.js: Added.
18445 (TypeError.Cannot.set prototype):
18447 2016-12-09 Michael Saboff <msaboff@apple.com>
18449 JSVALUE64: Pass arguments in platform argument registers when making JavaScript calls
18450 https://bugs.webkit.org/show_bug.cgi?id=160355
18452 Reviewed by Filip Pizlo.
18454 New microbenchmarks to measure call type performance.
18456 * microbenchmarks/calling-computed-args.js: Added.
18457 * microbenchmarks/calling-many-callees.js: Added.
18458 * microbenchmarks/calling-one-callee-fixed.js: Added.
18459 * microbenchmarks/calling-one-callee.js: Added.
18460 * microbenchmarks/calling-poly-callees.js: Added.
18461 * microbenchmarks/calling-poly-extra-arity-callees.js: Added.
18462 * microbenchmarks/calling-tailcall.js: Added.
18463 * microbenchmarks/calling-virtual-arity-fixup-callees.js: Added.
18464 * microbenchmarks/calling-virtual-arity-fixup-stackargs.js: Added.
18465 * microbenchmarks/calling-virtual-callees.js: Added.
18466 * microbenchmarks/calling-virtual-extra-arity-callees.js: Added.
18468 2016-12-09 Keith Miller <keith_miller@apple.com>
18470 Wasm should support call_indirect
18471 https://bugs.webkit.org/show_bug.cgi?id=165718
18473 Reviewed by Filip Pizlo.
18476 * wasm/function-tests/call-indirect-params.js: Added.
18477 * wasm/function-tests/call-indirect.js: Added.
18478 * wasm/js-api/call-indirect.js: Added.
18479 (const.wasmModuleWhichImportJS):
18480 (MonomorphicImport):
18485 2016-12-09 JF Bastien <jfbastien@apple.com>
18487 WebAssembly: implement data section
18488 https://bugs.webkit.org/show_bug.cgi?id=165696
18490 Reviewed by Keith Miller.
18492 As specified in https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#data-section
18493 Note that some of the interesting corner cases are ill-defined by the spec: https://github.com/WebAssembly/design/issues/897
18495 * wasm/Builder.js: create a data section from JavaScript
18496 * wasm/Builder_WebAssemblyBinary.js: assemble the data section into the proper binary encoding
18497 (const.emitters.Data):
18498 * wasm/js-api/test_Data.js: Added.
18500 (DataSectionOffTheEnd):
18501 (DataSectionPartlyOffTheEnd):
18502 (DataSectionEmptyOffTheEnd):
18503 (DataSectionSeenByStart):
18504 * wasm/self-test/test_BuilderJSON.js: make sure the JSON structure is fine (this sanity checks before going to binary)
18506 2016-12-09 JF Bastien <jfbastien@apple.com>
18508 WebAssembly JS API: implement start function
18509 https://bugs.webkit.org/show_bug.cgi?id=165150
18511 Reviewed by Saam Barati.
18513 * wasm/Builder.js: allow building a .Start()
18514 * wasm/Builder_WebAssemblyBinary.js:
18515 * wasm/js-api/test_Start.js: Added.
18516 (const.emitters.Start): serialize a start section
18517 * wasm/self-test/test_BuilderJSON.js: validate the start section's content
18519 2016-12-09 Saam Barati <sbarati@apple.com>
18521 WebAssembly JS API: implement importing and defining Memory
18522 https://bugs.webkit.org/show_bug.cgi?id=164134
18524 Reviewed by Keith Miller.
18527 (const._importMemoryContinuation.section):
18528 (const._importMemoryContinuation.assert):
18529 (const._importMemoryContinuation):
18530 (const._exportFunctionContinuation.const): Deleted.
18531 (const._exportFunctionContinuation): Deleted.
18532 * wasm/Builder_WebAssemblyBinary.js:
18533 (const.emitters.Import):
18534 * wasm/js-api/test_basic_api.js:
18535 (const.c.in.constructorProperties.switch):
18536 * wasm/js-api/test_memory.js: Added.
18538 (binaryShouldNotParse):
18540 (test.testMemImportError):
18541 * wasm/js-api/test_memory_constructor.js: Added.
18545 (assert.testInvalidInitial):
18546 (testInvalidInitial.testInvalidMaximum):
18547 (testInvalidInitial):
18548 (testInvalidMaximum):
18549 * wasm/self-test/test_BuilderJSON.js:
18551 2016-12-08 JF Bastien <jfbastien@apple.com>
18553 WebAssembly: JSC::link* shouldn't need a CodeBlock
18554 https://bugs.webkit.org/show_bug.cgi?id=165591
18556 Reviewed by Keith Miller.
18558 test that wasm -> JS works, including the IC
18560 * wasm/js-api/test_Instance.js:
18561 (const.wasmModuleWhichImportJS):
18562 (MonomorphicImport):
18567 2016-12-08 Filip Pizlo <fpizlo@apple.com>
18569 Green the cloop bot by raising this threshold.
18571 * mozilla/js1_5/Array/regress-101964.js:
18573 2016-12-08 JF Bastien <jfbastien@apple.com>
18575 WebAssembly JS API: wire up Instance imports
18576 https://bugs.webkit.org/show_bug.cgi?id=165118
18578 Reviewed by Saam Barati.
18580 * wasm/js-api/test_Instance.js: add the test, disabled for now
18582 2016-12-07 Keith Miller <keith_miller@apple.com>
18584 Add more missing trivial wasm ops.
18585 https://bugs.webkit.org/show_bug.cgi?id=165564
18587 Add tests for drop and tee_local.
18589 Reviewed by Geoffrey Garen.
18591 * wasm/function-tests/drop.js: Added.
18592 * wasm/function-tests/nop.js: Added.
18593 * wasm/function-tests/tee-local.js: Added.
18595 2016-12-06 Keith Miller <keith_miller@apple.com>
18597 Add support for truncation operators
18598 https://bugs.webkit.org/show_bug.cgi?id=165519
18600 Reviewed by Geoffrey Garen.
18602 * wasm/function-tests/i32-trunc-s-f32.js: Added.
18603 * wasm/function-tests/i32-trunc-s-f64.js: Added.
18604 * wasm/function-tests/i32-trunc-u-f32.js: Added.
18605 * wasm/function-tests/i32-trunc-u-f64.js: Added.
18606 * wasm/function-tests/i64-trunc-s-f32.js: Added.
18607 * wasm/function-tests/i64-trunc-s-f64.js: Added.
18608 * wasm/function-tests/i64-trunc-u-f32.js: Added.
18609 * wasm/function-tests/i64-trunc-u-f64.js: Added.
18611 2016-12-06 Mark Lam <mark.lam@apple.com>
18613 Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec.
18614 https://bugs.webkit.org/show_bug.cgi?id=165227
18615 <rdar://problem/29442665>
18617 Reviewed by Saam Barati.
18619 * stress/get-from-scope-dynamic-onto-proxy.js:
18620 - Updated error message.
18622 * stress/proxy-dont-infinite-loop.js: Removed.
18623 * stress/proxy-json-path.js: Removed.
18624 * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Removed.
18625 - Removed these tests because the issue they are testing relies on being able to
18626 set Object.prototype.__proto__ to something else (which is now not possible).
18628 2016-12-05 Caitlin Potter <caitp@igalia.com>
18630 [JSC] report unexpected token when "async" is followed by identifier
18631 https://bugs.webkit.org/show_bug.cgi?id=165091
18633 Reviewed by Mark Lam.
18635 * stress/bug-165091.js:
18637 2016-12-05 Keith Miller <keith_miller@apple.com>
18639 Add Wasm i64 to i32 conversion.
18640 https://bugs.webkit.org/show_bug.cgi?id=165378
18642 Reviewed by Filip Pizlo.
18644 It turns out the wrap operation is just B3's Trunc.
18648 2016-12-04 Keith Miller <keith_miller@apple.com>
18650 Add support for Wasm ctz and popcnt
18651 https://bugs.webkit.org/show_bug.cgi?id=165369
18653 Reviewed by Saam Barati.
18655 * wasm/function-tests/ctz.js: Added.
18656 * wasm/function-tests/popcnt.js: Added.
18658 2016-12-03 JF Bastien <jfbastien@apple.com>
18660 WebAssembly: update binary format to 0xD version
18661 https://bugs.webkit.org/show_bug.cgi?id=165345
18663 Reviewed by Keith Miller.
18665 As described in the following PR: https://github.com/WebAssembly/design/pull/836
18666 Originally committed in r209175, reverted in r209242, and fixed in r209284.
18669 (const._normalizeFunctionSignature):
18670 * wasm/Builder_WebAssemblyBinary.js:
18671 (const.emitters.Type):
18672 (const.emitters.Code):
18673 * wasm/LowLevelBinary.js:
18674 (export.default.LowLevelBinary.prototype.block_type):
18675 (export.default.LowLevelBinary.prototype.inline_signature_type): Deleted.
18677 * wasm/js-api/test_basic_api.js:
18678 * wasm/self-test/test_BuilderWebAssembly.js:
18681 * wasm/self-test/test_WASM.js:
18684 2016-12-02 Keith Miller <keith_miller@apple.com>
18687 https://bugs.webkit.org/show_bug.cgi?id=165355
18689 Reviewed by Filip Pizlo.
18691 * wasm/function-tests/copysign.js: Added.
18693 2016-12-03 Commit Queue <commit-queue@webkit.org>
18695 Unreviewed, rolling out r209298.
18696 https://bugs.webkit.org/show_bug.cgi?id=165359
18698 broke the build (Requested by smfr on #webkit).
18700 Reverted changeset:
18702 "Add Wasm copysign"
18703 https://bugs.webkit.org/show_bug.cgi?id=165355
18704 http://trac.webkit.org/changeset/209298
18706 2016-12-02 Keith Miller <keith_miller@apple.com>
18709 https://bugs.webkit.org/show_bug.cgi?id=165355
18711 Reviewed by Filip Pizlo.
18713 * wasm/function-tests/copysign.js: Added.
18715 2016-12-02 Keith Miller <keith_miller@apple.com>
18717 Unreviewed, fix git having a breakdown over trying to reland a rollout.
18719 2016-12-02 Keith Miller <keith_miller@apple.com>
18721 Add Wasm floating point nearest and trunc
18722 https://bugs.webkit.org/show_bug.cgi?id=165339
18724 Reviewed by Saam Barati.
18726 * wasm/function-tests/nearest.js: Added.
18727 * wasm/function-tests/trunc.js: Added.
18729 2016-12-02 Caitlin Potter <caitp@igalia.com>
18731 [JSC] add additional bit to JSTokenType bitfield
18732 https://bugs.webkit.org/show_bug.cgi?id=165091
18734 Reviewed by Geoffrey Garen.
18736 * stress/bug-165091.js: Added.
18737 (shouldThrowSyntaxError):
18739 2016-12-02 Commit Queue <commit-queue@webkit.org>
18741 Unreviewed, rolling out r209275 and r209276.
18742 https://bugs.webkit.org/show_bug.cgi?id=165348
18744 "broke the arm build" (Requested by keith_miller on #webkit).
18746 Reverted changesets:
18748 "Add Wasm floating point nearest and trunc"
18749 https://bugs.webkit.org/show_bug.cgi?id=165339
18750 http://trac.webkit.org/changeset/209275
18752 "Unreviewed, forgot to change instruction after renaming."
18753 http://trac.webkit.org/changeset/209276
18755 2016-12-02 Keith Miller <keith_miller@apple.com>
18757 Add Wasm floating point nearest and trunc
18758 https://bugs.webkit.org/show_bug.cgi?id=165339
18760 Reviewed by Filip Pizlo.
18762 * wasm/function-tests/nearest.js: Added.
18763 * wasm/function-tests/trunc.js: Added.
18765 2016-12-02 JF Bastien <jfbastien@apple.com>
18767 WebAssembly: revert patch causing odd breakage
18768 https://bugs.webkit.org/show_bug.cgi?id=165308
18772 Bug #164724 seems to cause build issues which I haven't tracked down yet. WasmOps.h can't be found:
18773 ./Source/JavaScriptCore/wasm/WasmFormat.h:34:10: fatal error: 'WasmOps.h' file not found
18775 It's weird since the file is auto-generated and has been for a while. #164724 merely includes it in WasmFormat.h.
18778 (const._normalizeFunctionSignature):
18779 * wasm/Builder_WebAssemblyBinary.js:
18780 (const.emitters.Type):
18781 (const.emitters.Code):
18782 * wasm/LowLevelBinary.js:
18783 (export.default.LowLevelBinary.prototype.inline_signature_type):
18784 (export.default.LowLevelBinary.prototype.block_type): Deleted.
18786 * wasm/js-api/test_basic_api.js:
18787 * wasm/self-test/test_BuilderWebAssembly.js:
18790 * wasm/self-test/test_WASM.js:
18793 2016-12-01 Ryan Haddad <ryanhaddad@apple.com>
18795 Skip flaky test ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js
18796 https://bugs.webkit.org/show_bug.cgi?id=162567
18798 Reviewed by Saam Barati.
18802 2016-12-01 Keith Miller <keith_miller@apple.com>
18804 Add wasm int to floating point opcodes
18805 https://bugs.webkit.org/show_bug.cgi?id=165252
18807 Reviewed by Geoffrey Garen.
18809 Add tests for Wasm integral to floating point conversion opcodes.
18811 * wasm/function-tests/int-to-floating-point.js: Added.
18814 2016-12-01 Geoffrey Garen <ggaren@apple.com>
18816 Land a test case for <rdar://problem/27889416>
18817 https://bugs.webkit.org/show_bug.cgi?id=165272
18819 Reviewed by Saam Barati.
18821 * stress/marked-argument-buffer.js: Added.
18826 2016-11-29 Per Arne Vollan <pvollan@apple.com>
18828 [Win] Skip failing JSC tests.
18829 https://bugs.webkit.org/show_bug.cgi?id=165140
18831 Reviewed by Mark Lam.
18834 * microbenchmarks/tan.js:
18836 2016-11-30 JF Bastien <jfbastien@apple.com>
18838 WebAssembly builder: don't throw when checker not implemented
18839 https://bugs.webkit.org/show_bug.cgi?id=165219
18841 Reviewed by Mark Lam.
18843 We should perform whichever checks we've implemented, and assume the rest are OK until bug #163421 is fixed.
18847 * wasm/function-tests/add-12.js:
18848 * wasm/function-tests/br-if-loop-less-than.js:
18849 * wasm/function-tests/brTableAsIf.js:
18850 * wasm/function-tests/brTableManyValues.js:
18851 * wasm/function-tests/brTableWithLoop.js:
18852 * wasm/function-tests/dumb-eq-if-then-else.js:
18853 * wasm/function-tests/dumb-less-than-fallthrough.js:
18854 * wasm/function-tests/dumb-less-than-ite.js:
18855 * wasm/function-tests/eqz.js:
18856 * wasm/function-tests/factorial.js:
18857 * wasm/function-tests/float-sub.js:
18858 * wasm/function-tests/i32-load.js:
18859 * wasm/function-tests/i32-load8-s.js:
18860 * wasm/function-tests/if-then-else-fallthrough.js:
18861 * wasm/function-tests/if-then-fallthrough.js:
18862 * wasm/function-tests/loop-mult.js:
18863 * wasm/function-tests/loop-sum.js:
18864 * wasm/function-tests/max.js:
18865 * wasm/function-tests/min.js:
18866 * wasm/function-tests/ret5.js:
18867 * wasm/function-tests/select.js:
18868 * wasm/self-test/test_BuilderJSON.js:
18870 2016-11-29 JF Bastien <jfbastien@apple.com>
18872 WebAssembly JS API: improve Instance
18873 https://bugs.webkit.org/show_bug.cgi?id=164757
18875 Reviewed by Keith Miller.
18877 An Instance's `exports` property wasn't populated with exports.
18879 A follow-up patch will do imports.
18881 A few things of note:
18883 - LowLevelBinary: support 3-byte integers.
18884 - LowLevelBinary: support proper UTF-8 2003 code points (instead of UTF-16).
18887 * wasm/Builder_WebAssemblyBinary.js: wire up exports, stub other things out some more
18888 (const.emitters.Export):
18889 * wasm/LowLevelBinary.js:
18890 (export.default.LowLevelBinary.prototype.uint24): add, used for UTF-8
18891 (export.default.LowLevelBinary.prototype.string): support UTF-8
18892 (export.default.LowLevelBinary.prototype.getUint24): add, used for UTF-8
18893 (export.default.LowLevelBinary.prototype.getVaruint1): was missing
18894 (export.default.LowLevelBinary.prototype.getString): support UTF-8
18895 (export.default.LowLevelBinary):
18896 * wasm/js-api/test_Instance.js: instance.exports.answer() // <-- this is where the magic of this entire patch is
18897 (ExportedAnswerI32):
18898 * wasm/js-api/test_basic_api.js: punt test to later
18899 (const.c.in.constructorProperties.switch):
18900 * wasm/self-test/test_BuilderWebAssembly.js: UTF-8
18902 * wasm/self-test/test_LowLevelBinary_string.js: UTF-8 now works
18903 * wasm/self-test/test_LowLevelBinary_uint16.js: was missing one value
18904 * wasm/self-test/test_LowLevelBinary_uint24.js: Copied from JSTests/wasm/self-test/test_LowLevelBinary_uint8.js.
18905 * wasm/self-test/test_LowLevelBinary_uint8.js: was missing one value
18906 * wasm/self-test/test_LowLevelBinary_varuint1.js: Added.
18907 * wasm/utilities.js: this `dump` thing was useful
18910 2016-11-29 Saam Barati <sbarati@apple.com>
18912 We should be able optimize the pattern where we spread a function's rest parameter to another call
18913 https://bugs.webkit.org/show_bug.cgi?id=163865
18915 Reviewed by Filip Pizlo.
18917 * microbenchmarks/default-derived-constructor.js: Added.
18918 (createClassHierarchy.let.currentClass):
18919 (createClassHierarchy):
18920 * stress/call-varargs-spread.js: Added.
18924 * stress/load-varargs-on-new-array-with-spread-convert-to-static-loads.js: Added.
18929 * stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js: Added.
18934 * stress/phantom-new-array-with-spread-osr-exit.js: Added.
18940 * stress/phantom-spread-forward-varargs.js: Added.
18956 * stress/phantom-spread-osr-exit.js: Added.
18962 * stress/spread-call-convert-to-static-call.js: Added.
18967 * stress/spread-forward-call-varargs-stack-overflow.js: Added.
18972 * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol-2.js: Added.
18974 (baz.Array.prototype.Symbol.iterator):
18979 * stress/spread-forward-varargs-rest-parameter-change-iterator-protocol.js: Added.
18981 (baz.Array.prototype.Symbol.iterator):
18985 * stress/spread-forward-varargs-stack-overflow.js: Added.
18990 2016-11-29 Caitlin Potter <caitp@igalia.com>
18992 [JSC] always wrap AwaitExpression operand in a new Promise
18993 https://bugs.webkit.org/show_bug.cgi?id=165181
18995 Reviewed by Yusuke Suzuki.
18997 * stress/async-await-basic.js:
18998 (async.awaitedPromisesAreWrapped):
19000 2016-11-29 Keith Miller <keith_miller@apple.com>
19002 Add simple way to implement Wasm ops that require more than one B3 opcode
19003 https://bugs.webkit.org/show_bug.cgi?id=165129
19005 Reviewed by Geoffrey Garen.
19007 * wasm/function-tests/eqz.js: Added.
19008 * wasm/function-tests/max.js: Added.
19009 * wasm/function-tests/min.js: Added.
19012 2016-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
19014 Crash in com.apple.JavaScriptCore: WTF::ThreadSpecific<WTF::WTFThreadData, + 142
19015 https://bugs.webkit.org/show_bug.cgi?id=164898
19017 Reviewed by Darin Adler.
19019 * stress/tagged-template-registry-key-collect.js: Added.
19023 * stress/tagged-template-registry-key.js: Added.
19029 2016-11-20 Caitlin Potter <caitp@igalia.com>
19031 [JSC] speed up parsing of async functions
19032 https://bugs.webkit.org/show_bug.cgi?id=164808
19034 Reviewed by Yusuke Suzuki.
19036 Add tests for line terminator following "async" keyword in async
19039 * stress/async-await-syntax.js:
19042 2016-11-19 Mark Lam <mark.lam@apple.com>
19044 op_mod-* JSC tests needs a longer timeout too.
19045 https://bugs.webkit.org/show_bug.cgi?id=164994
19047 Reviewed by Yusuke Suzuki.
19049 * stress/op_mod-ConstVar.js:
19050 * stress/op_mod-VarConst.js:
19051 * stress/op_mod-VarVar.js:
19053 2016-11-19 Mark Lam <mark.lam@apple.com>
19055 Add --timeoutMultiplier option to allow some tests more time to run.
19056 https://bugs.webkit.org/show_bug.cgi?id=164951
19058 Reviewed by Yusuke Suzuki.
19060 Extended the timeout for these tests by 50% more because they run quite slow on
19063 * stress/op_div-ConstVar.js:
19064 * stress/op_div-VarConst.js:
19065 * stress/op_div-VarVar.js:
19067 2016-11-18 Yusuke Suzuki <utatane.tea@gmail.com>
19069 REGRESSION(r208867): JSC test failure: ChakraCore.yaml/ChakraCore/test/strict/05.arguments_sm.js.default
19070 https://bugs.webkit.org/show_bug.cgi?id=164929
19072 Reviewed by Mark Lam.
19074 ES2017 drops arguments.caller and JavaScriptCore is updated to meet the spec.
19075 This patch rebaselines the result of ChakraCore test for JSC.
19077 * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
19079 2016-11-18 Joseph Pecoraro <pecoraro@apple.com>
19081 Web Inspector: Generator functions should have a displayable name when shown in stack traces
19082 https://bugs.webkit.org/show_bug.cgi?id=164844
19083 <rdar://problem/29300697>
19085 Reviewed by Yusuke Suzuki.
19087 * stress/generator-function-name.js:
19088 Add another test now that we name the inner generator function
19089 that we do not break the lexical resolution of names.
19091 2016-11-17 Yusuke Suzuki <utatane.tea@gmail.com>
19093 [JSC] Drop arguments.caller
19094 https://bugs.webkit.org/show_bug.cgi?id=164859
19096 Reviewed by Saam Barati.
19098 * stress/strict-mode-arguments-caller.js: Added.
19102 2016-11-17 Keith Miller <keith_miller@apple.com>
19105 https://bugs.webkit.org/show_bug.cgi?id=164871
19107 Reviewed by Filip Pizlo.
19111 2016-11-17 Keith Miller <keith_miller@apple.com>
19114 https://bugs.webkit.org/show_bug.cgi?id=164877
19116 Reviewed by Mark Lam.
19118 B3 already has a Sqrt opcode we just need to map Wasm to it.
19122 2016-11-17 Saam Barati <sbarati@apple.com>
19124 Remove async/await compile time flag and enable tests
19125 https://bugs.webkit.org/show_bug.cgi?id=164828
19126 <rdar://problem/28639334>
19128 Reviewed by Yusuke Suzuki.
19130 * stress/async-arrow-functions-lexical-arguments-binding.js:
19131 * stress/async-arrow-functions-lexical-new.target-binding.js:
19132 * stress/async-arrow-functions-lexical-super-binding.js:
19133 * stress/async-arrow-functions-lexical-this-binding.js:
19134 * stress/async-await-basic.js:
19135 * stress/async-await-long-loop.js:
19136 * stress/async-await-module-reserved-word.js:
19137 * stress/async-await-mozilla.js:
19139 * stress/async-await-reserved-word.js:
19140 * stress/async-await-syntax.js:
19141 * stress/async-await-throw-loop.js:
19142 * stress/async-function-create-nobaseline.js:
19143 * stress/async-function-create-optimized.js:
19144 * stress/async-function-declaration-sinking-no-double-allocate.js:
19145 * stress/async-function-declaration-sinking-osrexit.js:
19146 * stress/async-function-declaration-sinking-put.js:
19147 * stress/async-function-expression-sinking-no-double-allocate.js:
19148 * stress/async-function-expression-sinking-osrexit.js:
19149 * stress/async-function-expression-sinking-put.js:
19152 2016-11-15 Mark Lam <mark.lam@apple.com>
19154 Make JSC test functions more robust.
19155 https://bugs.webkit.org/show_bug.cgi?id=164807
19157 Reviewed by Keith Miller.
19159 * stress/jsc-test-functions-should-be-more-robust.js: Added.
19161 2016-11-15 Keith Miller <keith_miller@apple.com>
19163 B3 should support UDiv/UMod
19164 https://bugs.webkit.org/show_bug.cgi?id=164811
19166 Reviewed by Filip Pizlo.
19168 Link new instructions to wasm.
19172 2016-11-15 Saam Barati <sbarati@apple.com>
19174 Debug JSC test timeout: stress/has-own-property-name-cache-symbols-and-strings.js.ftl-no-cjit-small-pool
19175 https://bugs.webkit.org/show_bug.cgi?id=163012
19177 Unreviewed. This patch makes a test run for less time because it's timing out on the bots.
19179 * stress/has-own-property-name-cache-symbols-and-strings.js:
19181 2016-11-15 Mark Lam <mark.lam@apple.com>
19183 The jsc shell's setImpureGetterDelegate() should ensure that the set value is an ImpureGetter.
19184 https://bugs.webkit.org/show_bug.cgi?id=164781
19185 <rdar://problem/28418590>
19187 Reviewed by Geoffrey Garen and Michael Saboff.
19189 * stress/jsc-setImpureGetterDelegate-on-bad-type.js: Added.
19191 2016-11-15 Yusuke Suzuki <utatane.tea@gmail.com>
19193 [DOMJIT] Allow using macro assembler scratches in FTL CheckDOM
19194 https://bugs.webkit.org/show_bug.cgi?id=164727
19196 Reviewed by Filip Pizlo.
19198 * stress/check-dom-with-signature.js: Added.
19203 2016-11-14 Caitlin Potter <caitp@igalia.com>
19205 [JSC] do not reference AwaitExpression Promises in async function Promise chain
19206 https://bugs.webkit.org/show_bug.cgi?id=164753
19208 Reviewed by Yusuke Suzuki.
19210 * asyncFunctionTests.yaml:
19211 * stress/async-await-long-loop.js: Added.
19214 * stress/async-await-throw-loop.js: Added.
19219 2016-11-14 Keith Miller <keith_miller@apple.com>
19222 https://bugs.webkit.org/show_bug.cgi?id=164743
19224 Reviewed by Saam Barati.
19226 * wasm/function-tests/select.js: Added.
19228 2016-11-14 Caitlin Potter <caitp@igalia.com>
19230 [JSC] Handle new_async_func / new_async_func_exp in DFG / FTL
19231 https://bugs.webkit.org/show_bug.cgi?id=164037
19233 Reviewed by Yusuke Suzuki.
19235 Add tests based on tests from https://trac.webkit.org/changeset/194216.
19237 * asyncFunctionTests.yaml:
19238 * stress/async-function-create-nobaseline.js: Added.
19239 * stress/async-function-create-optimized.js: Added.
19240 * stress/async-function-declaration-sinking-no-double-allocate.js: Added.
19241 * stress/async-function-declaration-sinking-osrexit.js: Added.
19242 * stress/async-function-declaration-sinking-put.js: Added.
19243 * stress/async-function-expression-sinking-no-double-allocate.js: Added.
19244 * stress/async-function-expression-sinking-osrexit.js: Added.
19245 * stress/async-function-expression-sinking-put.js: Added.
19247 2016-11-14 Mark Lam <mark.lam@apple.com>
19249 Some of JSStringView::SafeView methods are not idiomatically safe for JSString to StringView conversions.
19250 https://bugs.webkit.org/show_bug.cgi?id=164701
19251 <rdar://problem/27462104>
19253 Reviewed by Darin Adler.
19255 * stress/string-prototype-charCodeAt-on-too-long-rope.js: Added.
19257 2016-11-14 Mark Lam <mark.lam@apple.com>
19259 RegExpObject::exec/match should handle errors gracefully.
19260 https://bugs.webkit.org/show_bug.cgi?id=155145
19261 <rdar://problem/27435934>
19263 Reviewed by Keith Miller.
19265 * stress/regexp-prototype-exec-on-too-long-rope.js: Added.
19266 * stress/regexp-prototype-match-on-too-long-rope.js: Added.
19267 * stress/regexp-prototype-test-on-too-long-rope.js: Added.
19269 2016-11-14 Mark Lam <mark.lam@apple.com>
19271 Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
19272 https://bugs.webkit.org/show_bug.cgi?id=164695
19274 Reviewed by Keith Miller.
19276 Replace use of runMisc* test run configurations with equivalents.
19278 * stress/licm-no-pre-header-nested.js:
19279 * stress/licm-no-pre-header.js:
19280 * stress/licm-pre-header-cannot-exit-nested.js:
19281 * stress/licm-pre-header-cannot-exit.js:
19282 * stress/make-dictionary-repatch.js:
19283 * stress/retry-cache-later.js:
19284 * stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
19285 * stress/slow-path-generator-updating-current-node-dfg.js:
19286 * stress/unshift-array-storage.js:
19288 2016-11-11 Joseph Pecoraro <pecoraro@apple.com>
19290 test262: DataView with explicit undefined byteLength should be the same as it not being present
19291 https://bugs.webkit.org/show_bug.cgi?id=164453
19293 Reviewed by Darin Adler.
19295 * stress/dataview-construct.js: Added.
19300 2016-11-11 Joseph Pecoraro <pecoraro@apple.com>
19302 test262: DataView get methods should allow for missing offset, set methods should allow for missing value
19303 https://bugs.webkit.org/show_bug.cgi?id=164451
19305 Reviewed by Darin Adler.
19309 2016-11-11 Saam Barati <sbarati@apple.com>
19311 We should have a more concise way of determining when we're varargs calling a function using rest parameters
19312 https://bugs.webkit.org/show_bug.cgi?id=164258
19314 Reviewed by Yusuke Suzuki.
19316 * microbenchmarks/call-using-spread.js: Added.
19319 * microbenchmarks/spread-large-array.js: Added.
19322 * microbenchmarks/spread-small-array.js: Added.
19324 * stress/spread-array-iterator-watchpoint-2.js: Added.
19326 (arrayIterator.next):
19327 * stress/spread-array-iterator-watchpoint.js: Added.
19329 (Array.prototype.Symbol.iterator):
19330 * stress/spread-non-array.js: Added.
19333 (let.customIterator.Symbol.iterator):
19336 2016-11-11 Keith Miller <keith_miller@apple.com>
19338 Relocate wasm tests and actually add them to the test runner
19339 https://bugs.webkit.org/show_bug.cgi?id=164668
19341 Reviewed by Yusuke Suzuki.
19343 This moves the Wasm tests from their current location down a level.
19344 Without relocating, the tests cannot properly be run by the wasm test runner.
19347 * wasm/Builder.js: Fix typos, yay lazy synatx checking!
19348 * wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking!
19349 (export.default.LowLevelBinary.prototype.get return):
19350 * wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js.
19351 * wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js.
19352 * wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js.
19353 * wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js.
19354 * wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js.
19355 * wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js.
19356 * wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js.
19357 * wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js.
19358 * wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js.
19359 * wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js.
19360 * wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js.
19361 * wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js.
19362 * wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js.
19363 * wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js.
19364 * wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js.
19365 * wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js.
19366 * wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js.
19367 * wasm/self-test/test_BuilderJSON.js: Rebasline
19369 2016-11-11 Keith Miller <keith_miller@apple.com>
19371 Move Wasm tests to JS
19372 https://bugs.webkit.org/show_bug.cgi?id=164611
19374 Reviewed by Geoffrey Garen.
19376 This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the
19377 ommited tests were earliest tests, which tested trivial things, like adding two
19378 constants. Some tests are ommited for other reasons, however. These are:
19380 1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers. 2)
19381 Tests that would validate the memory of the module once wasm was done with it since that's
19382 not really possible in JS.
19384 In order to make such a translation easier this patch also adds some features to the JS
19387 1) Blocks can now be done lexically by adding a lambda as the last argument of the block
19388 opcode. For example one can do:
19390 .Block("i32", b => b.I32Const(1) )
19392 and the nested lambda will automatically have an end attached.
19394 2) The JS testing api can now handle inline signature types.
19396 3) Relocate some code to make it easier to follow and prevent 44 space indentation.
19398 4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the
19399 wasm.json without being remapped.
19401 5) Add support for Memory and Function sections to the Builder.
19403 6) Add support for local variables.
19405 On the JSC side, we needed to expose a new function to validate the compiled wasm code
19406 behaves the way we expect. At least until the JS Wasm API is finished. The new validation
19407 function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the
19408 number of functions in the blob and tests for each of those functions.
19411 (const._maybeRegisterType):
19413 (switch.typeof): Deleted.
19414 * wasm/Builder_WebAssemblyBinary.js:
19415 (const.emitters.Type):
19416 (const.emitters.Import):
19417 (const.emitters.Function):
19418 (const.emitters.Memory):
19419 (const.emitters.Code):
19420 (export.const.Binary):
19421 * wasm/LowLevelBinary.js:
19422 (export.default.LowLevelBinary.prototype.get return):
19423 (export.default.LowLevelBinary.prototype.varuint32):
19424 (export.default.LowLevelBinary.prototype.varint32):
19425 (export.default.LowLevelBinary.prototype.varuint1):
19426 (export.default.LowLevelBinary.prototype.varint7):
19427 (export.default.LowLevelBinary.prototype.varuint7):
19428 (export.default.LowLevelBinary.prototype.inline_signature_type):
19429 (export.default.LowLevelBinary.prototype.string):
19430 (export.default.LowLevelBinary.prototype.getVaruint32):
19431 (export.default.LowLevelBinary.prototype.getVarint32):
19432 (export.default.LowLevelBinary.prototype.getVaruint7):
19433 (export.default.LowLevelBinary.prototype.getString):
19434 (export.default.LowLevelBinary):
19435 (export.default.LowLevelBinary.prototype.varuint): Deleted.
19436 (export.default.LowLevelBinary.prototype.varint): Deleted.
19437 (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
19438 (export.default.LowLevelBinary.prototype.getVarint): Deleted.
19439 * wasm/js-api/test_old_tests.js: Added.
19442 (brTableManyValues):
19443 (run.brTableManyValues.brTableAsIf):
19444 (ifThenFallthrough):
19445 (ifThenElseFallthrough):
19446 (dumbLessThanFallthrough):
19447 (run.dumbLessThanFallthrough.floatSub):
19448 (run.floatSub.add12):
19449 (run.add12.factorial):
19451 (run.i32load.i32load8s):
19452 (run.i32load8s.dumbEqIfThenElse):
19453 (run.dumbEqIfThenElse.dumbEqIfThenElse):
19454 (run.dumbEqIfThenElse.dumbLessThanIfThenElse):
19455 (run.dumbLessThanIfThenElse.loopSum):
19456 (run.loopSum.loopMult):
19457 (brIfLoopLessThan):
19458 (run.brIfLoopLessThan.run):
19459 * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
19460 * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
19463 (const._maybeRegisterType):
19465 (switch.typeof): Deleted.
19466 * wasm/Builder_WebAssemblyBinary.js:
19467 (const.emitters.Type):
19468 (const.emitters.Import):
19469 (const.emitters.Function):
19470 (const.emitters.Memory):
19471 (const.emitters.Code):
19472 (export.const.Binary):
19473 * wasm/LowLevelBinary.js:
19474 (export.default.LowLevelBinary.prototype.get return):
19475 (export.default.LowLevelBinary.prototype.varuint32):
19476 (export.default.LowLevelBinary.prototype.varint32):
19477 (export.default.LowLevelBinary.prototype.varuint1):
19478 (export.default.LowLevelBinary.prototype.varint7):
19479 (export.default.LowLevelBinary.prototype.varuint7):
19480 (export.default.LowLevelBinary.prototype.inline_signature_type):
19481 (export.default.LowLevelBinary.prototype.string):
19482 (export.default.LowLevelBinary.prototype.getVaruint32):
19483 (export.default.LowLevelBinary.prototype.getVarint32):
19484 (export.default.LowLevelBinary.prototype.getVaruint7):
19485 (export.default.LowLevelBinary.prototype.getString):
19486 (export.default.LowLevelBinary):
19487 (export.default.LowLevelBinary.prototype.varuint): Deleted.
19488 (export.default.LowLevelBinary.prototype.varint): Deleted.
19489 (export.default.LowLevelBinary.prototype.getVaruint): Deleted.
19490 (export.default.LowLevelBinary.prototype.getVarint): Deleted.
19491 * wasm/js-api/function-tests/add-12.js: Added.
19492 * wasm/js-api/function-tests/br-if-loop-less-than.js: Added.
19493 * wasm/js-api/function-tests/brTableAsIf.js: Added.
19494 * wasm/js-api/function-tests/brTableManyValues.js: Added.
19495 * wasm/js-api/function-tests/brTableWithLoop.js: Added.
19496 * wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added.
19497 * wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added.
19498 * wasm/js-api/function-tests/dumb-less-than-ite.js: Added.
19499 * wasm/js-api/function-tests/factorial.js: Added.
19500 * wasm/js-api/function-tests/float-sub.js: Added.
19501 * wasm/js-api/function-tests/i32-load.js: Added.
19502 * wasm/js-api/function-tests/i32-load8-s.js: Added.
19503 * wasm/js-api/function-tests/if-then-else-fallthrough.js: Added.
19504 * wasm/js-api/function-tests/if-then-fallthrough.js: Added.
19505 * wasm/js-api/function-tests/loop-mult.js: Added.
19506 * wasm/js-api/function-tests/loop-sum.js: Added.
19507 * wasm/js-api/function-tests/ret5.js: Added.
19508 * wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
19509 * wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
19511 2016-11-11 Saam Barati <sbarati@apple.com>
19513 We recursively grab a lock in the DFGBytecodeParser causing us to deadlock
19514 https://bugs.webkit.org/show_bug.cgi?id=164650
19516 Reviewed by Geoffrey Garen.
19518 * stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added.
19523 2016-11-11 Chris Dumez <cdumez@apple.com>
19525 Unreviewed, rolling out r208584.
19527 Seems to have regressed Speedometer by 1% on Mac
19529 Reverted changeset:
19531 "We should have a more concise way of determining when we're
19532 varargs calling a function using rest parameters"
19533 https://bugs.webkit.org/show_bug.cgi?id=164258
19534 http://trac.webkit.org/changeset/208584
19536 2016-11-11 Chris Dumez <cdumez@apple.com>
19538 Unreviewed, rolling out r208117 and r208160.
19540 Regressed Speedometer by >1.5%
19542 Reverted changesets:
19544 "We should have a way of profiling when a get_by_id is pure
19545 and to emit a PureGetById in the DFG/FTL"
19546 https://bugs.webkit.org/show_bug.cgi?id=163305
19547 http://trac.webkit.org/changeset/208117
19549 "Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing
19551 https://bugs.webkit.org/show_bug.cgi?id=164227
19552 http://trac.webkit.org/changeset/208160
19554 2016-11-11 Saam Barati <sbarati@apple.com>
19556 We should have a more concise way of determining when we're varargs calling a function using rest parameters
19557 https://bugs.webkit.org/show_bug.cgi?id=164258
19559 Reviewed by Yusuke Suzuki.
19561 * microbenchmarks/call-using-spread.js: Added.
19564 * microbenchmarks/spread-large-array.js: Added.
19567 * microbenchmarks/spread-small-array.js: Added.
19569 * stress/spread-array-iterator-watchpoint-2.js: Added.
19571 (arrayIterator.next):
19572 * stress/spread-array-iterator-watchpoint.js: Added.
19574 (Array.prototype.Symbol.iterator):
19575 * stress/spread-non-array.js: Added.
19578 (let.customIterator.Symbol.iterator):
19581 2016-11-10 Mark Lam <mark.lam@apple.com>
19583 Fix broken have-a-bad-time-with-arguments.js test.
19584 https://bugs.webkit.org/show_bug.cgi?id=164626
19586 Reviewed by Filip Pizlo.
19588 But also saved a copy of the broken one as broken-have-a-bad-time-with-arguments-for-gc-testing.js
19589 because coincidentally, it stresses the GC in ways that help reveal bugs.
19591 * stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js: Added.
19594 (let.argsDeclIndex.in.argumentsDecls.let.indexToReturnIndex.in.indicesToReturn.let.insertElementActionIndex.in.insertElementActions.let.tierWarmupCountIndex.in.tierWarmupCounts.let.testArgsIndex.in.testArgsList.catch):
19595 * stress/have-a-bad-time-with-arguments.js:
19597 2016-11-10 JF Bastien <jfbastien@apple.com>
19599 ASSERTION FAILED: length > offset encountered with wasm.yaml/wasm/js-api/test_Module.js.default-wasm
19600 https://bugs.webkit.org/show_bug.cgi?id=164597
19602 Reviewed by Keith Miller.
19604 Trim the array buffer before returning it: it's optimistically
19605 over-allocated to avoid growing all the time, but when parsed it
19606 can't have extra content.
19608 * wasm/Builder_WebAssemblyBinary.js:
19609 (export.const.Binary):
19610 * wasm/LowLevelBinary.js:
19611 (export.default.LowLevelBinary.prototype.get return):
19613 2016-11-10 Joseph Pecoraro <pecoraro@apple.com>
19615 test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex)
19616 https://bugs.webkit.org/show_bug.cgi?id=164450
19618 Reviewed by Darin Adler.
19620 * stress/dataview-typedarray-toindex.js: Added.
19621 Tests for all cases where ToIndex should be used.
19626 2016-11-10 Mark Lam <mark.lam@apple.com>
19628 Graph::methodOfGettingAValueProfileFor() should be returning the profile for the operand node.
19629 https://bugs.webkit.org/show_bug.cgi?id=164600
19630 <rdar://problem/28828676>
19632 Reviewed by Filip Pizlo.
19634 * stress/osr-exit-on-op-negate-should-no-fail-assertions.js: Added.
19636 2016-11-08 Yusuke Suzuki <utatane.tea@gmail.com>
19638 [JSC] Avoid cloned arguments allocation in ArrayPrototype methods
19639 https://bugs.webkit.org/show_bug.cgi?id=164502
19641 Reviewed by Saam Barati.
19643 * stress/argument-intrinsic-basic.js: Added.
19645 (builtin.createBuiltin):
19646 * stress/argument-intrinsic-inlining-with-result-escape.js: Added.
19648 (builtin.createBuiltin):
19650 * stress/argument-intrinsic-nested-inlining.js: Added.
19652 (builtin.createBuiltin):
19656 * stress/argument-intrinsic-not-convert-to-get-argument.js: Added.
19658 (builtin.createBuiltin):
19659 * stress/argument-intrinsic-with-stack-write.js: Added.
19661 (builtin.createBuiltin):
19663 2016-11-09 Saam Barati <sbarati@apple.com>
19665 Math.min()/Math.max() with no arguments is lowered incorrectly in the BytecodeParser
19666 https://bugs.webkit.org/show_bug.cgi?id=164464
19667 <rdar://problem/29131452>
19669 Reviewed by Darin Adler.
19671 * stress/math-max-min-no-arguments.js: Added.
19677 2016-11-09 Saam Barati <sbarati@apple.com>
19679 TypeProfiler and running GC collection on another thread don't play nicely with each other
19680 https://bugs.webkit.org/show_bug.cgi?id=164441
19681 <rdar://problem/29132174>
19683 Reviewed by Geoffrey Garen.
19685 * typeProfiler/type-profiler-gc.js: Added.
19689 2016-11-04 Mark Lam <mark.lam@apple.com>
19691 Error description code should be able to handle Symbol values.
19692 https://bugs.webkit.org/show_bug.cgi?id=164436
19693 <rdar://problem/29115583>
19695 Reviewed by Filip Pizlo and Saam Barati.
19697 * stress/error-description-on-symbols-should-not-crash.js: Added.
19699 2016-11-03 Geoffrey Garen <ggaren@apple.com>
19701 EvalCodeCache should not give up in strict mode and other cases
19702 https://bugs.webkit.org/show_bug.cgi?id=164357
19704 Reviewed by Michael Saboff.
19706 * microbenchmarks/eval-cached.js: Added. 45x faster now.
19707 * stress/eval-cached.js: Added. Try running the same eval text in a bunch
19708 of different scopes and verify that we access the right scope.
19710 2016-11-04 JF Bastien <jfbastien@apple.com>
19712 WebAssembly JS API: implement more sections
19713 https://bugs.webkit.org/show_bug.cgi?id=164023
19715 Reviewed by Keith Miller.
19719 - Put in parser stubs for all WebAssembly sections.
19720 - Parse Import, Export sections.
19721 - Use tryReserveCapacity instead of reserve, and bail out of the parser if it fails. This prevents the parser from bringing everything down when faced with a malicious input.
19722 - Encapsulate all parsed module information into its own structure, making it easier to pass around (from parser to Plan to Module to Instance).
19723 - Create WasmFormat.cpp to hold parsed module information's dtor to avoid including WasmMemory.h needlessly.
19724 - parseCode: avoid overflow through function size.
19725 - Remove all remainders of polyfill-prototype-1, and update license.
19726 - Add missing WasmOps.h and WasmValidateInlines.h auto-generation for cmake build.
19728 On the Builder.js testing side:
19730 - Implement Type, Import (function only), Export (function only) sections.
19731 - Check section order and uniqueness.
19732 - Optionally auto-generate the Type section from subsequent Export / Import / Code entries.
19733 - Allow re-exporting an import.
19735 * wasm/Builder.js: build type, import, and export sections
19736 (const._normalizeFunctionSignature):
19737 * wasm/Builder_WebAssemblyBinary.js: Added. Forked from Builder.js
19738 (const.emitters.Type):
19739 (const.emitters.Import):
19740 (const.emitters.Function):
19741 (const.emitters.Table):
19742 (const.emitters.Memory):
19743 (const.emitters.Global):
19744 (const.emitters.Export):
19745 (const.emitters.Start):
19746 (const.emitters.Element):
19747 (const.emitters.Code):
19748 (const.emitters.Data):
19749 (export.const.Binary):
19750 * wasm/LowLevelBinary.js: Add a few useful outputs
19751 (export.default.LowLevelBinary.prototype.varuint1):
19752 (export.default.LowLevelBinary.prototype.varint7):
19753 * wasm/WASM.js: value type and external kind helpers
19754 * wasm/assert.js: array element-wise equality comparison
19756 * wasm/js-api/test_Module.js:
19757 (ModuleWithImports):
19758 * wasm/self-test/test_BuilderJSON.js: many more tests for all the new Builder APIs, and update to some older tests which now require a Type section or rejiggered Function signature
19759 (const.assertOpThrows):
19760 (SectionsWithSameCustomName):
19762 (EmptyImportSection):
19763 (ImportBeforeTypeSections):
19764 * wasm/self-test/test_BuilderWebAssembly.js: remove a test which wasn't helpful and is now obsolete
19767 2016-11-03 Mark Lam <mark.lam@apple.com>
19769 ClonedArguments need to also support haveABadTime mode.
19770 https://bugs.webkit.org/show_bug.cgi?id=164200
19771 <rdar://problem/27211336>
19773 Reviewed by Geoffrey Garen.
19775 * stress/have-a-bad-time-with-arguments.js: Added.
19777 2016-11-03 Filip Pizlo <fpizlo@apple.com>
19779 DFG plays fast and loose with the shadow values of a Phi
19780 https://bugs.webkit.org/show_bug.cgi?id=164309
19782 Reviewed by Saam Barati.
19784 This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
19786 * stress/dfg-ssa-swap.js: Added.
19789 2016-11-03 Commit Queue <commit-queue@webkit.org>
19791 Unreviewed, rolling out r208364.
19792 https://bugs.webkit.org/show_bug.cgi?id=164402
19794 broke the build (Requested by smfr on #webkit).
19796 Reverted changeset:
19798 "DFG plays fast and loose with the shadow values of a Phi"
19799 https://bugs.webkit.org/show_bug.cgi?id=164309
19800 http://trac.webkit.org/changeset/208364
19802 2016-11-03 Filip Pizlo <fpizlo@apple.com>
19804 DFG plays fast and loose with the shadow values of a Phi
19805 https://bugs.webkit.org/show_bug.cgi?id=164309
19807 Reviewed by Saam Barati.
19809 This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
19811 * stress/dfg-ssa-swap.js: Added.
19814 2016-11-03 Saam Barati <sbarati@apple.com>
19816 Asking for a value profile prediction should be defensive against not finding a value profile
19817 https://bugs.webkit.org/show_bug.cgi?id=164306
19819 Reviewed by Mark Lam.
19821 * stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js: Added.
19825 2016-11-02 Saam Barati <sbarati@apple.com>
19827 Allocation elimination of rest parameter doesn't take into account indexed properties on Array.prototype/Object.prototype
19828 https://bugs.webkit.org/show_bug.cgi?id=164301
19830 Reviewed by Geoffrey Garen.
19832 * stress/rest-parameter-allocation-elimination-watchpoints-2.js: Added.
19835 * stress/rest-parameter-allocation-elimination-watchpoints-3.js: Added.
19838 * stress/rest-parameter-allocation-elimination-watchpoints-4.js: Added.
19841 * stress/rest-parameter-allocation-elimination-watchpoints-5.js: Added.
19844 * stress/rest-parameter-allocation-elimination-watchpoints-6.js: Added.
19847 * stress/rest-parameter-allocation-elimination-watchpoints.js: Added.
19851 2016-11-01 Saam Barati <sbarati@apple.com>
19853 We should be able to eliminate rest parameter allocations
19854 https://bugs.webkit.org/show_bug.cgi?id=163925
19856 Reviewed by Filip Pizlo.
19858 * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
19896 (test11.makeArguments):
19901 (test12.makeArguments):
19906 (test13.makeArguments):
19912 (test14.makeArguments):
19918 (test15.makeArguments):
19922 2016-11-01 Commit Queue <commit-queue@webkit.org>
19924 Unreviewed, rolling out r208208 and r208210.
19925 https://bugs.webkit.org/show_bug.cgi?id=164276
19927 This change caused 28 JSC test failures. (Requested by
19928 ryanhaddad on #webkit).
19930 Reverted changesets:
19932 "We should be able to eliminate rest parameter allocations"
19933 https://bugs.webkit.org/show_bug.cgi?id=163925
19934 http://trac.webkit.org/changeset/208208
19936 "Fix the EFL build."
19937 http://trac.webkit.org/changeset/208210
19939 2016-10-31 Filip Pizlo <fpizlo@apple.com>
19941 JSC should support SharedArrayBuffer
19942 https://bugs.webkit.org/show_bug.cgi?id=163986
19944 Reviewed by Keith Miller.
19946 This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to
19947 check all of the things that don't require concurrency.
19949 * stress/SharedArrayBuffer.js: Added.
19955 2016-10-31 Saam Barati <sbarati@apple.com>
19957 We should be able to eliminate rest parameter allocations
19958 https://bugs.webkit.org/show_bug.cgi?id=163925
19960 Reviewed by Filip Pizlo.
19962 * microbenchmarks/rest-parameter-allocation-elimination.js: Added.
20000 (test11.makeArguments):
20005 (test12.makeArguments):
20010 (test13.makeArguments):
20016 (test14.makeArguments):
20022 (test15.makeArguments):
20026 2016-10-31 Saam Barati <sbarati@apple.com>
20028 Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out
20029 https://bugs.webkit.org/show_bug.cgi?id=164227
20031 Unreviewed timeout fix.
20033 * microbenchmarks/pure-get-by-id-cse-2.js:
20035 2016-10-31 Keith Miller <keith_miller@apple.com>
20037 autogenerated files from wasm.json should be in derived sources.
20038 https://bugs.webkit.org/show_bug.cgi?id=164152
20040 Reviewed by Filip Pizlo.
20042 Delete generation script since it is no longer used.
20044 * wasm/generate-wasmops-header.js: Removed.
20046 2016-10-29 Yusuke Suzuki <utatane.tea@gmail.com>
20048 [JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
20049 https://bugs.webkit.org/show_bug.cgi?id=164123
20051 Reviewed by Mark Lam.
20053 * stress/json-stringify-with-non-jsarray-array.js: Added.
20055 (shouldBe.JSON.stringify.new.Proxy):
20057 2016-10-29 Saam Barati <sbarati@apple.com>
20059 We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
20060 https://bugs.webkit.org/show_bug.cgi?id=163305
20062 Reviewed by Keith Miller.
20064 * microbenchmarks/pure-get-by-id-cse-2.js: Added.
20066 * microbenchmarks/pure-get-by-id-cse.js: Added.
20068 * stress/pure-get-by-id-cse-correctness.js: Added.
20071 * stress/pure-get-by-id-on-non-object.js: Added.
20075 2016-10-28 Csaba Osztrogonác <ossy@webkit.org>
20077 Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
20078 https://bugs.webkit.org/show_bug.cgi?id=164128
20080 Reviewed by Mark Lam.
20082 * microbenchmarks/dense-set.js:
20084 2016-10-20 Caitlin Potter <caitp@igalia.com>
20086 [JSC] implement runtime for async functions
20087 https://bugs.webkit.org/show_bug.cgi?id=163760
20089 Reviewed by Yusuke Suzuki.
20091 * stress/async-await-basic.js: Added.
20095 (shouldThrowAsync):
20096 (shouldThrowSyntaxError):
20097 (let.AsyncFunction.async):
20098 (async.asyncFunctionForProto):
20099 (Object.getPrototypeOf.async):
20100 (Object.getPrototypeOf.async.method):
20103 (async.asyncNonConstructorDecl):
20104 (shouldThrow.new.async):
20105 (shouldThrow.new.async.nonConstructor):
20109 (async.asyncDeclThrower):
20110 (shouldThrowAsync.async):
20113 (async.resumeAfterNormal):
20114 (O.async.resumeAfterNormal):
20115 (resumeAfterNormalArrow.async):
20116 (async.resumeAfterThrow):
20117 (O.async.resumeAfterThrow):
20118 (resumeAfterThrowArrow.async):
20120 * stress/async-await-module-reserved-word.js: Added.
20122 (SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
20123 (checkModuleSyntaxError.String.raw.await):
20124 (checkModuleSyntaxError.String.raw.async.await):
20125 (SyntaxError.Cannot.declare.named):
20126 * stress/async-await-mozilla.js: Added.
20130 (shouldThrowAsync):
20132 (shouldThrowSyntaxError):
20133 (mozSemantics.async.empty):
20134 (mozSemantics.async.simpleReturn):
20135 (mozSemantics.async.simpleAwait):
20136 (mozSemantics.async.simpleAwaitAsync):
20137 (mozSemantics.async.returnOtherAsync):
20138 (mozSemantics.async.simpleThrower):
20139 (mozSemantics.async.delegatedThrower):
20140 (mozSemantics.async.tryCatch):
20141 (mozSemantics.async.tryCatchThrow):
20142 (mozSemantics.async.wellFinally):
20143 (mozSemantics.async.finallyMayFail):
20144 (mozSemantics.async.embedded.async.inner):
20145 (mozSemantics.async.embedded):
20146 (mozSemantics.async.fib):
20147 (mozSemantics.async.isOdd.async.isEven):
20148 (mozSemantics.async.isOdd):
20149 (mozSemantics.hardcoreFib.async.fib2):
20150 (mozSemantics.namedAsyncExpr.async.simple):
20151 (mozSemantics.async.executionOrder.async.first):
20152 (mozSemantics.async.executionOrder.async.second):
20153 (mozSemantics.async.executionOrder.async.third):
20154 (mozSemantics.async.executionOrder):
20155 (mozSemantics.async.miscellaneous):
20156 (mozSemantics.thrower):
20157 (mozSemantics.async.defaultArgs):
20158 (mozSemantics.shouldThrow):
20161 (mozMethods.X.prototype.async.getValue):
20162 (mozMethods.X.prototype.setValue):
20163 (mozMethods.X.prototype.async.increment):
20164 (mozMethods.X.prototype.async.getBaseClassName):
20165 (mozMethods.X.async.getStaticValue):
20166 (mozMethods.Y.prototype.async.getBaseClassName):
20168 (mozFunctionNameInferrence.async.test):
20170 * stress/async-await-reserved-word.js: Added.
20172 (shouldThrowSyntaxError):
20173 (AsyncFunction.async):
20174 * stress/async_arrow_functions_lexical_arguments_binding.js: Added.
20177 (shouldThrowAsync):
20178 (noArgumentsArrow2.async):
20179 * stress/async_arrow_functions_lexical_new.target_binding.js: Added.
20182 (shouldThrowAsync):
20185 (shouldThrowAsync.async):
20186 * stress/async_arrow_functions_lexical_super_binding.js: Added.
20189 (BaseClass.prototype.baseClassValue):
20190 (BaseClass.prototype.get property):
20192 (ChildClass.prototype.asyncSuperProp):
20193 (ChildClass.prototype.asyncSuperProp2):
20196 * stress/async_arrow_functions_lexical_this_binding.js: Added.
20201 2016-10-28 Csaba Osztrogonác <ossy@webkit.org>
20203 Skip 2 JS stress tests on memory limited devices
20204 https://bugs.webkit.org/show_bug.cgi?id=164125
20206 Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.
20208 * stress/joined-strings-should-not-exceed-max-string-length.js:
20209 * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
20211 2016-10-27 Caitlin Potter <caitp@igalia.com>
20213 [JSC] forbid lexical redeclaration of generator formal parameters
20214 https://bugs.webkit.org/show_bug.cgi?id=163930
20216 Reviewed by Yusuke Suzuki.
20218 * stress/async-await-syntax.js:
20219 * stress/generator-syntax.js:
20220 (testSyntaxError.gen):
20221 (testSyntaxError.arguments):
20222 (testSyntaxError.eval):
20225 2016-10-26 JF Bastien <jfbastien@apple.com>
20227 WebAssembly API: implement Instance
20229 As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects
20231 - Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
20232 - Construct a basic Instance with a Module.
20233 - Handle second argument (importObject) of WebAssembly.Instance.
20234 - Add reference text from the spec to WebAssembly.Module's code.
20235 - Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.
20237 The implementation isn't complete yet: it relies on further work for which I've filed bugs.
20239 WebAssembly API: implement Instance
20240 https://bugs.webkit.org/show_bug.cgi?id=163998
20242 Reviewed by Keith Miller.
20244 * wasm/js-api/test_Instance.js: Added.
20245 (EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it
20246 * wasm/js-api/test_basic_api.js:
20247 (const.c.in.constructorProperties.switch): basic tests of the API
20249 2016-10-26 Mark Lam <mark.lam@apple.com>
20251 JSGenericTypedArrayView::set() should check for exceptions.
20252 https://bugs.webkit.org/show_bug.cgi?id=164007
20253 <rdar://problem/28853775>
20255 Reviewed by Filip Pizlo.
20257 * stress/typed-array-view-set-should-not-crash-on-exception.js: Added.
20259 2016-10-25 Mark Lam <mark.lam@apple.com>
20261 String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
20262 https://bugs.webkit.org/show_bug.cgi?id=163996
20263 <rdar://problem/28263117>
20265 Reviewed by Geoffrey Garen.
20267 * stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.
20269 2016-10-25 Mark Lam <mark.lam@apple.com>
20271 JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
20272 https://bugs.webkit.org/show_bug.cgi?id=163937
20273 <rdar://problem/28642990>
20275 Reviewed by Geoffrey Garen.
20277 * stress/joined-strings-should-not-exceed-max-string-length.js: Added.
20279 2016-10-25 JF Bastien <jfbastien@apple.com>
20281 WebAssembly JS API: simple Module test
20282 https://bugs.webkit.org/show_bug.cgi?id=163963
20284 Reviewed by Filip Pizlo.
20286 * wasm/LowLevelBinary.js:
20287 (export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
20288 (export.default.LowLevelBinary.prototype.hexdump): Deleted.
20289 (export.default.LowLevelBinary.prototype._maybeGrow): Deleted.
20290 * wasm/js-api/test_Module.js: Added.
20291 (EmptyModule): The most basic module possible
20293 2016-10-25 JF Bastien <jfbastien@apple.com>
20295 WebAssembly JS API: implement Module
20297 This implementation allows us to:
20298 - Syncrhonously create a WebAssembly.Module with a typed array.
20299 - Creates a compilation plan.
20300 - Parse the Module and creates corresponding code.
20301 - Throw WebAssembly.CompileError with mildly helpful [*] error messages on
20304 Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor
20306 For now the implementation discards the generated code.
20308 The next steps will be:
20309 - Expose a Module's exports.
20310 - Implement WebAssembly.Instance, which allows instantiating and running a
20312 - Beef up the testing infrastructure under JSTests/wasm so that more complex
20313 modules can be created and tested (instead of writing the bits by hand).
20316 - Adds assert.instanceof in assert.js.
20317 - Refactors Wasm::Parser and friends to accept const uint8_t* as well as a
20318 Vector, to avoid copying when invoked synchronously.
20319 - Remove useless Structure from some of the wasm constructors: they're already
20320 on the JSGlobalObject, visited properly and all.
20321 - Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer
20322 was exactly at end of file.
20324 [*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919
20326 WebAssembly JS API: implement Module
20327 https://bugs.webkit.org/show_bug.cgi?id=163903
20329 Reviewed by Keith Miller.
20331 * wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names
20337 * wasm/js-api/test_basic_api.js: test the WebAssembly.Module API
20338 (const.c.in.constructorProperties.switch):
20340 2016-10-25 Keith Miller <keith_miller@apple.com>
20342 Add trivial Wasm conversion opcodes
20343 https://bugs.webkit.org/show_bug.cgi?id=163950
20345 Reviewed by Filip Pizlo.
20347 This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
20348 those that are not. Some of the Wasm opcodes that are currently a non-simple opcode will
20349 become simple as we add B3 opcodes for Wasm operations. The remaining opcodes will need to
20350 be added via patchpoints in a later patch.
20352 * wasm/generate-wasmops-header.js:
20353 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):
20356 2016-10-24 Yusuke Suzuki <utatane.tea@gmail.com>
20358 Arrow functions with concise bodies cannot return regular expressions
20359 https://bugs.webkit.org/show_bug.cgi?id=163162
20361 Reviewed by Filip Pizlo.
20363 * ChakraCore/test/Operators/instanceof.baseline-jsc:
20364 * ChakraCore/test/Regex/nul_character.baseline-jsc:
20365 * ChakraCore/test/es5/Lex_u3.baseline-jsc:
20366 * stress/parse-regexp-as-token.js: Added.
20369 2016-10-24 Keith Miller <keith_miller@apple.com>
20371 Wasm should support floating point operations.
20372 https://bugs.webkit.org/show_bug.cgi?id=163770
20374 Reviewed by Michael Saboff.
20376 Add appropriate b3op names for floating point wasm bytecodes, where they exist.
20377 Also, fix some WASM => Wasm in WasmOps.h generator script that I missed
20378 the first time I made the change.
20380 * wasm/generate-wasmops-header.js:
20381 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted.
20382 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted.
20383 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted.
20384 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted.
20385 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted.
20386 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted.
20389 2016-10-21 Saam Barati <sbarati@apple.com>
20391 SpeculativeJIT::compileTryGetById needs to pass in NeedsToSpill along both the cell speculation and untyped speculation path
20392 https://bugs.webkit.org/show_bug.cgi?id=163622
20394 Reviewed by Yusuke Suzuki.
20396 * stress/try-get-by-id-should-spill-registers-dfg.js: Added.
20397 (let.f.createBuiltin):
20399 2016-10-21 Caitlin Potter <caitp@igalia.com>
20401 [JSC] don't crash when arguments to `new Function()` produce unexpected AST
20402 https://bugs.webkit.org/show_bug.cgi?id=163748
20404 Reviewed by Mark Lam.
20406 * stress/regress-163748.js: Added.
20408 (shouldThrowSyntaxError):
20409 (GeneratorFunction):
20411 2016-10-20 Keith Miller <keith_miller@apple.com>
20413 Add support for WASM calls
20414 https://bugs.webkit.org/show_bug.cgi?id=161727
20416 Reviewed by Filip Pizlo and Michael Saboff.
20418 Add members of the Call category to the WASMOps special group.
20420 * wasm/generate-wasmops-header.js:
20422 2016-10-20 Yusuke Suzuki <utatane.tea@gmail.com>
20424 [JSC] Drop isEnvironmentRecord type info flag and use JSType information instead
20425 https://bugs.webkit.org/show_bug.cgi?id=163761
20427 Reviewed by Keith Miller.
20429 * modules/string-prototype-module-scope.js: Added.
20433 * stress/string-prototype-scopes-global-lexical-environment-strict.js: Added.
20436 * stress/string-prototype-scopes-global-lexical-environment.js: Added.
20439 * stress/string-prototype-scopes-strict.js: Added.
20444 * stress/string-prototype-scopes.js: Added.
20452 2016-10-20 JF Bastien <jfbastien@apple.com>
20454 WebAssembly API: implement exception constructors properly
20456 - Rename WebAssemblyObject to JSWebAssembly for consistency.
20457 - WebAssembly object now has its own prototype: add WebAssemblyPrototype, and
20458 use it to register JSWebAssembly's function properties through auto-generated
20459 .lut.h, instead of manually.
20460 - The error constructors used to throw (e.g. `new WebAssembly.CompileError()`).
20461 - Register WebAssembly's constructors from the global object, and hold a
20462 reference to their structure and prototype so that invoking the constructor
20463 can use the structure directly from the global object.
20464 - Add a prototype base field to global object creation. Previous ones all had
20465 Object's prototype as their base, but WebAssembly's error constructors have
20466 Error as their base.
20467 - Test for the error object's correctness.
20468 - Add missing #if ENABLE(WEBASSEMBLY)
20470 WebAssembly API: implement exception constructors properly
20471 https://bugs.webkit.org/show_bug.cgi?id=163699
20473 Reviewed by Keith Miller.
20475 * wasm/js-api/test_basic_api.js:
20476 (const.c.in.constructorProperties): more tests
20478 2016-10-20 Caitlin Potter <caitp@igalia.com>
20480 [JSC] disallow references to `await` in AsyncFunction formal parameters
20481 https://bugs.webkit.org/show_bug.cgi?id=163694
20483 Reviewed by Saam Barati.
20485 * stress/async-await-syntax.js:
20487 2016-10-20 Keith Miller <keith_miller@apple.com>
20489 Invalid assertion in arguments elimination
20490 https://bugs.webkit.org/show_bug.cgi?id=163740
20491 <rdar://problem/27911462>
20493 Reviewed by Michael Saboff.
20495 * stress/direct-arguments-osr-entry.js: Added.
20499 2016-10-20 Caitlin Potter <caitp@igalia.com>
20501 [JSC] throw TypeError when constructing dynamically created JSGeneratorFunction
20502 https://bugs.webkit.org/show_bug.cgi?id=163714
20504 Reviewed by Mark Lam.
20506 Add missing test coverage that dynamically created
20507 JSGeneratorFunctions can not be constructed.
20509 * stress/generator-function-constructor.js:
20512 2016-10-19 JF Bastien <jfbastien@apple.com>
20514 JavaScript WebAssembly API: baby steps
20516 - Expand WebAssembly constructors into their own files. This requires a lot of
20517 boilerplate, as well as adding the .lut.h files. All of the
20518 JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
20519 currently the same between the 4 specified WebAssembly constructors. It'll be
20520 easy to implement individual functions on constructed objects as per the
20521 spec, and have each of these files diverge. The error constructors are also
20522 similar, except that their instance derives from ErrorInstance.
20523 - Use constructor macro when initializing the global object.
20524 - Dramatically improve testing of the WebAssembly API by checking for
20525 properties specified in the spec [*].
20526 - Clean up assert.js' exception testing.
20527 - Fix a copy-paste bug in wasm.json: floating-point const return values were
20530 [*] https://github.com/WebAssembly/design/blob/master/JS.md
20532 Implement more of the JavaScript WebAssembly API
20533 https://bugs.webkit.org/show_bug.cgi?id=163571
20535 Reviewed by Keith Miller.
20538 (export.const.isUndef): add this useful helper
20539 (export.const.throws): fold other throw checks into this one, and check message as well
20540 * wasm/js-api/test_basic_api.js:
20541 (const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
20542 * wasm/self-test/test_BuilderJSON.js:
20543 (const.assertOpThrows): use new assert API
20544 (CheckedOpcodeArgumentsTooMany): ditto
20545 (CheckedOpcodeArgumentsNotEnough): ditto
20546 (CallInvalid): ditto
20547 (I32ConstInvalid): ditto
20548 (F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
20549 (F64ConstInvalid): ditto
20550 * wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
20551 * wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
20552 * wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly).
20553 * wasm/wasm.json: fix copy-paste
20555 2016-10-19 Caitlin Potter <caitp@igalia.com>
20557 [JSC] forbid "use strict" directive in generator functions with non-simple parameters
20558 https://bugs.webkit.org/show_bug.cgi?id=163683
20560 Reviewed by Geoffrey Garen.
20562 Update various generator*-non-simple-param.js tests to be passing.
20566 2016-10-18 Mark Lam <mark.lam@apple.com>
20568 Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
20569 https://bugs.webkit.org/show_bug.cgi?id=154377
20570 <rdar://problem/27330808>
20572 Reviewed by Filip Pizlo and Saam Barati.
20574 * stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.
20576 2016-10-18 Keith Miller <keith_miller@apple.com>
20578 GetByVal to GetById conversion in the DFG is incorrect for getters with control flow
20579 https://bugs.webkit.org/show_bug.cgi?id=163629
20581 Reviewed by Yusuke Suzuki.
20583 * stress/get-by-val-to-id-with-getter.js: Added.
20587 2016-10-15 Filip Pizlo <fpizlo@apple.com>
20589 DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable
20590 https://bugs.webkit.org/show_bug.cgi?id=163371
20592 Reviewed by Geoffrey Garen and Saam Barati.
20594 Add microbenchmarks for all of the cases that this patch optimizes.
20596 * microbenchmarks/direct-call-arity-mismatch.js: Added.
20599 * microbenchmarks/direct-call.js: Added.
20602 * microbenchmarks/direct-construct-arity-mismatch.js: Added.
20605 * microbenchmarks/direct-construct.js: Added.
20608 * microbenchmarks/direct-tail-call-arity-mismatch.js: Added.
20611 * microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added.
20615 * microbenchmarks/direct-tail-call-inlined-caller.js: Added.
20619 * microbenchmarks/direct-tail-call.js: Added.
20623 2016-10-18 Caitlin Potter <caitp@igalia.com>
20625 [JSC] ES6 Method functions should not have prototype
20626 https://bugs.webkit.org/show_bug.cgi?id=162530
20628 Reviewed by Saam Barati.
20630 Fix test262 expectations about MethodDefinitions
20632 * ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
20633 * stress/reflect-set.js:
20636 2016-10-17 Keith Miller <keith_miller@apple.com>
20638 Add support for WASM Memory.
20639 https://bugs.webkit.org/show_bug.cgi?id=161710
20641 Reviewed by Geoffrey Garen.
20643 Add store and load opcodes to wasm.json. Additionally, add new
20644 enums for those opcodes in the generator.
20646 * stress/wasm/generate-wasmops-header.js:
20647 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
20648 (const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):
20650 2016-10-17 Saam Barati <sbarati@apple.com>
20652 Add more tests for the double->String conversion in ValueAdd constant folding
20653 https://bugs.webkit.org/show_bug.cgi?id=163517
20655 Reviewed by Yusuke Suzuki.
20657 * microbenchmarks/string-add-constant-folding.js:
20660 2016-10-17 JF Bastien <jfbastien@apple.com>
20662 WebAssembly JS API: implement basic stub
20664 Implement the global WebAssembly JavaScript object, and its constructor +
20665 function properties as described in:
20666 https://github.com/WebAssembly/design/blob/master/JS.md
20668 These don't do anything at the moment, the parent bug will take care of adding
20669 more functionality and associated tests.
20671 WebAssembly JS API: implement basic stub
20672 https://bugs.webkit.org/show_bug.cgi?id=163404
20674 Reviewed by Keith Miller.
20677 * wasm/js-api/test_basic_api.js: Added.
20678 (const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
20679 (const.c.of.constructorProperties.catch):
20681 2016-10-17 Yusuke Suzuki <utatane.tea@gmail.com>
20683 [DOMJIT] Use DOMJIT::Patchpoint in IC
20684 https://bugs.webkit.org/show_bug.cgi?id=163223
20686 Reviewed by Saam Barati.
20688 * stress/domjit-exception-ic.js: Added.
20691 * stress/domjit-exception.js: Added.
20694 * stress/domjit-getter-complex-with-incorrect-object.js: Added.
20698 * stress/domjit-getter-complex.js: Added.
20701 * stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
20706 2016-10-15 Saam Barati <sbarati@apple.com>
20708 Assertion failed under operationToLowerCase with a rope with zero length
20709 https://bugs.webkit.org/show_bug.cgi?id=163314
20711 Reviewed by Mark Lam.
20713 * stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
20715 (returnRope.helper):
20719 2016-10-14 Benjamin Poulain <bpoulain@apple.com>
20721 [JSC] op_negate should with any type
20722 https://bugs.webkit.org/show_bug.cgi?id=162587
20724 Reviewed by Saam Barati.
20726 * stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
20727 Cover OSR Exits when converting Math.abs() into ArithNegate.
20729 * stress/arith-negate-on-various-types.js: Added.
20730 Cover ArithNegate with all types.
20732 2016-10-14 JF Bastien <jfbastien@apple.com>
20734 Basic WebAssembly testing
20736 Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
20737 https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
20739 This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.
20741 Details and example in README.md.
20743 Basic WebAssembly testing
20744 https://bugs.webkit.org/show_bug.cgi?id=163267
20746 Reviewed by Keith Miller.
20748 * stress/wasm/wasm.json: Removed.
20749 * wasm.yaml: Added.
20750 * wasm/Builder.js: Added.
20751 (const._isValidValue):
20752 (const._BuildWebAssemblyBinary):
20753 (export.default.Builder):
20754 (export.default.Builder.prototype.setChecked):
20755 (export.default.Builder.prototype.setPreamble):
20756 (export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
20757 (export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
20758 (export.default.Builder.prototype._registerSectionBuilders):
20759 (export.default.Builder.prototype._addSection):
20760 (export.default.Builder.prototype.optimize):
20761 (export.default.Builder.prototype.json):
20762 (export.default.Builder.prototype.AsmJS):
20763 (export.default.Builder.prototype.WebAssembly):
20764 * wasm/LowLevelBinary.js: Added.
20765 (const._getterRangeCheck):
20767 (export.default.LowLevelBinary):
20768 (export.default.LowLevelBinary.prototype.newPatchable):
20769 (export.default.LowLevelBinary.prototype.hexdump):
20770 (export.default.LowLevelBinary.prototype._maybeGrow):
20771 (export.default.LowLevelBinary.prototype._push8):
20772 (export.default.LowLevelBinary.prototype.uint8):
20773 (export.default.LowLevelBinary.prototype.uint16):
20774 (export.default.LowLevelBinary.prototype.uint32):
20775 (export.default.LowLevelBinary.prototype.varuint):
20776 (export.default.LowLevelBinary.prototype.varint):
20777 (export.default.LowLevelBinary.prototype.varuint7):
20778 (export.default.LowLevelBinary.prototype.string):
20779 (export.default.LowLevelBinary.prototype.getSize):
20780 (export.default.LowLevelBinary.prototype.getUint8):
20781 (export.default.LowLevelBinary.prototype.getUint16):
20782 (export.default.LowLevelBinary.prototype.getUint32):
20783 (export.default.LowLevelBinary.prototype.getVaruint):
20784 (export.default.LowLevelBinary.prototype.getVarint):
20785 (export.default.LowLevelBinary.prototype.getVaruint7):
20786 (export.default.LowLevelBinary.prototype.getString):
20787 (PatchableLowLevelBinary):
20788 (PatchableLowLevelBinary.prototype._push8):
20789 (PatchableLowLevelBinary.prototype.apply):
20790 * wasm/README.md: Added.
20791 * wasm/WASM.js: Added.
20792 * wasm/assert.js: Added.
20793 (export.const.notUndef):
20796 (export.const.throwsError):
20797 (export.const.throwsRangeError):
20798 * wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
20799 * wasm/self-test/test_BuilderJSON.js: Added.
20800 (const.assertOpThrows):
20802 (CustomMagicNumber):
20805 (CustomSectionAllBytes):
20806 (CustomSectionInvalidByte):
20807 (TwoCustomSections):
20808 (EmptyCodeSection):
20809 (CodeSectionWithEmptyFunction):
20810 (CodeSectionWithEmptyFunctionWithParameters):
20811 (InvalidFunctionParameters):
20813 (TwoSimpleFunctions):
20814 (TwoBuildersAtTheSameTime):
20815 (CheckedOpcodeArgumentsTooMany):
20816 (CheckedOpcodeArgumentsNotEnough):
20822 (CallManyFromStack):
20824 (OpcodeUnreachable):
20825 (OpcodeUnreachableCombinations):
20827 * wasm/self-test/test_BuilderWebAssembly.js: Added.
20831 * wasm/self-test/test_LowLevelBinary_encode.js: Added.
20832 * wasm/self-test/test_LowLevelBinary_string.js: Added.
20833 * wasm/self-test/test_LowLevelBinary_uint16.js: Added.
20834 * wasm/self-test/test_LowLevelBinary_uint32.js: Added.
20835 * wasm/self-test/test_LowLevelBinary_uint8.js: Added.
20836 * wasm/self-test/test_LowLevelBinary_varint.js: Added.
20837 * wasm/self-test/test_LowLevelBinary_varuint.js: Added.
20838 * wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
20839 * wasm/self-test/test_WASM.js: Added.
20840 * wasm/test.sh: Added.
20841 * wasm/utilities.js: Added.
20842 (const._read.filename.switch):
20843 (const._load.filename.switch):
20844 (const._json.filename.switch):
20845 * wasm/wasm.json: Added.
20847 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
20849 test262: @isConstructor incorrectly thinks Math.cos is a constructor
20850 https://bugs.webkit.org/show_bug.cgi?id=163437
20852 Reviewed by Saam Barati.
20854 * stress/is-constructor.js: Added.
20856 (prototype.assert):
20857 New test to cover the @isConstructor builtin.
20862 2016-10-14 Ryan Haddad <ryanhaddad@apple.com>
20864 Unreviewed, rolling out r207322.
20866 This change caused JSC test failures
20868 Reverted changeset:
20870 "Fix Array.prototype.splice ES6 compliance."
20871 https://bugs.webkit.org/show_bug.cgi?id=163372
20872 http://trac.webkit.org/changeset/207322
20874 2016-10-14 Mark Lam <mark.lam@apple.com>
20876 JSON.parse should not modify frozen objects.
20877 https://bugs.webkit.org/show_bug.cgi?id=163430
20879 Reviewed by Saam Barati.
20881 * stress/json-parse-on-frozen-object.js: Added.
20883 2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
20885 test262: Failure with RegExp.prototype.compile when pattern is undefined
20886 https://bugs.webkit.org/show_bug.cgi?id=163431
20888 Reviewed by Yusuke Suzuki.
20892 2016-10-13 Joseph Pecoraro <pecoraro@apple.com>
20894 Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
20895 https://bugs.webkit.org/show_bug.cgi?id=163426
20897 Reviewed by Geoffrey Garen.
20899 * ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
20900 * ChakraCore/test/Object/null.baseline-jsc:
20901 * stress/exception-in-to-property-key-should-be-handled-early.js:
20902 Better exception messages.
20904 2016-10-13 Mark Lam <mark.lam@apple.com>
20906 Fix Array.prototype.splice ES6 compliance.
20907 https://bugs.webkit.org/show_bug.cgi?id=163372
20909 Reviewed by Geoffrey Garen and Yusuke Suzuki.
20911 * stress/array-splice-on-frozen-object.js: Added.
20913 2016-10-12 Keith Miller <keith_miller@apple.com>
20915 Handle non-function, non-undefined comparator in Array.prototype.sort
20916 https://bugs.webkit.org/show_bug.cgi?id=163085
20918 Reviewed by Yusuke Suzuki.
20920 * ChakraCore/test/Array/array_sort.baseline-jsc:
20921 * stress/array-sort-bad-comparator.js: Added.
20924 2016-10-12 Mark Lam <mark.lam@apple.com>
20926 Array.prototype.slice should not modify frozen objects.
20927 https://bugs.webkit.org/show_bug.cgi?id=163338
20929 Reviewed by Filip Pizlo.
20931 * stress/array-slice-on-frozen-object.js: Added.
20933 2016-10-11 Mark Lam <mark.lam@apple.com>
20935 Array.prototype.concat should not modify frozen objects.
20936 https://bugs.webkit.org/show_bug.cgi?id=163302
20938 Reviewed by Filip Pizlo.
20940 * stress/array-concat-on-frozen-object.js: Added.
20942 2016-10-11 Saam Barati <sbarati@apple.com>
20944 ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
20945 https://bugs.webkit.org/show_bug.cgi?id=163182
20947 Reviewed by Filip Pizlo.
20949 * microbenchmarks/string-add-constant-folding.js: Added.
20955 2016-10-07 Mark Lam <mark.lam@apple.com>
20957 Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
20958 https://bugs.webkit.org/show_bug.cgi?id=163160
20960 Reviewed by Saam Barati.
20962 * stress/object-freeze-with-proxy-preventExtensions.js: Added.
20963 * stress/object-seal-with-proxy-preventExtensions.js: Added.
20965 2016-10-05 Yusuke Suzuki <utatane.tea@gmail.com>
20967 [DOMJIT] Add initial CheckDOM and CallDOM implementations
20968 https://bugs.webkit.org/show_bug.cgi?id=162941
20970 Reviewed by Filip Pizlo.
20972 * stress/domjit-getter-poly.js: Added.
20975 * stress/domjit-getter-proto.js: Added.
20978 * stress/domjit-getter-super-poly.js: Added.
20981 * stress/domjit-getter.js: Added.
20985 2016-10-04 Saam Barati <sbarati@apple.com>
20987 String.prototype.toLowerCase should be a DFG/FTL intrinsic
20988 https://bugs.webkit.org/show_bug.cgi?id=162887
20990 Reviewed by Filip Pizlo and Yusuke Suzuki.
20992 * microbenchmarks/to-lower-case.js: Added.
20996 * stress/to-lower-case.js: Added.
21000 2016-10-04 JF Bastien <jfbastien@apple.com>
21002 WebAssembly: handle a few corner cases
21003 https://bugs.webkit.org/show_bug.cgi?id=162884
21005 Reviewed by Keith Miller.
21007 * stress/wasm/generate-wasmops-header.js:
21008 (const.opcodeIterator): max opcode value
21010 2016-10-03 JF Bastien <jfbastien@apple.com>
21012 Auto-generate WASMOps.h, share with testing JSON file
21013 https://bugs.webkit.org/show_bug.cgi?id=162870
21015 Reviewed by Keith Miller.
21017 * stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
21018 (const.opcode_iterator):
21019 (opcode_macroizer):
21020 * stress/wasm/wasm.json: Added. Data from 0xC binary format version.
21022 2016-10-03 Saam Barati <sbarati@apple.com>
21024 MapHash should speculate on the type of its child node
21025 https://bugs.webkit.org/show_bug.cgi?id=161922
21027 Reviewed by Filip Pizlo.
21029 * microbenchmarks/map-key-well-typed.js: Added.
21038 (assert.doubleKey):
21039 (assert.booleanKey):
21041 2016-10-03 Yusuke Suzuki <utatane.tea@gmail.com>
21043 [ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
21044 https://bugs.webkit.org/show_bug.cgi?id=162849
21046 Reviewed by Geoffrey Garen.
21050 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
21052 [ES6] Align attributes of Generator related properties to spec
21053 https://bugs.webkit.org/show_bug.cgi?id=162839
21055 Reviewed by Saam Barati.
21059 2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
21061 [ES6] GeneratorFunction constructor should instantiate generator function
21062 https://bugs.webkit.org/show_bug.cgi?id=162838
21064 Reviewed by Saam Barati.
21066 * stress/generator-function-constructor-is-subclassible.js: Added.
21068 (GeneratorFunction):
21070 * stress/generator-function-constructor.js:
21073 2016-09-30 Saam Barati <sbarati@apple.com>
21075 Arrow functions should not allow duplicate parameter names
21076 https://bugs.webkit.org/show_bug.cgi?id=162741
21078 Reviewed by Filip Pizlo.
21082 2016-09-30 Saam Barati <sbarati@apple.com>
21084 Make some microbenchmarks run for less time.
21086 Rubber stamped by Filip Pizlo.
21088 * microbenchmarks/bound-function-construction-performance.js:
21090 * microbenchmarks/getter-richards-try-catch.js:
21092 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
21094 Arrow functions do not infer name from computed property but normal functions do
21095 https://bugs.webkit.org/show_bug.cgi?id=162720
21097 Reviewed by Saam Barati.
21099 * stress/inferred-names.js:
21101 2016-09-29 Mark Lam <mark.lam@apple.com>
21103 Break some slow running tests into smaller bits so they don't time out.
21104 https://bugs.webkit.org/show_bug.cgi?id=162743
21106 Reviewed by Keith Miller.
21108 The following tests have shown to be slow running:
21117 These tests auto-generate permutations of values to apply to binary operations.
21118 They also test the operations with 3 permutations of value types:
21119 1. VarVar - both operands variables
21120 2. VarConst - variable operand 1, constant / literal operand 2
21121 3. ConstVar - constant / literal operand 1, variable operand 2
21123 We can prevent these tests from timing out by breaking each up to only run 1 of
21124 the 3 permutations of value types.
21126 * stress/op_div-ConstVar.js: Added.
21127 * stress/op_div-VarConst.js: Added.
21128 * stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
21129 (o1.valueOf): Deleted.
21130 * stress/op_div.js: Removed.
21131 * stress/op_lshift-ConstVar.js: Added.
21132 * stress/op_lshift-VarConst.js: Added.
21133 * stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
21134 (o1.valueOf): Deleted.
21135 * stress/op_lshift.js: Removed.
21136 * stress/op_mod-ConstVar.js: Added.
21137 * stress/op_mod-VarConst.js: Added.
21138 * stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
21139 (o1.valueOf): Deleted.
21140 * stress/op_mod.js: Removed.
21141 * stress/op_mul-ConstVar.js: Added.
21142 * stress/op_mul-VarConst.js: Added.
21143 * stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
21144 (o1.valueOf): Deleted.
21145 * stress/op_mul.js: Removed.
21146 * stress/op_rshift-ConstVar.js: Added.
21147 * stress/op_rshift-VarConst.js: Added.
21148 * stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
21149 (o1.valueOf): Deleted.
21150 * stress/op_rshift.js: Removed.
21151 * stress/op_sub-ConstVar.js: Added.
21152 * stress/op_sub-VarConst.js: Added.
21153 * stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
21154 (o1.valueOf): Deleted.
21155 * stress/op_sub.js: Removed.
21156 * stress/op_urshift-ConstVar.js: Added.
21157 * stress/op_urshift-VarConst.js: Added.
21158 * stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
21159 (o1.valueOf): Deleted.
21160 * stress/op_urshift.js: Removed.
21161 * stress/resources/binary-op-values.js: Added.
21164 2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
21166 test262: class and function names should be inferred in assignment
21167 https://bugs.webkit.org/show_bug.cgi?id=146262
21169 Reviewed by Saam Barati.
21171 * stress/arrowfunction-name.js: Added.
21172 Quick tests for arrow function names.
21174 * stress/inferred-names.js: Added.
21175 General test for inferred function names.
21178 Pass many tests checking inferred function names.
21180 2016-09-29 Saam Barati <sbarati@apple.com>
21182 We don't properly propagate non-simple-parameter-list when parsing a setter
21183 https://bugs.webkit.org/show_bug.cgi?id=160483
21185 Reviewed by Joseph Pecoraro.
21189 2016-09-28 Saam Barati <sbarati@apple.com>
21191 stringProtoFuncRepeatCharacter will return `null` when it should not
21192 https://bugs.webkit.org/show_bug.cgi?id=161944
21194 Reviewed by Yusuke Suzuki.
21196 * stress/pad-start-calls-repeat-character-with-double.js: Added.
21197 (logLinesWithContext):
21199 2016-09-27 Filip Pizlo <fpizlo@apple.com>
21201 B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
21202 https://bugs.webkit.org/show_bug.cgi?id=162644
21204 Reviewed by Keith Miller.
21206 * stress/chill-mod-chill-mod.js: Added.
21209 2016-09-26 Csaba Osztrogonác <oszi@inf.u-szeged.hu>
21211 Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
21212 https://bugs.webkit.org/show_bug.cgi?id=162386
21214 Unreviewed, relanding r206317 after typo fix.
21216 * stress/string-joining-long-strings-should-not-crash.js:
21218 2016-09-24 Caitlin Potter <caitp@igalia.com>
21220 [JSTests] fix test262 expectations following r206333
21221 https://bugs.webkit.org/show_bug.cgi?id=162533
21223 Reviewed by Yusuke Suzuki.
21227 2016-09-23 Caitlin Potter <caitp@igalia.com>
21229 [JSC] Implement parsing of Async Functions
21230 https://bugs.webkit.org/show_bug.cgi?id=161409
21232 Reviewed by Yusuke Suzuki.
21234 * stress/async-await-syntax.js: Added.
21237 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
21238 (testTopLevelAsyncAwaitSyntaxSloppyMode):
21239 (testTopLevelAsyncAwaitSyntaxStrictMode):
21240 (testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
21241 (testNestedAsyncAwaitSyntax.async):
21242 (testNestedAsyncAwaitSyntax.foo):
21243 (testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
21245 2016-09-23 Ryan Haddad <ryanhaddad@apple.com>
21247 Unreviewed, rolling out r206317.
21249 This change caused timeouts on El Capitan Release JSC tests
21251 Reverted changeset:
21253 "Skip stress/string-joining-long-strings-should-not-crash.js
21254 on memory limited devices"
21255 https://bugs.webkit.org/show_bug.cgi?id=162386
21256 http://trac.webkit.org/changeset/206317
21258 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
21260 Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
21261 https://bugs.webkit.org/show_bug.cgi?id=162381
21263 Reviewed by Mark Lam.
21265 * mozilla/mozilla-tests.yaml:
21267 2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
21269 Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
21270 https://bugs.webkit.org/show_bug.cgi?id=162386
21272 Reviewed by Mark Lam.
21274 * stress/string-joining-long-strings-should-not-crash.js:
21276 2016-09-22 Benjamin Poulain <bpoulain@apple.com>
21278 [JSC] Use an inline cache to generate op_negate
21279 https://bugs.webkit.org/show_bug.cgi?id=162371
21281 Reviewed by Saam Barati.
21283 * stress/op-negate-inline-cache.js: Added.
21285 2016-09-22 Mark Lam <mark.lam@apple.com>
21287 Array.prototype.join should do overflow checks on string joins.
21288 https://bugs.webkit.org/show_bug.cgi?id=162459
21290 Reviewed by Saam Barati.
21292 * stress/array-join-on-strings-need-overflow-checks.js: Added.
21296 2016-09-22 Joseph Pecoraro <pecoraro@apple.com>
21298 test262: Function length should be number of parameters before parameters with default values
21299 https://bugs.webkit.org/show_bug.cgi?id=162377
21301 Reviewed by Saam Barati.
21303 * stress/es6-default-parameters.js:
21304 Add our own tests for function lengths with default parameters.
21307 We now pass all dflt-length tests.
21309 2016-09-20 Benjamin Poulain <bpoulain@apple.com>
21311 [JSC] Do not use EagerRun on tests counting recompilation
21312 https://bugs.webkit.org/show_bug.cgi?id=162248
21314 Reviewed by Geoffrey Garen.
21316 This patch adds defaultNoEagerRun to all the tests
21317 for which recompilation is the symptom of a bug.
21318 The reason is that an OSR Exit can be unrelated to the tested
21319 nodes when we are running in Eager mode.
21321 * stress/arith-abs-on-various-types.js:
21322 * stress/arith-ceil-on-various-types.js:
21323 * stress/arith-clz32-on-various-types.js:
21324 * stress/arith-cos-on-various-types.js:
21325 * stress/arith-floor-on-various-types.js:
21326 * stress/arith-fround-on-various-types.js:
21327 * stress/arith-log-on-various-types.js:
21328 * stress/arith-round-on-various-types.js:
21329 * stress/arith-sin-on-various-types.js:
21330 * stress/arith-sqrt-on-various-types.js:
21331 * stress/arith-tan-on-various-types.js:
21332 * stress/arith-trunc-on-various-types.js:
21334 * stress/compare-strict-eq-on-various-types.js:
21335 (testAllTypesCall):
21336 The value 2 came from the other tests.
21337 CompareStrictEq supports many more cases, the worst case
21338 is bool->int->int52->number->polymorphic.
21340 2016-09-20 Filip Pizlo <fpizlo@apple.com>
21342 Make MarkedBlock state tracking support overlapped allocation and marking state
21343 https://bugs.webkit.org/show_bug.cgi?id=161581
21345 Reviewed by Geoffrey Garen.
21347 Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
21349 * microbenchmarks/switching-size-classes.js: Added.
21351 2016-09-20 Saam Barati <sbarati@apple.com>
21353 Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
21355 * stress/has-own-property-called-on-non-object.js: Added.
21360 2016-09-20 Yusuke Suzuki <utatane.tea@gmail.com>
21362 [JSC] Add `typeof value === "symbol"` handling to bytecode compiler
21363 https://bugs.webkit.org/show_bug.cgi?id=162253
21365 Reviewed by Sam Weinig.
21367 * microbenchmarks/is-symbol-mixed.js: Added.
21369 (i.let.pair.of.list.String):
21370 * microbenchmarks/is-symbol.js: Added.
21373 2016-09-19 Saam Barati <sbarati@apple.com>
21375 Make HasOwnProperty faster
21376 https://bugs.webkit.org/show_bug.cgi?id=161708
21378 Reviewed by Geoffrey Garen.
21380 * microbenchmarks/has-own-property-name-cache.js: Added.
21382 * stress/has-own-property-cache-basics.js: Added.
21385 * stress/has-own-property-name-cache-string-keys.js: Added.
21388 * stress/has-own-property-name-cache-symbol-keys.js: Added.
21391 * stress/has-own-property-name-cache-symbols-and-strings.js: Added.
21395 2016-09-19 Benjamin Poulain <bpoulain@apple.com>
21397 [JSC] Make the rounding-related nodes support any type
21398 https://bugs.webkit.org/show_bug.cgi?id=161895
21400 Reviewed by Geoffrey Garen.
21402 * stress/arith-ceil-on-various-types.js: Added.
21403 * stress/arith-floor-on-various-types.js: Added.
21404 * stress/arith-round-on-various-types.js: Added.
21405 * stress/arith-trunc-on-various-types.js: Added.
21407 2016-09-18 Yusuke Suzuki <utatane.tea@gmail.com>
21409 [JSC] Do not need to use defineProperty to define methods for object literals
21410 https://bugs.webkit.org/show_bug.cgi?id=162111
21412 Reviewed by Saam Barati.
21414 * stress/object-literal-methods.js: Added.
21416 (throw.new.Error.let.object.get name):
21418 (shouldBe.let.object.get name):
21419 (shouldBe.let.object.get prototype):
21420 (shouldBe.let.object.get 42):
21422 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
21424 [DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
21425 https://bugs.webkit.org/show_bug.cgi?id=162000
21427 Reviewed by Filip Pizlo.
21429 * microbenchmarks/is-array-for-array.js: Added.
21431 * microbenchmarks/is-array-for-mixed-case.js: Added.
21433 * microbenchmarks/is-array-for-non-array-object.js: Added.
21435 * microbenchmarks/is-array-for-proxy.js: Added.
21437 (isArray.proxy.throw.new.Error.isArray):
21438 (isArray.proxy.throw.new.Error):
21440 2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
21442 Unreviewed, gardening test262 results
21444 Some tests are now passed with JSC, but marked as failed.
21448 2016-09-16 Joseph Pecoraro <pecoraro@apple.com>
21450 test262: Various Constructors length properties should be configurable
21451 https://bugs.webkit.org/show_bug.cgi?id=161998
21453 Reviewed by Saam Barati.
21457 2016-09-15 Commit Queue <commit-queue@webkit.org>
21459 Unreviewed, rolling out r205931.
21460 https://bugs.webkit.org/show_bug.cgi?id=162021
21462 Tests for this change fail on 32-bit JSC bots (Requested by
21463 ryanhaddad on #webkit).
21465 Reverted changeset:
21467 "[JSC] Make the rounding-related nodes support any type"
21468 https://bugs.webkit.org/show_bug.cgi?id=161895
21469 http://trac.webkit.org/changeset/205931
21471 2016-09-15 Joseph Pecoraro <pecoraro@apple.com>
21473 test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
21474 https://bugs.webkit.org/show_bug.cgi?id=162013
21476 Reviewed by Saam Barati.
21478 * stress/es6-default-parameters.js:
21481 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
21483 ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
21484 https://bugs.webkit.org/show_bug.cgi?id=162003
21486 Reviewed by Saam Barati.
21488 * stress/spread-calling.js:
21491 2016-09-14 Michael Saboff <msaboff@apple.com>
21493 YARR doesn't check for invalid flags for literal regular expressions
21494 https://bugs.webkit.org/show_bug.cgi?id=161995
21496 Reviewed by Mark Lam.
21500 * stress/regress-161995.js: Added.
21504 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
21506 test262: TypedArray constructors length should be 3 and configurable
21507 https://bugs.webkit.org/show_bug.cgi?id=161955
21509 Reviewed by Mark Lam.
21513 2016-09-14 Benjamin Poulain <bpoulain@apple.com>
21515 [JSC] Make the rounding-related nodes support any type
21516 https://bugs.webkit.org/show_bug.cgi?id=161895
21518 Reviewed by Geoffrey Garen.
21520 * stress/arith-ceil-on-various-types.js: Added.
21521 * stress/arith-floor-on-various-types.js: Added.
21522 * stress/arith-round-on-various-types.js: Added.
21523 * stress/arith-trunc-on-various-types.js: Added.
21525 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
21527 TaggedTemplateString function calls should emit tail position calls
21528 https://bugs.webkit.org/show_bug.cgi?id=161948
21530 Reviewed by Yusuke Suzuki.
21532 * stress/tail-call-recognize.js:
21534 Ensure a tagged template string function call is tail call.
21539 2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
21541 test262: Array.prototype.slice should always set length
21542 https://bugs.webkit.org/show_bug.cgi?id=161953
21544 Reviewed by Mark Lam.
21548 2016-09-13 JF Bastien <jfbastien@apple.com>
21550 Support jsc shell builtin `read`
21551 https://bugs.webkit.org/show_bug.cgi?id=161662
21553 Reviewed by Keith Miller.
21555 * stress/jsc-read.js: Added.
21556 (test): test `read` and `readFile` shell builtins, in string and binary mode.
21558 2016-09-12 Skachkov Oleksandr <gskachkov@gmail.com>
21560 ES6: Classes: Should be allowed to create a static method with name "arguments"
21561 https://bugs.webkit.org/show_bug.cgi?id=152985
21563 Reviewed by Keith Miller.
21567 2016-09-12 Saam Barati <sbarati@apple.com>
21569 Speed up Function.prototype.bind a bit by making it a builtin
21570 https://bugs.webkit.org/show_bug.cgi?id=161879
21572 Reviewed by Filip Pizlo.
21574 * microbenchmarks/function-bind-inlining.js: Added.
21579 * microbenchmarks/function-bind-no-inlining.js: Added.
21585 2016-09-12 Saam Barati <sbarati@apple.com>
21587 HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
21588 https://bugs.webkit.org/show_bug.cgi?id=161640
21590 Reviewed by Geoffrey Garen.
21592 * microbenchmarks/map-rehash.js: Added.
21593 * stress/map-delete.js: Added.
21595 * stress/map-rehash-2.js: Added.
21597 * stress/map-rehash.js: Added.
21600 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
21602 Unreviewed, fix tests for different libm environments
21603 https://bugs.webkit.org/show_bug.cgi?id=161857
21605 * stress/ftl-arithtan.js:
21607 2016-09-12 Benjamin Poulain <bpoulain@apple.com>
21609 [JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
21610 https://bugs.webkit.org/show_bug.cgi?id=161671
21612 Reviewed by Geoffrey Garen.
21614 * stress/get-array-length-on-undecided.js: Added.
21616 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
21618 [DFG][FTL] Add ArithTan
21619 https://bugs.webkit.org/show_bug.cgi?id=161857
21621 Reviewed by Filip Pizlo.
21623 * microbenchmarks/tan.js: Added.
21624 * stress/arith-tan-on-various-types.js: Added.
21625 (let.validInputTypedTestCases.validInputTestCases.map):
21627 (opaqueTanNoArgument):
21629 (opaqueAllTypesTan):
21630 (testAllTypesCall):
21631 (testTangleTypeCall):
21633 (opaqueTanForSideEffects):
21634 (testSideEffect.let.testObject.valueOf):
21637 (testCSE.let.testObject.valueOf):
21640 (testDCE.let.testObject.valueOf):
21642 (testException.opaqueTanWithException):
21644 * stress/ftl-arithtan.js: Added.
21647 2016-09-12 Saam Barati <sbarati@apple.com>
21649 MapHash should do constant folding when it has a constant argument and its legal to hash that value
21650 https://bugs.webkit.org/show_bug.cgi?id=161639
21652 Reviewed by Filip Pizlo.
21654 * microbenchmarks/map-constant-key.js: Added.
21659 2016-09-12 Michael Saboff <msaboff@apple.com>
21661 JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
21662 https://bugs.webkit.org/show_bug.cgi?id=161863
21664 Reviewed by Saam Barati.
21667 Disabled Bugs/bug56026_trycatch.js.
21669 2016-09-09 Michael Saboff <msaboff@apple.com>
21671 Unreviewed, rolling r205759 back in with a fix.
21673 The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
21674 should be named "toString.baseline-jsc".
21676 * ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
21677 * ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
21679 2016-09-09 Michael Saboff <msaboff@apple.com>
21681 Disable three flakey Chakra Tests
21682 https://bugs.webkit.org/show_bug.cgi?id=161807
21684 Reviewed by Saam Barati.
21686 * ChakraCore.yaml: Disabled the flakey tests
21687 ChakraCore/test/Array/protoLookup_native.js
21688 ChakraCore/test/LetConst/delete.js
21689 ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
21691 2016-09-08 Saam Barati <sbarati@apple.com>
21693 We should inline operationConvertJSValueToBoolean into JIT code
21694 https://bugs.webkit.org/show_bug.cgi?id=161729
21696 Reviewed by Filip Pizlo.
21698 * stress/value-to-boolean.js: Added.
21704 2016-09-08 Mark Lam <mark.lam@apple.com>
21706 REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
21707 https://bugs.webkit.org/show_bug.cgi?id=161756
21709 Reviewed by Saam Barati.
21711 It looks like the 32-bit JSC bot is just too slow at running this test with the
21712 dfg-maximal-flush-validate-no-cjit configuration. We'll try excluding that
21715 * stress/rest-parameter-many-arguments.js:
21717 2016-09-08 JF Bastien <jfbastien@apple.com>
21719 Delete older WebAssembly tests
21720 https://bugs.webkit.org/show_bug.cgi?id=161758
21722 Reviewed by Filip Pizlo.
21724 They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
21726 * stress/wasm-arithmetic-float32.js: Removed.
21727 * stress/wasm-arithmetic-float64.js: Removed.
21728 * stress/wasm-arithmetic-int32.js: Removed.
21729 * stress/wasm-calls.js: Removed.
21730 * stress/wasm-comma.js: Removed.
21731 * stress/wasm-control-flow.js: Removed.
21732 * stress/wasm-globals.js: Removed.
21733 * stress/wasm-linear-memory.js: Removed.
21734 * stress/wasm-locals.js: Removed.
21735 * stress/wasm-relational.js: Removed.
21736 * stress/wasm-type-conversion.js: Removed.
21737 * stress/wasm/arithmetic-float32.wasm: Removed.
21738 * stress/wasm/arithmetic-float64.wasm: Removed.
21739 * stress/wasm/arithmetic-int32.wasm: Removed.
21740 * stress/wasm/calls.wasm: Removed.
21741 * stress/wasm/comma.wasm: Removed.
21742 * stress/wasm/control-flow.wasm: Removed.
21743 * stress/wasm/globals.wasm: Removed.
21744 * stress/wasm/linear-memory.wasm: Removed.
21745 * stress/wasm/locals.wasm: Removed.
21746 * stress/wasm/relational.wasm: Removed.
21747 * stress/wasm/type-conversion.wasm: Removed.
21749 2016-09-08 Per Arne Vollan <pvollan@apple.com>
21751 [Win] Exception fuzz tests fail
21752 https://bugs.webkit.org/show_bug.cgi?id=140928
21754 Reviewed by Mark Lam.
21758 * exceptionFuzz.yaml:
21760 2016-09-06 Saam Barati <sbarati@apple.com>
21762 ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
21763 https://bugs.webkit.org/show_bug.cgi?id=161558
21765 Reviewed by Benjamin Poulain.
21767 * stress/proxy-get-prototype-of.js:
21768 * stress/proxy-set-prototype-of.js:
21769 (let.handler.setPrototypeOf): Deleted.
21770 * stress/proxy-underscore-proto.js: Added.
21773 2016-09-06 Saam Barati <sbarati@apple.com>
21775 Make JSMap and JSSet faster
21776 https://bugs.webkit.org/show_bug.cgi?id=160989
21778 Reviewed by Filip Pizlo.
21780 * microbenchmarks/dense-set.js: Added.
21782 * microbenchmarks/large-map-iteration-with-additions.js: Added.
21785 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
21788 * microbenchmarks/large-map-iteration.js: Added.
21791 * microbenchmarks/map-get-get-cse.js: Added.
21794 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
21797 * microbenchmarks/sparse-set.js: Added.
21799 * stress/map-cse-correctness.js: Added.
21804 * stress/map-iteration.js: Added.
21825 2016-09-06 Benjamin Poulain <bpoulain@apple.com>
21827 [JSC] Make ArithClz32 work with Cell arguments
21828 https://bugs.webkit.org/show_bug.cgi?id=161369
21830 Reviewed by Geoffrey Garen.
21832 * stress/arith-clz32-on-various-types.js: Added.
21834 2016-09-06 Commit Queue <commit-queue@webkit.org>
21836 Unreviewed, rolling out r205504.
21837 https://bugs.webkit.org/show_bug.cgi?id=161645
21839 Broke the iOS device build (Requested by ryanhaddad on
21842 Reverted changeset:
21844 "Make JSMap and JSSet faster"
21845 https://bugs.webkit.org/show_bug.cgi?id=160989
21846 http://trac.webkit.org/changeset/205504
21848 2016-09-06 Saam Barati <sbarati@apple.com>
21850 Make JSMap and JSSet faster
21851 https://bugs.webkit.org/show_bug.cgi?id=160989
21853 Reviewed by Filip Pizlo.
21855 * microbenchmarks/dense-set.js: Added.
21857 * microbenchmarks/large-map-iteration-with-additions.js: Added.
21860 * microbenchmarks/large-map-iteration-with-mutation.js: Added.
21863 * microbenchmarks/large-map-iteration.js: Added.
21866 * microbenchmarks/map-get-get-cse.js: Added.
21869 * microbenchmarks/map-has-get-cse-opportunity.js: Added.
21872 * microbenchmarks/sparse-set.js: Added.
21874 * stress/map-cse-correctness.js: Added.
21879 * stress/map-iteration.js: Added.
21900 2016-08-31 Filip Pizlo <fpizlo@apple.com>
21902 Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
21903 https://bugs.webkit.org/show_bug.cgi?id=160125
21905 Reviewed by Geoffrey Garen and Keith Miller.
21907 Most of the things I did properly covered by existing tests, but I found some simple cases of
21908 unshifting that had sketchy coverage.
21910 * stress/array-storage-array-unshift.js: Added.
21911 * stress/contiguous-array-unshift.js: Added.
21912 * stress/double-array-unshift.js: Added.
21913 * stress/int32-array-unshift.js: Added.
21915 2016-09-02 Michael Saboff <msaboff@apple.com>
21917 Unreviewed fix after importing Chakra test
21919 * ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
21920 test contained tab characters. I removed the tabs before landing. This test depended
21921 on the tab characters and now fails after they were removed.
21924 2016-09-01 Michael Saboff <msaboff@apple.com>
21926 Import Chakra tests to JSC
21927 https://bugs.webkit.org/show_bug.cgi?id=154697
21929 Reviewed by Saam Barati.
21931 Added Chakra tests. All these tests are under Chakra/test. This is the same layout
21932 for tests in the Chakra tree.
21934 Created a ChakraCore.yaml file to be used with run-jsc-stress-tests. This file contains
21935 the tests that are run when the original Chakra runtests.py script is run. That script
21936 is the test driver for *nix platforms and does not attempt to run all tests or all
21937 variations of tests. The runtest.py driver consults rlexe.xml files in each test
21938 subdirectory to determine the test to run, the options to pass to the test and how to
21939 determine pass/fail of the test. With runtests.py as the start, tests that didn't
21940 pass directly where either skipped, with a message describing why or through
21941 adjustments to the test infrastructure, as described below, where made to pass.
21943 The only modification to the test infrastrucutre are:
21945 1) Added simple mapping of Chakra expected exception text to JSC expected text in
21946 test/UnitTestFramework/UnitTestFramework.js. It would make sense to also
21947 map some JSC specific exception text to more generic text for the cases where
21948 that text contains indetifier names or other source specific strings and the
21949 Chakra equivolent exception texts are generic.
21951 2) Created JSC specific expected text files where it is clear that the text work
21952 as expected on JSC but the test output is different. Typically the differences
21953 fall into three categories, different exception output, different output from
21954 toString() of a function, slight numeric differences, and test that rely on
21957 3) Stripped the CR's from the CR-LF line terminations of the files.
21959 No actual test .js files were modified.
21961 * ChakraCore: Added.
21962 * ChakraCore.yaml: Added.
21963 * ChakraCore/CONTRIBUTING.md: Added.
21964 * ChakraCore/LICENSE.txt: Added.
21965 * ChakraCore/README.md: Added.
21966 * ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
21967 * ChakraCore/test: Added this directory and the tests included therein.
21969 2016-09-01 JF Bastien <jfbastien@apple.com>
21971 GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
21972 https://bugs.webkit.org/show_bug.cgi?id=160922
21974 Reviewed by Keith Miller.
21976 Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
21977 The value profile is used by the calc functions, which do some mild math with the result.
21978 These benchmarks get ~4% faster with value profiling.
21980 * microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
21982 (A.prototype.set value):
21983 (A.prototype.get value):
21984 (B.prototype.set value):
21985 (B.prototype.get value):
21988 * microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
21990 (A.prototype.set value):
21991 (A.prototype.get value):
21992 (B.prototype.set value):
21993 (B.prototype.get value):
21996 * microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
21999 (A.prototype.set v):
22000 (A.prototype.get v):
22001 (B.prototype.set v):
22002 (B.prototype.get v):
22005 * microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
22008 (A.prototype.set v):
22009 (A.prototype.get v):
22010 (B.prototype.set v):
22011 (B.prototype.get v):
22015 2016-09-01 Benjamin Poulain <bpoulain@apple.com>
22017 arith-abs-on-various-types.js is flaky
22021 * stress/arith-abs-on-various-types.js:
22022 Two compilation is too small for the worst case.
22023 Math.abs() can be typed integer->number->untyped if we are very unlucky.
22025 2016-09-01 Filip Pizlo <fpizlo@apple.com>
22027 ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
22028 https://bugs.webkit.org/show_bug.cgi?id=161492
22030 Reviewed by Mark Lam.
22032 This bug affected function->activation references but not object->object field references,
22033 because object->object field references are !neededForMaterialization(). So, the object
22034 test always passed but the activation/function test used to always fail. It passes now.
22036 * stress/materialize-activation-referenced-from-phantom-function.js: Added.
22042 * stress/materialize-object-referenced-from-phantom-object.js: Added.
22047 2016-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
22049 stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
22050 https://bugs.webkit.org/show_bug.cgi?id=161436
22052 Reviewed by Filip Pizlo.
22054 The test checks Math.random() correctly produces 53bit random values.
22055 The test can fail by design, but this should be fairly rare.
22057 However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
22058 increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
22060 And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
22061 and reproduce the situation easily.
22063 * stress/random-53bit.js:
22066 2016-08-29 Benjamin Poulain <bpoulain@apple.com>
22068 [JSC] Improve ArithAbs with polymorphic input
22069 https://bugs.webkit.org/show_bug.cgi?id=161286
22071 Reviewed by Saam Barati.
22073 * stress/arith-abs-on-various-types.js: Added.
22076 * stress/arith-cos-on-various-types.js:
22077 * stress/arith-fround-on-various-types.js:
22078 * stress/arith-log-on-various-types.js:
22079 * stress/arith-sin-on-various-types.js:
22080 * stress/arith-sqrt-on-various-types.js:
22081 Extend the existing tests to cover the DCE case.
22083 2016-08-26 Benjamin Poulain <benjamin@webkit.org>
22085 [JSC] Implement CompareStrictEq(String, Untyped) in FTL
22086 https://bugs.webkit.org/show_bug.cgi?id=161229
22088 Reviewed by Geoffrey Garen.
22090 * stress/compare-strict-eq-on-various-types.js: Added.
22092 2016-08-26 Yusuke Suzuki <utatane.tea@gmail.com>
22094 [ES6] newPromiseCapabilities should check the given argument is constructor
22095 https://bugs.webkit.org/show_bug.cgi?id=161226
22097 Reviewed by Mark Lam.
22099 The arrow function should not be a constructor. So the error should be raised.
22101 * stress/new-promise-capabilities-requires-constructor.js: Added.
22104 2016-08-25 Benjamin Poulain <bpoulain@apple.com>
22106 [JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
22107 https://bugs.webkit.org/show_bug.cgi?id=161181
22109 Reviewed by Geoffrey Garen.
22111 Extend the tests to constants.
22112 Add no-argument cases where needed.
22114 * stress/arith-cos-on-various-types.js:
22115 * stress/arith-fround-on-various-types.js:
22116 * stress/arith-log-on-various-types.js:
22117 * stress/arith-sin-on-various-types.js:
22118 * stress/arith-sqrt-on-various-types.js:
22120 2016-08-25 Yusuke Suzuki <utatane.tea@gmail.com>
22122 [DFG][FTL] Implement ES6 Generators in DFG / FTL
22123 https://bugs.webkit.org/show_bug.cgi?id=152723
22125 Reviewed by Filip Pizlo.
22127 * stress/generator-fib-ftl-and-array.js: Added.
22129 * stress/generator-fib-ftl-and-object.js: Added.
22131 * stress/generator-fib-ftl-and-string.js: Added.
22133 * stress/generator-fib-ftl.js: Added.
22135 * stress/generator-frame-empty.js: Added.
22138 * stress/generator-reduced-save-point-put-to-scope.js: Added.
22141 * stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
22145 2016-08-25 JF Bastien <jfbastien@apple.com>
22147 TryGetById should have a ValueProfile so that it can predict its output type
22148 https://bugs.webkit.org/show_bug.cgi?id=160921
22150 Reviewed by Saam Barati.
22152 * microbenchmarks/try-get-by-id-basic.js: Added.
22154 (const.bench.f.const.fooPlusBar.createBuiltin):
22155 * microbenchmarks/try-get-by-id-polymorphic.js: Added.
22157 (fooPlusBar.createBuiltin):
22160 2016-08-25 Caio Lima <ticaiolima@gmail.com>
22162 NewRegexp should not prevent inlining
22163 https://bugs.webkit.org/show_bug.cgi?id=154808
22165 Reviewed by Geoffrey Garen.
22167 Added test where functions with NewRegExp can be inlined right now.
22169 * stress/new-regex-inline.js: Added.
22171 (testRegexpInline):
22174 (inlineRegexpNotGlobal):
22175 (toInlineRecursive):
22176 (regexpContainsRecursive):
22178 2016-08-24 Benjamin Poulain <benjamin@webkit.org>
22180 [JSC] Make FRound work with any type
22181 https://bugs.webkit.org/show_bug.cgi?id=161129
22183 Reviewed by Geoffrey Garen.
22185 * stress/arith-fround-on-various-types.js: Added.
22187 2016-08-24 Filip Pizlo <fpizlo@apple.com>
22189 Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
22191 * stress/array-storage-array-unshift.js: Removed.
22192 * stress/contiguous-array-unshift.js: Removed.
22193 * stress/double-array-unshift.js: Removed.
22194 * stress/int32-array-unshift.js: Removed.
22196 2016-08-24 Skachkov Oleksandr <gskachkov@gmail.com>
22198 [ES2016] Allow assignment in for-in head in not-strict mode
22199 https://bugs.webkit.org/show_bug.cgi?id=160955
22201 Reviewed by Saam Barati.
22203 * stress/for-in-tests.js:
22208 2016-08-23 Benjamin Poulain <benjamin@webkit.org>
22210 [JSC] Make ArithLog works with any type
22211 https://bugs.webkit.org/show_bug.cgi?id=161110
22213 Reviewed by Geoffrey Garen.
22215 * stress/arith-log-on-various-types.js: Added.
22217 2016-08-23 Saam Barati <sbarati@apple.com>
22219 JSC should have a "microbenchmarks" directory instead of "regress" directory
22220 https://bugs.webkit.org/show_bug.cgi?id=161096
22222 Rubber stamped by Mark Lam.
22224 * microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
22226 2016-08-23 Keith Miller <keith_miller@apple.com>
22228 %TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
22229 https://bugs.webkit.org/show_bug.cgi?id=161031
22230 <rdar://problem/27937019>
22232 Reviewed by Geoffrey Garen.
22234 * stress/typedarray-slice.js:
22237 (testSpeciesWithTransferring):
22239 2016-08-22 Filip Pizlo <fpizlo@apple.com>
22241 Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression
22242 https://bugs.webkit.org/show_bug.cgi?id=160125
22244 Reviewed by Geoffrey Garen.
22246 Most of the things I did properly covered by existing tests, but I found some simple cases of
22247 unshifting that had sketchy coverage.
22249 * stress/array-storage-array-unshift.js: Added.
22250 * stress/contiguous-array-unshift.js: Added.
22251 * stress/double-array-unshift.js: Added.
22252 * stress/int32-array-unshift.js: Added.
22254 2016-08-23 Keith Miller <keith_miller@apple.com>
22256 Update/add new test262 tests
22257 https://bugs.webkit.org/show_bug.cgi?id=161098
22259 Reviewed by Saam Barati.
22262 * test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
22263 * test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
22264 * test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
22265 * test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
22267 * test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
22268 * test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
22269 * test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
22270 * test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
22271 (AsyncFunction.async.foo):
22272 * test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
22273 (AsyncFunction.async):
22274 * test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
22276 * test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
22277 (AsyncFunction.async.foo):
22278 * test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
22279 (AsyncFunction.async.foo):
22280 * test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
22281 (AsyncFunction.async.foo):
22282 * test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
22283 (AsyncFunction.async.foo):
22284 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
22285 (AsyncFunction.async.foo):
22286 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
22287 (AsyncFunction.async.foo):
22288 * test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
22289 (AsyncFunction.async.foo):
22290 * test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
22292 * test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
22294 * test262/test/built-ins/AsyncFunction/instance-length.js: Added.
22298 * test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
22300 * test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
22301 * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-after-integer-byteoffset.js.
22302 * test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
22303 * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-after-integer-byteoffset.js.
22304 * test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
22305 * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-after-integer-byteoffset.js.
22306 * test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
22307 * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-after-integer-byteoffset.js.
22308 * test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
22309 * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-after-integer-byteoffset.js.
22310 * test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
22311 * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-after-integer-byteoffset.js.
22312 * test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
22313 * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-after-integer-byteoffset.js.
22314 * test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
22315 * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-after-integer-byteoffset.js.
22316 * test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
22317 * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-after-integer-byteoffset.js.
22318 * test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
22319 * test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
22320 * test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
22321 * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-after-integer-byteoffset.js.
22322 * test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
22323 * test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
22324 * test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
22325 * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-after-integer-byteoffset.js.
22326 * test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
22327 * test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
22328 * test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
22329 * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-after-integer-byteoffset.js.
22330 * test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
22331 * test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
22332 * test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
22333 * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-after-integer-byteoffset.js.
22334 * test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
22335 * test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
22336 * test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
22337 * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-after-integer-byteoffset.js.
22338 * test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
22339 * test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
22340 * test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
22341 * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-after-integer-byteoffset.js.
22342 * test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
22343 * test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
22344 * test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
22345 * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-toindex-byteoffset.js: Renamed from JSTests/test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-after-integer-byteoffset.js.
22346 * test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
22347 * test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
22348 * test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
22349 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
22351 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
22353 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
22355 * test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
22357 * test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
22359 * test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
22361 * test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
22363 * test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
22365 (let.g.async.string_appeared_here):
22366 * test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
22368 * test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
22370 * test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
22371 (uncoercible.valueOf):
22373 * test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
22375 * test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
22376 * test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
22378 * test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
22380 * test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
22382 * test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
22384 * test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
22385 * test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
22386 * test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
22387 * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
22388 * test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
22391 * test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
22392 * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
22393 * test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
22394 * test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
22395 * test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
22396 * test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
22397 * test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
22398 * test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
22399 (badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
22400 (badProxyHandlers.allowProxyTraps.ownKeys):
22401 * test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
22402 (setPrototypeOf): Deleted.
22403 * test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
22404 (target.new.Proxy.Object.create.isExtensible):
22405 (target.new.Proxy.Object.create.getPrototypeOf):
22406 (target.new.Proxy.Object.create):
22408 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
22410 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
22412 * test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
22413 (setPrototypeOf): Deleted.
22414 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
22415 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
22418 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
22421 * test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
22423 * test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
22424 (setPrototypeOf): Deleted.
22425 * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
22428 * test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
22432 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
22433 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
22435 * test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
22436 * test262/test/built-ins/RegExp/lastIndex.js: Added.
22437 * test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
22438 * test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
22440 * test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
22442 * test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
22443 * test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
22444 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
22446 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
22448 * test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
22449 * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
22450 * test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
22451 * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
22452 (__re.hasOwnProperty): Deleted.
22453 (__re.propertyIsEnumerable): Deleted.
22454 (count.0): Deleted.
22455 * test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
22456 (__re.hasOwnProperty): Deleted.
22458 * test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
22459 * test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
22461 * test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
22463 * test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
22464 * test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
22465 * test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
22466 * test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
22468 * test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
22470 * test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
22471 * test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
22472 * test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
22473 * test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
22474 * test262/test/built-ins/RegExp/prototype/source/value.js: Added.
22475 * test262/test/built-ins/RegExp/prototype/sticky/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-invalid-obj.js.
22476 * test262/test/built-ins/RegExp/prototype/sticky/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-non-obj.js.
22477 * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
22478 * test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
22479 * test262/test/built-ins/RegExp/prototype/unicode/this-val-invalid-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-invald-obj.js.
22480 * test262/test/built-ins/RegExp/prototype/unicode/this-val-non-obj.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-non-obj.js.
22481 * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
22482 * test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
22483 * test262/test/built-ins/String/numeric-properties.js: Added.
22484 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
22485 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
22486 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
22487 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
22488 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
22490 (compareFTPtoFormat):
22491 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
22492 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
22495 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
22496 * test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
22497 * test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
22498 * test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
22499 * test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
22501 (compareFTPtoFormat):
22502 * test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
22503 * test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
22506 * test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
22507 * test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
22508 * test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
22510 * test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
22512 * test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
22514 * test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
22516 * test262/test/language/arguments-object/unmapped/via-strict.js: Renamed from JSTests/test262/test/language/arguments-object/10.6-10-c-ii-2-s.js.
22518 * test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
22520 * test262/test/language/eval-code/direct/super-call-arrow.js: Added.
22522 * test262/test/language/eval-code/direct/super-call-fn.js: Added.
22524 * test262/test/language/eval-code/direct/super-call.js: Added.
22526 * test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
22528 * test262/test/language/eval-code/direct/super-prop-method.js: Added.
22530 * test262/test/language/eval-code/direct/super-prop.js: Added.
22532 * test262/test/language/eval-code/indirect/super-call.js: Added.
22535 * test262/test/language/eval-code/indirect/super-prop.js: Added.
22538 * test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
22539 (assert.sameValue):
22540 * test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
22541 * test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
22543 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
22545 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
22547 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
22549 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
22551 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
22553 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
22555 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
22557 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
22559 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
22561 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
22563 * test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
22565 * test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
22567 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
22569 * test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
22571 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
22573 * test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
22575 * test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
22577 * test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
22579 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
22581 * test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
22583 * test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
22585 * test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
22587 * test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
22589 * test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
22591 * test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
22594 * test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
22596 * test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
22599 * test262/test/language/expressions/await/await-awaits-thenables.js: Added.
22602 * test262/test/language/expressions/await/await-in-function.js: Added.
22604 * test262/test/language/expressions/await/await-in-generator.js: Added.
22606 * test262/test/language/expressions/await/await-in-global.js: Added.
22607 * test262/test/language/expressions/await/await-in-nested-function.js: Added.
22610 * test262/test/language/expressions/await/await-in-nested-generator.js: Added.
22613 * test262/test/language/expressions/await/await-throws-rejections.js: Added.
22615 * test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
22617 * test262/test/language/expressions/await/no-operand.js: Added.
22619 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
22621 * test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
22623 * test262/test/language/expressions/call/trailing-comma.js: Added.
22625 * test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
22627 * test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
22629 * test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
22632 * test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
22633 (assert.sameValue):
22634 * test262/test/language/expressions/function/params-trailing-comma.js: Added.
22635 * test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
22637 * test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
22639 * test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
22642 * test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
22643 (assert.sameValue):
22644 * test262/test/language/expressions/generators/params-trailing-comma.js: Added.
22645 * test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
22646 * test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
22648 (child.async.method):
22649 * test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
22651 (child.async.method.x.super.method):
22652 * test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
22654 * test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
22656 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
22658 * test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
22660 * test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
22662 * test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
22664 * test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
22666 * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
22668 * test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
22669 (async.foo.foo.super):
22670 * test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
22671 (obj.async.method):
22672 * test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
22675 * test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
22678 * test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
22680 * test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
22683 * test262/test/language/global-code/decl-func-dup.js: Renamed from JSTests/test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js.
22685 * test262/test/language/global-code/decl-func.js: Added.
22687 * test262/test/language/global-code/decl-lex-configurable-global.js: Added.
22688 * test262/test/language/global-code/decl-lex-deletion.js: Added.
22690 * test262/test/language/global-code/decl-lex-restricted-global.js: Added.
22691 * test262/test/language/global-code/decl-lex.js: Added.
22693 * test262/test/language/global-code/decl-var.js: Added.
22694 * test262/test/language/global-code/return.js: Added.
22695 * test262/test/language/global-code/script-decl-func-dups.js: Added.
22696 * test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
22697 * test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
22698 * test262/test/language/global-code/script-decl-func.js: Added.
22699 * test262/test/language/global-code/script-decl-lex-deletion.js: Added.
22700 * test262/test/language/global-code/script-decl-lex-lex.js: Added.
22702 * test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
22703 * test262/test/language/global-code/script-decl-lex-var.js: Added.
22705 * test262/test/language/global-code/script-decl-lex.js: Added.
22706 * test262/test/language/global-code/script-decl-var-collision.js: Added.
22708 * test262/test/language/global-code/script-decl-var-err.js: Added.
22709 * test262/test/language/global-code/script-decl-var.js: Added.
22710 * test262/test/language/global-code/super-call-arrow.js: Added.
22711 * test262/test/language/global-code/super-call.js: Added.
22712 * test262/test/language/global-code/super-prop-arrow.js: Added.
22713 * test262/test/language/global-code/super-prop.js: Added.
22714 * test262/test/language/global-code/yield-non-strict.js: Added.
22716 * test262/test/language/global-code/yield-strict.js: Added.
22717 * test262/test/language/literals/regexp/lastIndex.js: Added.
22718 * test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
22719 * test262/test/language/literals/regexp/y-assertion-start.js: Added.
22720 * test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
22721 * test262/test/language/module-code/instn-star-err-not-found.js:
22722 * test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
22723 * test262/test/language/module-code/parse-err-return.js: Added.
22724 * test262/test/language/module-code/parse-err-yield.js: Added.
22725 * test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
22726 * test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
22728 * test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
22730 * test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
22732 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
22734 * test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
22736 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
22738 * test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
22740 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
22742 * test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
22744 * test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
22746 * test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
22748 * test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
22750 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
22752 * test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
22754 * test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
22756 * test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
22759 * test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
22762 * test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
22765 * test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
22768 * test262/test/language/statements/async-function/evaluation-body.js: Added.
22770 * test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
22773 * test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
22775 * test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
22777 * test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
22779 * test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
22781 * test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
22783 * test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
22785 * test262/test/language/statements/async-function/syntax-declaration.js: Added.
22788 * test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
22789 (Foo.prototype.async.method):
22791 * test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
22792 (Foo.prototype.async.bar):
22794 * test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
22795 (Foo.prototype.async.foo):
22797 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
22798 (Foo.prototype.async.foo):
22800 * test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
22801 (Foo.prototype.async.foo):
22803 * test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
22804 (Foo.prototype.async.foo):
22806 * test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
22807 (Foo.prototype.async.foo):
22809 * test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
22810 (Foo.prototype.async.foo):
22812 * test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
22815 * test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
22816 (Foo.prototype.async.foo):
22818 * test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
22819 (A.prototype.async.method):
22821 (B.prototype.async.method):
22823 * test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
22824 (A.prototype.async.method):
22826 (B.prototype.async.method):
22828 * test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
22832 * test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
22836 * test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
22839 * test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
22843 * test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
22845 * test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
22847 * test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
22850 * test262/test/language/statements/function/params-trailing-comma-length.js: Added.
22853 * test262/test/language/statements/function/params-trailing-comma.js: Added.
22856 * test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
22858 * test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
22860 * test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
22863 * test262/test/language/statements/generators/params-trailing-comma.js: Added.
22866 * test262/test262-Revision.txt:
22868 2016-08-23 Benjamin Poulain <bpoulain@apple.com>
22870 [JSC] Make Math.cos() and Math.sin() work with any argument type
22871 https://bugs.webkit.org/show_bug.cgi?id=161069
22873 Reviewed by Geoffrey Garen.
22875 * stress/arith-cos-on-various-types.js: Added.
22876 * stress/arith-sin-on-various-types.js: Added.
22878 2016-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
22880 [ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
22881 https://bugs.webkit.org/show_bug.cgi?id=161097
22883 Reviewed by Keith Miller.
22887 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
22889 [ES6] Modules' `export default function/class` should be declaration
22890 https://bugs.webkit.org/show_bug.cgi?id=160499
22892 Reviewed by Saam Barati.
22894 Add several module tests. And flip the failed tests flags in test262.
22896 * modules/export-default-function-name-in-assignment-expression.js: Added.
22898 * modules/export-default-function-name-in-class-declaration.js: Added.
22899 * modules/export-default-function-name-in-function-declaration.js: Added.
22901 * modules/export-default-function-name-in-generator-declaration.js: Added.
22903 * stress/method-name.js: Added.
22906 (testSyntaxError.Hello.prototype.hello.hello):
22907 (testSyntaxError.Hello):
22908 (SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
22909 (testSyntaxError.Hello.prototype.get hello):
22910 (testSyntaxError.Hello.prototype.set hello):
22913 2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
22915 [ES6] Module should not allow HTML comments
22916 https://bugs.webkit.org/show_bug.cgi?id=161041
22918 Reviewed by Saam Barati.
22920 * modules/html-comments.js: Added.
22924 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
22926 [DFG] Should not fixup AnyIntUse in 32_64
22927 https://bugs.webkit.org/show_bug.cgi?id=161029
22929 Reviewed by Saam Barati.
22931 * typeProfiler/int52-dfg.js: Added.
22934 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
22936 Unreviewed, rolling out r204697
22937 https://bugs.webkit.org/show_bug.cgi?id=161029
22939 * typeProfiler/int52-dfg.js: Removed.
22941 * typeProfiler/number-filter-dfg.js: Removed.
22944 2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
22946 [DFG] Should not fixup AnyIntUse in 32_64
22947 https://bugs.webkit.org/show_bug.cgi?id=161029
22949 Reviewed by Saam Barati.
22951 * typeProfiler/int52-dfg.js: Added.
22953 * typeProfiler/number-filter-dfg.js: Added.
22956 2016-08-19 Benjamin Poulain <bpoulain@apple.com>
22958 [JSC] ArithSqrt should work with any argument type
22959 https://bugs.webkit.org/show_bug.cgi?id=160954
22961 Reviewed by Saam Barati.
22963 * stress/arith-sqrt-on-various-types.js: Added.
22964 (let.validInputTypedTestCases.validInputTestCases.map):
22966 (opaqueAllTypesSqrt):
22967 (testAllTypesCall):
22968 (testSingleTypeCall):
22969 (opaqueSqrtForSideEffects):
22970 (testSideEffect.let.testObject.valueOf):
22972 (opaqueSqrtForCSE):
22973 (testCSE.let.testObject.valueOf):
22975 (testException.opaqueSqrtWithException):
22978 2016-08-19 Joseph Pecoraro <pecoraro@apple.com>
22980 Make custom Error properties (line, column, sourceURL) configurable and writable
22981 https://bugs.webkit.org/show_bug.cgi?id=160984
22982 <rdar://problem/27905979>
22984 Reviewed by Saam Barati.
22986 * stress/native-error-properties.js: Added.
22990 (checkEmptyErrorPropertiesDescriptors):
22991 (checkNonEmptyErrorPropertiesDescriptors):
22992 The spec only describes the "message" property, so
22993 ensure it has the right descriptor attributes.
22995 (checkErrorPropertiesWritable):
22996 Ensure common error property names are writable.
22997 In strict mode this would have thrown an exception
22998 if they were readonly.
23000 2016-08-18 Mark Lam <mark.lam@apple.com>
23002 ScopedArguments is using the wrong owner object for a write barrier.
23003 https://bugs.webkit.org/show_bug.cgi?id=160976
23004 <rdar://problem/27328506>
23006 Reviewed by Keith Miller.
23008 * stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
23010 2016-08-17 JF Bastien <jfbastien@apple.com>
23012 We allow assignments to const variables when in a for-in/for-of loop
23013 https://bugs.webkit.org/show_bug.cgi?id=156673
23015 Reviewed by Filip Pizlo.
23017 * stress/for-in-of-const.js: Added.
23022 2016-08-17 Mark Lam <mark.lam@apple.com>
23024 Remove an invalid assertion in the DFG backend's GetById emitter.
23025 https://bugs.webkit.org/show_bug.cgi?id=160925
23026 <rdar://problem/27248961>
23028 Reviewed by Filip Pizlo.
23030 * stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
23032 2016-08-16 Ryan Haddad <ryanhaddad@apple.com>
23034 Unreviewed, rolling out r204464.
23036 This is no longer needed after r204495.
23038 Reverted changeset:
23040 "Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
23041 https://bugs.webkit.org/show_bug.cgi?id=160662
23042 http://trac.webkit.org/changeset/204464
23044 2016-08-15 Ryan Haddad <ryanhaddad@apple.com>
23046 Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
23047 https://bugs.webkit.org/show_bug.cgi?id=160662
23049 Unreviewed test gardening.
23051 * mozilla/ecma/LexicalConventions/7.7.3.js:
23053 2016-08-14 Skachkov Oleksandr <gskachkov@gmail.com>
23055 [2016] Set correct status for test262 after implementation of Object.values&Object.entries
23056 https://bugs.webkit.org/show_bug.cgi?id=160844
23058 Reviewed by Saam Barati.
23060 Patch contains fix statuses of specs in the test262 test collection after implementation of
23061 Object.values and Object.entries functions. Also patch contains small fixes in tests of the
23062 tests for Object.values/entries functions.
23064 * stress/object-entries.js:
23065 (Object.getOwnPropertyDescriptor):
23066 * stress/object-values.js:
23067 (Object.getOwnPropertyDescriptor):
23070 2016-08-12 Saam Barati <sbarati@apple.com>
23072 Inline store loop for CopyRest in DFG and FTL for certain array modes
23073 https://bugs.webkit.org/show_bug.cgi?id=159612
23075 Reviewed by Filip Pizlo.
23077 * stress/rest-parameter-having-a-bad-time.js: Added.
23078 * stress/rest-parameter-many-arguments.js: Added.
23079 * stress/rest-parameter-various-types.js: Added.
23081 2016-08-12 Skachkov Oleksandr <gskachkov@gmail.com>
23083 [ES2016] Implement Object.entries
23084 https://bugs.webkit.org/show_bug.cgi?id=160412
23086 Reviewed by Saam Barati.
23088 Patch contains tests for Object.entries function and
23089 fix of wrong tests for Object.values function.
23091 * stress/object-entries.js:
23093 (string_appeared_here.forEach):
23094 (const.getInvokedFunctions.):
23095 (const.getInvokedFunctions):
23096 (Array.prototype.push):
23097 * stress/object-values.js:
23099 2016-08-11 Mark Lam <mark.lam@apple.com>
23101 OverridesHasInstance should not branch across register allocations.
23102 https://bugs.webkit.org/show_bug.cgi?id=160792
23103 <rdar://problem/27361778>
23105 Reviewed by Benjamin Poulain.
23107 * stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
23109 2016-08-11 Mark Lam <mark.lam@apple.com>
23111 The jsc shell's Element host constructor should throw if it fails to construct an object.
23112 https://bugs.webkit.org/show_bug.cgi?id=160773
23113 <rdar://problem/27328608>
23115 Reviewed by Saam Barati.
23117 * stress/generational-opaque-roots.js:
23119 2016-08-11 Mark Lam <mark.lam@apple.com>
23121 Disallow synchronous sweeping for eden GCs.
23122 https://bugs.webkit.org/show_bug.cgi?id=160716
23124 Reviewed by Geoffrey Garen.
23126 * stress/eden-gc-with-retired-blocks.js: Added.
23127 - This test is just in case we add back support for eden GCs with synchronous
23128 sweeping in the future.
23130 2016-08-10 Michael Saboff <msaboff@apple.com>
23132 Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
23133 https://bugs.webkit.org/show_bug.cgi?id=160749
23135 Reviewed by Filip Pizlo.
23137 New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
23138 stubs to be generated and then throws exceptions for those stub to handle
23139 to verify that they are properly handled.
23141 * stress/regress-160749.js: Added.
23142 (testCachedGetByVal.):
23143 (testCachedGetByVal.get for):
23144 (testCachedGetByVal):
23145 (testCachedPutByVal.):
23146 (testCachedPutByVal.set for):
23147 (testCachedPutByVal):
23149 2016-08-10 Mark Lam <mark.lam@apple.com>
23151 DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
23152 https://bugs.webkit.org/show_bug.cgi?id=160755
23153 <rdar://problem/27488507>
23155 Reviewed by Filip Pizlo.
23157 * stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
23159 2016-08-09 Skachkov Oleksandr <gskachkov@gmail.com>
23161 [ES2016] Implement Object.values
23162 https://bugs.webkit.org/show_bug.cgi?id=160410
23164 Reviewed by Saam Barati, Yusuke Suzuki.
23166 * stress/object-values.js: Added.
23168 (string_appeared_here.forEach):
23169 (const.getInvokedFunctions.):
23170 (const.getInvokedFunctions):
23171 (Array.prototype.push):
23173 2016-08-09 Saam Barati <sbarati@apple.com>
23175 JSBoundFunction should lazily generate its name string
23176 https://bugs.webkit.org/show_bug.cgi?id=160678
23177 <rdar://problem/27043194>
23179 Reviewed by Mark Lam.
23181 * stress/bound-function-lazy-name-generation.js: Added.
23187 2016-08-08 Mark Lam <mark.lam@apple.com>
23189 ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
23190 https://bugs.webkit.org/show_bug.cgi?id=160666
23192 Reviewed by Keith Miller.
23194 * stress/object-constructor-should-be-new-target-aware.js:
23196 2016-08-07 Yusuke Suzuki <utatane.tea@gmail.com>
23198 [ES6] Module namespace object should not allow unset IC
23199 https://bugs.webkit.org/show_bug.cgi?id=160553
23201 Reviewed by Saam Barati.
23203 * modules/namespace-object-get-property.js: Added.
23204 (import.as.ns.from.string_appeared_here.shouldThrow):
23205 * modules/namespace-object-has-property.js: Added.
23206 * modules/namespace-object-inline-caching.js: Added.
23207 (import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
23208 (shouldBe.lookup.lookup):
23210 * modules/namespace-object-inline-caching/a.js: Added.
23211 * modules/namespace-object-inline-caching/b.js: Added.
23212 * modules/namespace-object-try-get.js: Added.
23213 (import.as.ns.from.string_appeared_here.tryGetByIdText):
23214 (tryGetByIdTextStrict):
23215 * modules/namespace-object-typed-array-fast-path.js: Added.
23218 2016-08-05 Saam Barati <sbarati@apple.com>
23220 various math operations don't properly check for an exception after calling toNumber() on the lhs
23221 https://bugs.webkit.org/show_bug.cgi?id=160154
23223 Reviewed by Mark Lam.
23225 * stress/to-number-throws-correct-exception.js: Added.
23226 (test.let.test.runTest.):
23227 (test.let.test.runTest.get f):
23228 (test.let.test.runTest):
23232 (test2.runTest.get f):
23236 2016-08-05 Saam Barati <sbarati@apple.com>
23238 Assertion failure when accessing TDZ variable in catch through eval
23239 https://bugs.webkit.org/show_bug.cgi?id=160554
23241 Reviewed by Mark Lam and Keith Miller.
23243 * stress/catch-variables-under-tdz.js: Added.
23246 2016-08-04 Yusuke Suzuki <utatane.tea@gmail.com>
23248 [ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
23249 https://bugs.webkit.org/show_bug.cgi?id=160549
23251 Reviewed by Saam Barati.
23253 * modules/namespace-object-symbol-iterator-name.js: Added.
23256 2016-08-04 Keith Miller <keith_miller@apple.com>
23258 ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
23259 https://bugs.webkit.org/show_bug.cgi?id=160562
23261 Reviewed by Mark Lam.
23263 * stress/instanceof-late-constant-folding.js: Added.
23268 2016-08-04 Caitlin Potter <caitp@igalia.com>
23270 [JSC] fix generator-syntax.js JSTest again after yield grammar fix
23271 https://bugs.webkit.org/show_bug.cgi?id=160550
23273 Reviewed by Yusuke Suzuki.
23275 * stress/generator-syntax.js:
23276 (testYieldBindingIdentifier):
23278 2016-08-03 Caitlin Potter <caitp@igalia.com>
23280 Clarify SyntaxErrors around yield and unskip tests
23281 https://bugs.webkit.org/show_bug.cgi?id=158460
23283 Reviewed by Saam Barati.
23285 Fix and unskip tests which erroneously asserted that `yield` is not a
23286 valid BindingIdentifier, and improve error message for YieldExpressions
23287 occuring in Arrow formal parameters.
23289 * stress/generator-syntax.js:
23290 * stress/yield-out-of-generator.js:
23292 2016-08-03 Filip Pizlo <fpizlo@apple.com>
23294 REGRESSION(r203368): broke some test262 tests
23295 https://bugs.webkit.org/show_bug.cgi?id=160479
23297 Reviewed by Mark Lam.
23299 Added a stress test for this case, since we don't always run test262.
23301 * stress/freeze-setter.js: Added.
23304 2016-08-03 Saam Barati <sbarati@apple.com>
23306 Implement nested rest destructuring w.r.t the ES7 spec
23307 https://bugs.webkit.org/show_bug.cgi?id=160423
23309 Reviewed by Filip Pizlo.
23311 * stress/destructuring-rest-element.js: Added.
23317 (fakeGen.return.Symbol.iterator):
23319 * stress/rest-elements.js:
23320 (testSyntaxError.String.raw):
23321 * stress/rest-parameter-is-destructuring.js: Added.
23328 2016-08-02 Saam Barati <sbarati@apple.com>
23330 Rename Changelog to ChangeLog
23332 Rubber stamped by Keith Miller.
23334 * Changelog: Removed.
23336 2016-08-02 Saam Barati <sbarati@apple.com>
23338 update a class extending null w.r.t the ES7 spec
23339 https://bugs.webkit.org/show_bug.cgi?id=160417
23341 Reviewed by Keith Miller.
23344 * stress/class-derived-from-null.js: Added.
23368 2016-08-01 Filip Pizlo <fpizlo@apple.com>
23370 Rationalize varargs stack overflow checks
23371 https://bugs.webkit.org/show_bug.cgi?id=160425
23373 Reviewed by Michael Saboff.
23375 * stress/arity-check-ftl-throw-more-args.js: Added.
23378 2016-08-01 Keith Miller <keith_miller@apple.com>
23380 We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
23381 https://bugs.webkit.org/show_bug.cgi?id=160372
23383 Rubber stamped by Geoffrey Garen.
23385 This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
23386 a new top level directory, JSTests. Having the tests in the Source directory
23387 was both confusing an inconvenient for people that just want to checkout the
23388 source code of WebKit. Since there is no other obvious place to put all the
23389 JavaScript tests a new top level directory seemed the most sensible.