blob: 81ba66cb9e3caf8c569d0efb6a756c4487385472 [file] [log] [blame]
2018-09-10 Michael Saboff <msaboff@apple.com>
Test262 failure with Named Capture Groups - using a reference before the group is defined
https://bugs.webkit.org/show_bug.cgi?id=189407
Reviewed by Alex Christensen.
Re-enabled previously failing test.
* test262.yaml:
* test262/expectations.yaml:
2018-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Remove loadModule function in jsc.cpp
https://bugs.webkit.org/show_bug.cgi?id=184808
Reviewed by Darin Adler.
Use `import` expression instead.
* modules/different-view.js:
(from.string_appeared_here.shouldThrow): Deleted.
* modules/fallback-ambiguous.js:
(from.string_appeared_here.shouldThrow): Deleted.
* modules/import-error.js:
(from.string_appeared_here.shouldThrow): Deleted.
(shouldThrow): Deleted.
* modules/indirect-export-error.js:
(from.string_appeared_here.shouldThrow): Deleted.
(shouldThrow): Deleted.
* modules/namespace-error.js:
(from.string_appeared_here.shouldThrow): Deleted.
2018-09-07 Mark Lam <mark.lam@apple.com>
Ensure that handleIntrinsicCall() is only applied on op_call shaped instructions.
https://bugs.webkit.org/show_bug.cgi?id=189317
<rdar://problem/44152198>
Reviewed by Filip Pizlo.
* stress/regress-189317.js: Added.
(testGetter):
(testSetter):
2018-09-06 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[DFG] DFG should handle String#toString
https://bugs.webkit.org/show_bug.cgi?id=189151
Reviewed by Saam Barati.
The error message in String#toString and String#valueOf is poor, which will be
handled in a separate bug[1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=189357
* microbenchmarks/string-object-to-string.js: Added.
(test):
* microbenchmarks/string-object-value-of.js: Added.
(test):
* stress/string-to-string-error.js: Added.
(shouldThrow):
(test):
* stress/string-to-string.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
* stress/string-value-of-error.js: Added.
(shouldThrow):
(test):
* stress/string-value-of.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
2018-09-06 Michael Saboff <msaboff@apple.com>
Improper speculation type for Math.pow(NaN, 0) in Abstract Interpreter
https://bugs.webkit.org/show_bug.cgi?id=189380
Reviewed by Saam Barati.
New test.
* stress/math-pow-nan-to-zero-spec-type.js: Added.
(func):
(test):
2018-09-06 Mark Lam <mark.lam@apple.com>
Gardening: Move regress-189185.js under JSTests/wasm.
https://bugs.webkit.org/show_bug.cgi?id=189347
Unreviewed.
* stress/regress-189185.js: Removed.
* wasm/regress/regress-189185.js: Copied from JSTests/stress/regress-189185.js.
2018-09-05 Mark Lam <mark.lam@apple.com>
JSPropertyNameEnumerator::visitChildren() needs to visit its m_cachedStructureID.
https://bugs.webkit.org/show_bug.cgi?id=189124
<rdar://problem/43863605>
Reviewed by Filip Pizlo.
* stress/regress-189124.js: Added.
2018-09-05 Ross Kirsling <ross.kirsling@sony.com>
[ESNext] Symbol.prototype.description
https://bugs.webkit.org/show_bug.cgi?id=186686
Reviewed by Keith Miller.
* stress/symbol-description.js:
Add tests for empty and null symbol cases.
* test262/config.yaml:
Enable Symbol.prototype.description tests.
2018-09-05 David Fenton <david_fenton@apple.com>
[32-bit JSC tests] Exception: ReferenceError: Can't find variable: WebAssembly.
https://bugs.webkit.org/show_bug.cgi?id=189312.
Unreviewed test gardening.
* stress/regress-189185.js:
2018-09-05 Mark Lam <mark.lam@apple.com>
isAsyncGeneratorMethodParseMode() should check for SourceParseMode::AsyncGeneratorWrapperMethodMode.
https://bugs.webkit.org/show_bug.cgi?id=189292
<rdar://problem/38907433>
Reviewed by Saam Barati.
* stress/regress-189292.js: Added.
2018-09-04 David Fenton <david_fenton@apple.com>
Skip Test on 32-bit platforms.
https://bugs.webkit.org/show_bug.cgi?id=189185.
Unreviewed test gardening.
* stress/regress-189185.js:
2018-09-03 Mark Lam <mark.lam@apple.com>
The watchdog sometimes fails to terminate a script.
https://bugs.webkit.org/show_bug.cgi?id=189227
<rdar://problem/39932857>
Reviewed by Saam Barati.
* stress/regress-189227-watchdog-on-infinite-loop.js: Added.
2018-09-02 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Implement Object.fromEntries
https://bugs.webkit.org/show_bug.cgi?id=188481
Reviewed by Darin Adler.
* stress/object-from-entries.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.set get shouldThrow):
2018-08-24 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Function object should convert params to string before throw a parsing error
https://bugs.webkit.org/show_bug.cgi?id=188874
Reviewed by Darin Adler.
* stress/function-body-to-string-before-parameter-syntax-check.js: Added.
(shouldThrow):
2018-08-31 Mark Lam <mark.lam@apple.com>
Fix exception check accounting in constructJSWebAssemblyCompileError().
https://bugs.webkit.org/show_bug.cgi?id=189185
<rdar://problem/39786007>
Reviewed by Michael Saboff.
* stress/regress-189185.js: Added.
(new.WebAssembly.CompileError.valueOf):
2018-08-31 Mark Lam <mark.lam@apple.com>
Fix exception check accounting in JSDataView::defineOwnProperty().
https://bugs.webkit.org/show_bug.cgi?id=189186
<rdar://problem/39786049>
Reviewed by Michael Saboff.
* stress/regress-189186.js: Added.
2018-08-31 Mark Lam <mark.lam@apple.com>
Add missing exception check in arrayProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=189184
<rdar://problem/39785959>
Reviewed by Yusuke Suzuki.
* stress/regress-189184.js: Added.
2018-08-31 Saam barati <sbarati@apple.com>
convertToRegExpMatchFastGlobal must use KnownString as the child use kind
https://bugs.webkit.org/show_bug.cgi?id=189173
<rdar://problem/43501645>
Reviewed by Michael Saboff.
* stress/may-exit-should-be-false-regexp-constant-folding.js: Added.
(foo):
(bar):
2018-08-30 Saam barati <sbarati@apple.com>
CSE DataViewGet* DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=188768
Reviewed by Yusuke Suzuki.
* microbenchmarks/dataview-cse.js: Added.
(assert):
(test):
* stress/dataview-get-cse.js: Added.
(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):
(test3.foo):
(test3):
(test4.foo):
(test4):
(test5.foo):
(test5):
(test6.foo):
(test6):
2018-08-30 Yusuke Suzuki <yusukesuzuki@slowstart.org>
output of toString() of Generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=188952
Reviewed by Saam Barati.
* stress/function-to-string.js: Added.
(shouldBe):
(shouldBe.test):
(test):
(shouldBe.async.test):
(async.test):
(shouldBe.async):
(async):
* test262/expectations.yaml:
2018-08-29 Mark Lam <mark.lam@apple.com>
Add some missing exception checks in JSRopeString::resolveRopeToAtomicString().
https://bugs.webkit.org/show_bug.cgi?id=189132
<rdar://problem/42513068>
Reviewed by Saam Barati.
* stress/regress-189132.js: Added.
2018-08-27 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[WebAssembly] Parse wasm modules in a streaming fashion
https://bugs.webkit.org/show_bug.cgi?id=188943
Reviewed by Mark Lam.
Wasm parsing error should not report the total byte size since streaming parsing does not
want to load all the bytes.
Add a simple test wasm/stress/streaming-basic.js for initial streaming parsing implementation.
* wasm/function-tests/invalid-duplicate-export.js:
* wasm/function-tests/memory-alignment.js:
(const.op.of.WASM.opcodes):
* wasm/function-tests/memory-section-and-import.js:
* wasm/function-tests/void-argument-type-should-be-a-validation-error.js:
* wasm/js-api/Module-compile.js:
(async.testPromiseAPI):
* wasm/js-api/element.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
(assert.throws):
* wasm/js-api/global-error.js:
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
* wasm/js-api/table.js:
(new.WebAssembly.Module):
(assert.throws):
(assertBadTableImport):
* wasm/js-api/test_Data.js:
(DataSectionWithoutMemory):
* wasm/js-api/test_Start.js:
(InvalidStartFunctionIndex):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/version.js:
* wasm/stress/nameSection.wasm: Added.
* wasm/stress/streaming-basic.js: Added.
(check):
2018-08-27 Mark Lam <mark.lam@apple.com>
Fix exception throwing code so that topCallFrame and topEntryFrame stay true to their names.
https://bugs.webkit.org/show_bug.cgi?id=188577
<rdar://problem/42985684>
Reviewed by Saam Barati.
* stress/regress-188577.js: Added.
2018-08-24 Yusuke Suzuki <yusukesuzuki@slowstart.org>
[JSC] Array.prototype.reverse modifies JSImmutableButterfly
https://bugs.webkit.org/show_bug.cgi?id=188794
Reviewed by Saam Barati.
* stress/reverse-with-immutable-butterfly.js: Added.
(shouldBe):
(reverseInt):
(reverseDouble):
(reverseContiguous):
2018-08-22 Saam barati <sbarati@apple.com>
Make data-view-access.js run less time to prevent timeouts on 32-bit
* microbenchmarks/data-view-accesses.js:
2018-08-22 Mark Lam <mark.lam@apple.com>
The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions.
https://bugs.webkit.org/show_bug.cgi?id=188298
<rdar://problem/42888427>
Reviewed by Saam Barati.
* stress/bug-188298.js: Added.
2018-08-20 Saam barati <sbarati@apple.com>
Inline DataView accesses into DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=188573
<rdar://problem/43286746>
Reviewed by Michael Saboff.
* microbenchmarks/data-view-accesses-2.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
(test):
* microbenchmarks/data-view-accesses.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
* stress/dataview-jit-bounds-checks.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
* stress/dataview-jit-get.js: Added.
(assert):
(test1.bigEndian):
(test1.littleEndian):
(test1.biEndian):
(test1):
(test2.bigEndian):
(test2.littleEndian):
(test2.biEndian):
(test2):
(test3.bigEndian):
(test3.littleEndian):
(test3.biEndian):
(test3):
(test4.bigEndian):
(test4.littleEndian):
(test4.biEndian):
(test4):
(test5.bigEndian):
(test5.littleEndian):
(test5.biEndian):
(test5):
(test6.bigEndian):
(test6.littleEndian):
(test6.biEndian):
(test6):
(test7.load):
(test7):
(test8.load):
(test8):
* stress/dataview-jit-neuter.js: Added.
(assert):
(test.load):
(test):
(test2.load):
(test2):
* stress/dataview-jit-set.js: Added.
(assert):
(isLittleEndian):
(readByte):
(readHex):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):
(test2.storeLittleEndian):
(test2.storeBigEndian):
(test2.store):
(test2):
(test3.storeLittleEndian):
(test3.storeBigEndian):
(test3.store):
(test3):
(test4.storeLittleEndian):
(test4.storeBigEndian):
(test4.store):
(test4):
(test5.storeLittleEndian):
(test5.storeBigEndian):
(test5.store):
(test5):
(test6.storeLittleEndian):
(test6.storeBigEndian):
(test6.store):
(test6):
(test7.store):
(test7):
(test8.store):
(test8):
* stress/dataview-jit-unaligned-accesses.js: Added.
(assert):
(let.p.of.Object.keys.let.str):
(let.p.of.Object.keys):
2018-08-20 Yusuke Suzuki <utatane.tea@gmail.com>
[YARR] Extend size of fixed characters bulk matching in 64bit platform
https://bugs.webkit.org/show_bug.cgi?id=181989
Reviewed by Michael Saboff.
* stress/characters-regexp-ignore-case.js: Added.
(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):
* stress/characters-regexp.js: Added.
(shouldBe):
(testH):
(testHe):
(testHel):
(testHell):
(testHello):
(testHelloW):
(testHelloWo):
(testHelloWor):
(testHelloWorl):
(testHelloWorld):
2018-08-17 Saam barati <sbarati@apple.com>
intersectionOfPastValuesAtHead must filter values after they've observed an invalidation point
https://bugs.webkit.org/show_bug.cgi?id=188707
<rdar://problem/43015442>
Reviewed by Mark Lam.
* stress/cfa-expected-values-must-set-clobbered-to-false.js: Added.
(foo):
(let.comp.valueOf):
(result):
2018-08-10 Keith Miller <keith_miller@apple.com>
Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero
https://bugs.webkit.org/show_bug.cgi?id=185127
Reviewed by Saam Barati.
Rebaseline the expectations.
* test262/expectations.yaml:
2018-08-10 Yusuke Suzuki <yusukesuzuki@slowstart.org>
Date.UTC should not return NaN with only Year param
https://bugs.webkit.org/show_bug.cgi?id=188378
Reviewed by Keith Miller.
* ChakraCore.yaml:
* ChakraCore/test/Date/dateutc.baseline-jsc: Added.
* stress/date-utc-optional.js: Added.
(shouldBe):
* test262/expectations.yaml:
2018-08-08 Keith Miller <keith_miller@apple.com>
Array.prototype.sort should call @toLength instead of ">>> 0"
https://bugs.webkit.org/show_bug.cgi?id=188430
Reviewed by Saam Barati.
* test262/expectations.yaml:
2018-08-08 Keith Miller <keith_miller@apple.com>
Array.prototype.sort should throw TypeError if param is a not callable object
https://bugs.webkit.org/show_bug.cgi?id=188382
Reviewed by Saam Barati.
* test262/expectations.yaml:
2018-08-01 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Implement hourCycle in DateTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=188006
Reviewed by Darin Adler.
Removed fixed hourCycle expectations.
* test262/expectations.yaml:
2018-07-25 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Record CoW status in ArrayProfile correctly
https://bugs.webkit.org/show_bug.cgi?id=187949
Reviewed by Saam Barati.
* stress/array-profile-should-record-copy-on-write.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
2018-07-26 Mark Lam <mark.lam@apple.com>
arrayProtoPrivateFuncConcatMemcpy() should handle copying from an Undecided type array.
https://bugs.webkit.org/show_bug.cgi?id=188065
<rdar://problem/42515726>
Reviewed by Saam Barati.
* stress/regress-188065.js: Added.
2018-07-25 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Call Typed Array elements toLocaleString with locale and options
https://bugs.webkit.org/show_bug.cgi?id=185796
Reviewed by Keith Miller.
Remove now passing TypedArray toLocaleString expectation.
* test262/expectations.yaml:
2018-07-25 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Intl constructor lengths should be configurable
https://bugs.webkit.org/show_bug.cgi?id=187960
Reviewed by Saam Barati.
Removed fixed length expectations, and updated Intl.Locale expectations
that error differently since r234127.
* test262/expectations.yaml:
2018-07-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r234183.
https://bugs.webkit.org/show_bug.cgi?id=187983
cause regression in Kraken gaussian blur and desaturate
(Requested by yusukesuzuki on #webkit).
Reverted changeset:
"[JSC] Record CoW status in ArrayProfile"
https://bugs.webkit.org/show_bug.cgi?id=187949
https://trac.webkit.org/changeset/234183
2018-07-24 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Record CoW status in ArrayProfile
https://bugs.webkit.org/show_bug.cgi?id=187949
Reviewed by Saam Barati.
* stress/array-profile-should-record-copy-on-write.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
2018-07-23 Saam Barati <sbarati@apple.com>
need to didFoldClobberWorld when we constant fold GetByVal
https://bugs.webkit.org/show_bug.cgi?id=187917
<rdar://problem/42505095>
Reviewed by Yusuke Suzuki.
* stress/get-by-val-fold-did-clobber-world.js: Added.
(__f_443):
2018-07-23 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Language tags are not canonicalized
https://bugs.webkit.org/show_bug.cgi?id=185836
Reviewed by Keith Miller.
Remove expected failures that have been fixed.
* test262/expectations.yaml:
2018-07-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] GetByIdVariant and InByIdVariant do not need slot base if they are not "hit" variants
https://bugs.webkit.org/show_bug.cgi?id=187891
Reviewed by Saam Barati.
* stress/in-miss-variant-merge.js: Added.
(shouldBe):
(test):
* stress/miss-variant-merge.js: Added.
(shouldBe):
(test):
2018-07-22 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Fold GetByVal if the indexed value is non configurable and non writable
https://bugs.webkit.org/show_bug.cgi?id=186462
Reviewed by Saam Barati.
* stress/folding-get-by-val-with-read-only-dont-delete-object.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
(test4):
(test5):
* stress/folding-get-by-val-with-read-only-dont-delete-runtime-array.js: Added.
(shouldBe):
(test1):
(test2):
(test5):
* stress/folding-get-by-val-with-read-only-dont-delete.js: Added.
(shouldBe):
(test1):
(test2):
(test3):
(test4):
(test5):
2018-06-02 Filip Pizlo <fpizlo@apple.com>
We should support CreateThis in the FTL
https://bugs.webkit.org/show_bug.cgi?id=164904
Reviewed by Yusuke Suzuki.
* microbenchmarks/polyvariant-get-by-id-shorter-tower.js: Added.
(polyvariant):
(Foo.prototype.func):
(Foo):
(foo):
(Bar.prototype.func):
(Bar):
(bar):
* microbenchmarks/polyvariant-get-by-id-tower.js: Added.
(polyvariant):
(Foo.prototype.func):
(Foo):
(foo):
(Bar.prototype.func):
(Bar):
(bar):
(Baz.prototype.func):
(Baz):
(baz):
2018-07-20 Michael Saboff <msaboff@apple.com>
DFG AbstractInterpreter: CheckArray filters array modes for DirectArguments/ScopedArguments using only NonArray
https://bugs.webkit.org/show_bug.cgi?id=187827
rdar://problem/42146858
Reviewed by Saam Barati.
New regression tests.
* stress/direct-arguments-check-array.js: Added.
(setup.f2):
(setup):
(forOfArray):
(forOfArgs):
(callEveryOnArgs):
* stress/scoped-arguments-check-array.js: Added.
(setup.foo):
(setup.f2):
(setup):
(forOfArray):
(forOfArgs):
(callEveryOnArgs):
2018-07-20 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Fold GetByVal if Array is CoW
https://bugs.webkit.org/show_bug.cgi?id=186459
Reviewed by Saam Barati.
* stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds-foldable.js: Added.
(shouldBe):
(test0):
(test1):
(test2):
(test3):
(test4):
(test5):
* stress/folding-get-by-val-with-immutable-butterfly-out-of-bounds.js: Added.
(shouldBe):
(test0):
(test1):
(test2):
(test3):
(test4):
(test5):
* stress/folding-get-by-val-with-immutable-butterfly-with-types.js: Added.
(shouldBe):
(test0):
(test1):
(test2):
(test3):
(test4):
(test5):
* stress/folding-get-by-val-with-immutable-butterfly.js: Added.
(shouldBe):
(checking):
(test):
2018-07-20 Saam Barati <sbarati@apple.com>
CompareEq should be using KnownOtherUse instead of OtherUse
https://bugs.webkit.org/show_bug.cgi?id=186814
<rdar://problem/39720030>
Reviewed by Filip Pizlo.
* stress/compare-eq-should-use-known-other-use.js: Added.
(bar):
(i.func):
2018-07-20 David Fenton <david_fenton@apple.com>
stress/spread-forward-varargs-stack-overflow.js is timing out in 32 bit JSC tests.
https://bugs.webkit.org/show_bug.cgi?id=187698
Unreviewed test gardening, skipped test in 32 Bit JSC.
* stress/spread-forward-varargs-stack-overflow.js:
2018-07-18 Yusuke Suzuki <utatane.tea@gmail.com>
JSON.stringify should emit non own properties if second array argument includes
https://bugs.webkit.org/show_bug.cgi?id=187724
Reviewed by Mark Lam.
* stress/json-stringify-getter-call.js: Added.
(shouldBe):
(A.prototype.get cocoa):
(A.prototype.get cappuccino):
(A):
(shouldBe.JSON.stringify):
2018-07-18 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] JSON.stringify's replacer should use `isArray` instead of JSArray checks
https://bugs.webkit.org/show_bug.cgi?id=187755
Reviewed by Mark Lam.
* stress/json-stringify-gap-calculation-should-be-after-replacer-check.js: Added.
(shouldThrow):
(shouldThrow.string.toString):
* test262/expectations.yaml:
2018-07-12 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Generator and AsyncGeneratorMethod's prototype is incorrect
https://bugs.webkit.org/show_bug.cgi?id=187585
Reviewed by Darin Adler.
* stress/default-proto-for-async-generator.js: Added.
(shouldBe):
(async.asyncGenerator):
* stress/default-proto-for-generator.js: Added.
(shouldBe):
(generator):
* stress/prototype-for-async-generator.js: Added.
(shouldBe):
(async.asyncGenerator):
(A.prototype.async.asyncGenerator):
(A):
* test262/expectations.yaml:
2018-07-11 Ryan Haddad <ryanhaddad@apple.com>
Skip JSC test stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js
https://bugs.webkit.org/show_bug.cgi?id=187559
Unreviewed test gardening.
* stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js:
2018-07-11 Yusuke Suzuki <utatane.tea@gmail.com>
Iterator of Array.keys() returns object in wrong order
https://bugs.webkit.org/show_bug.cgi?id=185197
Reviewed by Keith Miller.
We align the shape of our iterator result to the spec: {value,done} instead of {done,value}.
* stress/iterator-field-order.js: Added.
(shouldBe):
(shouldBe.JSON.stringify.array.values.next):
(shouldBe.JSON.stringify.array.keys.next):
(shouldBe.JSON.stringify.array.entries.next):
(async.asyncIterator):
(iterator.next.then):
(generator):
(shouldBe.JSON.stringify.generator.next):
(shouldBe.JSON.stringify.map.keys.next):
(shouldBe.JSON.stringify.map.values.next):
(shouldBe.JSON.stringify.map.entries.next):
(set new):
2018-07-11 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, clean up test262 expectations
* test262/expectations.yaml:
2018-07-10 Mark Lam <mark.lam@apple.com>
constructArray() should always allocate the requested length.
https://bugs.webkit.org/show_bug.cgi?id=187543
<rdar://problem/41947884>
Reviewed by Saam Barati.
* stress/regress-187543-2.js: Added.
* stress/regress-187543-3.js: Added.
* stress/regress-187543.js: Added.
2018-07-10 Keith Miller <keith_miller@apple.com>
hasOwnProperty returns true for out of bounds property index on TypedArray
https://bugs.webkit.org/show_bug.cgi?id=187520
Reviewed by Saam Barati.
getOwnPropertySlot returns true on out of bounds indicies for
TypedArrays, which is incorrect.
* stress/typedarray-hasOwnProperty-out-of-bounds.js: Added.
(test):
2018-07-10 Michael Saboff <msaboff@apple.com>
DFG JIT: compileMathIC produces incorrect machine code
https://bugs.webkit.org/show_bug.cgi?id=187537
Reviewed by Saam Barati.
Added new test case.
* stress/arith-mul-with-constants.js:
(testArithMulWithTypeConfusedConstant.testMult):
(testArithMulWithTypeConfusedConstant):
2018-07-10 Michael Saboff <msaboff@apple.com>
YARR: . doesn't match non-BMP Unicode characters in some cases
https://bugs.webkit.org/show_bug.cgi?id=187248
Reviewed by Geoffrey Garen.
New regression test.
* stress/regexp-with-nonBMP-any.js: Added.
2018-07-09 Michael Saboff <msaboff@apple.com>
REGRESSION (ICU-62100.0.1): JSC test mozilla-tests.yaml/ecma/String/15.5.4.12-3.js is failing
https://bugs.webkit.org/show_bug.cgi?id=187495
Reviewed by Saam Barati.
Commented out the Georgian section of this toUpper() test since Unicode 11 added new upper case characters for
most of this range.
* mozilla/ecma/String/15.5.4.12-3.js:
(getTestCases):
(DecimalToHexString):
2018-07-02 Sukolsak Sakshuwong <sukolsak@gmail.com>
RegExp.exec returns wrong value with a long integer quantifier
https://bugs.webkit.org/show_bug.cgi?id=187042
Reviewed by Saam Barati.
* stress/regexp-large-quantifier.js: Added.
(testRegExp):
* stress/regress-159744.js:
2018-07-02 Ryosuke Niwa <rniwa@webkit.org>
Repository fix after r233427 and r233443.
Added back the test which got erroneously deleted in r233443.
* stress/instanceof-non-object-prototype.js:
2018-07-02 Keith Miller <keith_miller@apple.com>
InstanceOf IC should do generic if the prototype is not an object.
https://bugs.webkit.org/show_bug.cgi?id=187250
Reviewed by Mark Lam.
* stress/instanceof-non-object-prototype.js: Added.
(let):
(test):
(i.catch):
2018-06-30 Mark Lam <mark.lam@apple.com>
Builtins and host functions should get their own structures.
https://bugs.webkit.org/show_bug.cgi?id=187211
<rdar://problem/41646336>
Reviewed by Saam Barati.
* stress/regress-187211.js: Added.
2018-06-29 Saam Barati <sbarati@apple.com>
We shouldn't recurse into the parser when gathering metadata about various function offsets
https://bugs.webkit.org/show_bug.cgi?id=184074
<rdar://problem/37165897>
Reviewed by Mark Lam.
* microbenchmarks/try-get-by-id-basic.js:
(const.bench.f.const.fooPlusBar.createBuiltin):
* microbenchmarks/try-get-by-id-polymorphic.js:
(fooPlusBar.createBuiltin):
* stress/array-push-with-force-exit.js:
* stress/dont-crash-on-stack-overflow-when-parsing-builtin.js: Added.
(f):
* stress/dont-crash-on-stack-overflow-when-parsing-default-constructor.js: Added.
(foo):
(prototype.runNearStackLimit):
* stress/is-constructor.js:
* stress/tailCallForwardArguments.js:
(putFuncToPrivateName.createBuiltin):
2018-06-27 Mark Lam <mark.lam@apple.com>
DFG's compileReallocatePropertyStorage() and compileAllocatePropertyStorage() slow paths should also clear unused properties.
https://bugs.webkit.org/show_bug.cgi?id=187091
<rdar://problem/41395624>
Reviewed by Yusuke Suzuki.
* stress/regress-187091.js: Added.
2018-06-27 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] ArrayPatternNode::emitDirectBinding does not return assignment target value if dst is nullptr
https://bugs.webkit.org/show_bug.cgi?id=185943
Reviewed by Mark Lam.
* stress/direct-binding-return-result.js: Added.
(shouldBe):
(test):
2018-06-26 Mark Lam <mark.lam@apple.com>
eval() is wrong about the LiteralParser never throwing any exceptions.
https://bugs.webkit.org/show_bug.cgi?id=187074
<rdar://problem/41461099>
Reviewed by Saam Barati.
* stress/regress-187074.js: Added.
2018-06-26 Mark Lam <mark.lam@apple.com>
ASSERTION FAILED: length > butterfly->vectorLength() in JSObject::ensureLengthSlow().
https://bugs.webkit.org/show_bug.cgi?id=187060
<rdar://problem/41452767>
Reviewed by Keith Miller.
* stress/regress-187060.js: Added.
2018-06-25 Mark Lam <mark.lam@apple.com>
constructArray() should set m_numValuesInVector to the specified length.
https://bugs.webkit.org/show_bug.cgi?id=187010
<rdar://problem/41392167>
Reviewed by Filip Pizlo.
* stress/regress-187010.js: Added.
2018-06-25 Mark Lam <mark.lam@apple.com>
Add missing exception check in RegExpObjectInlines.h's collectMatches.
https://bugs.webkit.org/show_bug.cgi?id=187006
<rdar://problem/41418412>
Reviewed by Keith Miller.
* stress/regress-187006.js: Added.
2018-06-22 Keith Miller <keith_miller@apple.com>
unshift should zero unused property storage
https://bugs.webkit.org/show_bug.cgi?id=186960
Reviewed by Saam Barati.
* stress/array-unshift-zero-property-storage.js: Added.
(run):
(test):
2018-06-22 Mark Lam <mark.lam@apple.com>
PropertyCondition::isValidValueForAttributes() should also consider deleted values.
https://bugs.webkit.org/show_bug.cgi?id=186943
<rdar://problem/41370337>
Reviewed by Saam Barati.
* stress/regress-186943.js: Added.
2018-06-22 Keith Miller <keith_miller@apple.com>
performProxyCall should toThis the value passed to its handler
https://bugs.webkit.org/show_bug.cgi?id=186951
Reviewed by Mark Lam.
* stress/proxy-call-apply-handler-to-this.js: Added.
(applyHandler):
(let.f.new.Proxy):
(withScope):
(lexicalScope):
(strictEvalScope):
(BigInt):
2018-06-20 Keith Miller <keith_miller@apple.com>
flattenDictionaryStruture needs to zero inline storage.
https://bugs.webkit.org/show_bug.cgi?id=186869
Reviewed by Saam Barati.
* stress/flatten-object-zero-unused-inline-properties.js: Added.
2018-06-19 Saam Barati <sbarati@apple.com>
DirectArguments::create needs to initialize to undefined instead of the empty value
https://bugs.webkit.org/show_bug.cgi?id=186818
<rdar://problem/38415177>
Reviewed by Filip Pizlo.
* stress/create-direct-arguments-in-osr-should-initialize-to-undefined.js: Added.
(foo):
(bar):
2018-06-19 Tadeu Zagallo <tzagallo@apple.com>
ShadowChicken crashes with stack overflow in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=186540
<rdar://problem/39682133>
Reviewed by Saam Barati.
Add test that stack overflows and crashes on ShadowChicken when JIT is
disabled and forceDebuggerBytecodeGeneration is enabled.
* stress/llint-stack-overflow-debugging-opcodes.js: Added.
(foo):
(catch):
2018-06-19 Leo Balter <leonardo.balter@gmail.com>
[test262-runner] More updates to the skip list
https://bugs.webkit.org/show_bug.cgi?id=186786
Reviewed by Michael Saboff.
* test262/config.yaml:
* test262/expectations.yaml:
2018-06-19 Saam Barati <sbarati@apple.com>
Wasm: Any function argument of type Void should be a validation error
https://bugs.webkit.org/show_bug.cgi?id=186794
<rdar://problem/41140257>
Reviewed by Keith Miller.
* wasm/Builder.js:
(const._normalizeFunctionSignature):
* wasm/function-tests/void-argument-type-should-be-a-validation-error.js: Added.
(getBinary):
* wasm/self-test/test_BuilderJSON.js:
2018-06-18 Keith Miller <keith_miller@apple.com>
Properly zero unused property storage offsets
https://bugs.webkit.org/show_bug.cgi?id=186692
Reviewed by Filip Pizlo.
* stress/butterfly-zero-unused-butterfly-properties.js: Added.
2018-06-18 Michael Saboff <msaboff@apple.com>
Support Unicode 11 in RegExp
https://bugs.webkit.org/show_bug.cgi?id=186685
Reviewed by Mark Lam.
* test262/config.yaml: Removed from skip list Unicode 11 property tests as they
are now supported. Added new bug reference for still failing
test/built-ins/RegExp/property-escapes/character-class.js test.
* test262/test/built-ins/RegExp/property-escapes/unsupported-binary-properties.js:
Removed "Extended_Pictographic" from unsupported properties since Unicode 11 now supports them.
2018-06-16 Leo Balter <leonardo.balter@gmail.com>
Update Test262 2018-06-15
https://bugs.webkit.org/show_bug.cgi?id=186695
Reviewed by Michael Saboff.
Also update the skip list - in the config file - with new failures
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/testIntl.js:
(getInvalidLanguageTags):
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Date/parse/time-value-maximum-range.js: Added.
* test262/test/built-ins/Date/parse/zero.js: Added.
* test262/test/built-ins/JSON/stringify/bigint-cross-realm.js: Added.
(other.BigInt.prototype.toJSON):
* test262/test/built-ins/Object/prototype/toString/symbol-tag-non-str-bigint.js: Added.
* test262/test/built-ins/Object/prototype/toString/symbol-tag-override-bigint.js: Added.
* test262/test/built-ins/Reflect/ownKeys/return-on-corresponding-order-large-index.js: Added.
* test262/test/built-ins/RegExp/property-escapes/character-class.js:
* test262/test/built-ins/RegExp/property-escapes/generated/ASCII.js:
* test262/test/built-ins/RegExp/property-escapes/generated/ASCII_Hex_Digit.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Alphabetic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Any.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Assigned.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Control.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Bidi_Mirrored.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Case_Ignorable.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Cased.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casefolded.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Casemapped.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Lowercased.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_NFKC_Casefolded.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Titlecased.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Changes_When_Uppercased.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Dash.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Default_Ignorable_Code_Point.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Deprecated.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Diacritic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Emoji.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Modifier_Base.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Presentation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Extended_Pictographic.js: Added.
* test262/test/built-ins/RegExp/property-escapes/generated/Extender.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Cased_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Close_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Connector_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Control.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Currency_Symbol.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Dash_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Decimal_Number.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Enclosing_Mark.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Final_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Format.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Initial_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter_Number.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Line_Separator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Lowercase_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Mark.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Math_Symbol.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Modifier_Symbol.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Nonspacing_Mark.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Number.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Open_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Number.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Paragraph_Separator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Private_Use.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Separator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Space_Separator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Spacing_Mark.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Surrogate.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Titlecase_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js:
* test262/test/built-ins/RegExp/property-escapes/generated/General_Category_-_Uppercase_Letter.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Grapheme_Extend.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Hex_Digit.js:
* test262/test/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/IDS_Trinary_Operator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/ID_Continue.js:
* test262/test/built-ins/RegExp/property-escapes/generated/ID_Start.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Ideographic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Join_Control.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Logical_Order_Exception.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Lowercase.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Math.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Noncharacter_Code_Point.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Pattern_Syntax.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Pattern_White_Space.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Quotation_Mark.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Radical.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Regional_Indicator.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Adlam.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ahom.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Anatolian_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Arabic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Armenian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Avestan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Balinese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bamum.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bassa_Vah.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Batak.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bengali.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bhaiksuki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Bopomofo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Brahmi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Braille.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buginese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Buhid.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Canadian_Aboriginal.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Carian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Caucasian_Albanian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Chakma.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cherokee.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Common.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Coptic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cuneiform.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cypriot.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Cyrillic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Deseret.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Devanagari.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Duployan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Egyptian_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Elbasan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ethiopic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Georgian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Glagolitic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gothic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Grantha.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Greek.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gujarati.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Gurmukhi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Han.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hangul.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hanunoo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hatran.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hebrew.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Hiragana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Imperial_Aramaic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inherited.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Pahlavi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Inscriptional_Parthian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Javanese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kaithi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kannada.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Katakana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kayah_Li.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Kharoshthi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khmer.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khojki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Khudawadi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lao.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Latin.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lepcha.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Limbu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_A.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Linear_B.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lisu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lycian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Lydian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mahajani.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Malayalam.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mandaic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Manichaean.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Marchen.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Masaram_Gondi.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meetei_Mayek.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mende_Kikakui.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Cursive.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Meroitic_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Miao.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Modi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mongolian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Mro.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Multani.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Myanmar.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nabataean.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_New_Tai_Lue.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Newa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nko.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Nushu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ogham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ol_Chiki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Hungarian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Italic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_North_Arabian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Permic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Persian.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_South_Arabian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Old_Turkic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Oriya.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osage.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Osmanya.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pahawh_Hmong.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Palmyrene.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Pau_Cin_Hau.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phags_Pa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Phoenician.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Psalter_Pahlavi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Rejang.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Runic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Samaritan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Saurashtra.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sharada.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Shavian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Siddham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_SignWriting.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sinhala.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sora_Sompeng.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Soyombo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Sundanese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syloti_Nagri.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Syriac.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagalog.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tagbanwa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Le.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Tham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tai_Viet.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Takri.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tamil.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tangut.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Telugu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thaana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Thai.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tibetan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tifinagh.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Tirhuta.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Ugaritic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Vai.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Warang_Citi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Yi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_-_Zanabazar_Square.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Adlam.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ahom.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Anatolian_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Arabic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Armenian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Avestan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Balinese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bamum.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bassa_Vah.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Batak.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bengali.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bhaiksuki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Bopomofo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Brahmi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Braille.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buginese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Buhid.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Canadian_Aboriginal.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Carian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Caucasian_Albanian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Chakma.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cherokee.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Coptic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cuneiform.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cypriot.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Cyrillic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Deseret.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Devanagari.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Duployan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Egyptian_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Elbasan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ethiopic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Georgian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Glagolitic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gothic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Grantha.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Greek.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gujarati.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gunjala_Gondi.js: Added.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Gurmukhi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hangul.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanifi_Rohingya.js: Added.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hanunoo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hatran.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hebrew.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Hiragana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Imperial_Aramaic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inherited.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Pahlavi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Inscriptional_Parthian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Javanese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kaithi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kannada.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Katakana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kayah_Li.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Kharoshthi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khmer.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khojki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Khudawadi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lao.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Latin.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lepcha.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Limbu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_A.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Linear_B.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lisu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lycian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Lydian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mahajani.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mandaic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Manichaean.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Marchen.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Masaram_Gondi.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meetei_Mayek.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mende_Kikakui.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Cursive.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Meroitic_Hieroglyphs.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Miao.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Modi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mongolian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Mro.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Multani.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Myanmar.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nabataean.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_New_Tai_Lue.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Newa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nko.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Nushu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ogham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ol_Chiki.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Hungarian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Italic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_North_Arabian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Permic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Persian.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_South_Arabian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Old_Turkic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Oriya.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osage.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Osmanya.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pahawh_Hmong.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Palmyrene.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Pau_Cin_Hau.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phags_Pa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Phoenician.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Psalter_Pahlavi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Rejang.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Runic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Samaritan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Saurashtra.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Shavian.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Siddham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_SignWriting.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js:
* 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.
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sora_Sompeng.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Soyombo.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sundanese.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syloti_Nagri.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Syriac.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagalog.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tagbanwa.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Le.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Tham.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tai_Viet.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Takri.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tamil.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tangut.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Telugu.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thaana.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Thai.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tibetan.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tifinagh.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Tirhuta.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Ugaritic.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Vai.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Warang_Citi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Yi.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Zanabazar_Square.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Soft_Dotted.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Terminal_Punctuation.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Uppercase.js:
* test262/test/built-ins/RegExp/property-escapes/generated/Variation_Selector.js:
* test262/test/built-ins/RegExp/property-escapes/generated/White_Space.js:
* test262/test/built-ins/RegExp/property-escapes/generated/XID_Continue.js:
* test262/test/built-ins/RegExp/property-escapes/generated/XID_Start.js:
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Removed.
* 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.
(o.get Symbol):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Removed.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js:
* test262/test/built-ins/Symbol/matchAll/prop-desc.js:
* test262/test/built-ins/Symbol/prototype/description/description-symboldescriptivestring.js: Added.
* test262/test/built-ins/Symbol/prototype/description/descriptor.js: Added.
* test262/test/built-ins/Symbol/prototype/description/get.js: Added.
* test262/test/built-ins/Symbol/prototype/description/is-not-own-property.js: Added.
* test262/test/built-ins/Symbol/prototype/description/this-val-non-symbol.js: Added.
* test262/test/built-ins/Symbol/prototype/description/this-val-symbol.js: Added.
* test262/test/built-ins/Symbol/prototype/description/wrapper.js: Added.
* test262/test/intl402/Intl/getCanonicalLocales/Locale-object.js: Added.
* test262/test/intl402/Locale/constructor-options-collation-invalid.js:
* test262/test/intl402/Locale/constructor-options-collation-valid.js:
* test262/test/intl402/Locale/constructor-options-hourcycle-valid.js:
* test262/test/intl402/Locale/constructor-options-language-invalid.js:
* test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js:
* test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js:
* test262/test/intl402/Locale/constructor-tag.js: Added.
(canonical.of.Object.entries):
* test262/test/intl402/Locale/likely-subtags.js: Added.
(maximal.of.Object.entries):
(minimal.of.Object.entries):
* test262/test/intl402/Locale/prototype/baseName/branding.js: Added.
* test262/test/intl402/Locale/prototype/baseName/name.js: Added.
* test262/test/intl402/Locale/prototype/baseName/prop-desc.js:
* test262/test/intl402/Locale/prototype/calendar/branding.js: Added.
* test262/test/intl402/Locale/prototype/calendar/name.js: Added.
* test262/test/intl402/Locale/prototype/calendar/prop-desc.js:
* test262/test/intl402/Locale/prototype/caseFirst/branding.js: Added.
* test262/test/intl402/Locale/prototype/caseFirst/name.js: Added.
* test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js:
* test262/test/intl402/Locale/prototype/collation/branding.js: Added.
* test262/test/intl402/Locale/prototype/collation/name.js: Added.
* test262/test/intl402/Locale/prototype/collation/prop-desc.js:
* test262/test/intl402/Locale/prototype/hourCycle/branding.js: Added.
* test262/test/intl402/Locale/prototype/hourCycle/name.js: Added.
* test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js:
* test262/test/intl402/Locale/prototype/language/branding.js: Added.
* test262/test/intl402/Locale/prototype/language/name.js: Added.
* test262/test/intl402/Locale/prototype/language/prop-desc.js:
* test262/test/intl402/Locale/prototype/maximize/branding.js: Added.
* test262/test/intl402/Locale/prototype/minimize/branding.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystem/branding.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystem/name.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js:
* test262/test/intl402/Locale/prototype/numeric/branding.js: Added.
* test262/test/intl402/Locale/prototype/numeric/name.js: Added.
* test262/test/intl402/Locale/prototype/numeric/prop-desc.js:
* test262/test/intl402/Locale/prototype/region/branding.js: Added.
* test262/test/intl402/Locale/prototype/region/name.js: Added.
* test262/test/intl402/Locale/prototype/region/prop-desc.js:
* test262/test/intl402/Locale/prototype/script/branding.js: Added.
* test262/test/intl402/Locale/prototype/script/name.js: Added.
* test262/test/intl402/Locale/prototype/script/prop-desc.js:
* test262/test/intl402/Locale/prototype/toString/branding.js: Added.
* test262/test/intl402/NumberFormat/length.js:
* test262/test/intl402/PluralRules/prototype/resolvedOptions/pluralCategories.js: Added.
* test262/test/language/expressions/tagged-template/template-object-template-map.js: Added.
(tag):
* test262/test/language/expressions/tagged-template/template-object.js:
(templateObject.tag):
* test262/test/language/literals/numeric/numeric-separator-literal-bil-bd-nsl-bd-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-bil-nsl-bd-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-dds-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dd-nsl-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-dds-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dds-nsl-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-dds-nsl-ep-dd-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-ep-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dil-dot-nsl-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dot-dds-nsl-ep-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-ep-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-dot-nsl-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-hil-hd-nsl-hd-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-hil-nsl-hd-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-nzd-nsl-dds-leading-zero-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-dunder-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-oil-nsl-od-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-oil-od-nsl-od-err.js:
* test262/test/language/literals/numeric/numeric-separator-literal-unicode-err.js:
* test262/test262-Revision.txt:
2018-06-16 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Reduce OSRExit for Kraken/crypto-aes due to CoW array
https://bugs.webkit.org/show_bug.cgi?id=186721
Reviewed by Keith Miller.
* stress/array-slice-cow.js: Added.
(shouldBe):
(testInt32):
(testDouble):
(testContiguous):
2018-06-15 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Spread onto PhantomNewArrayBuffer assumes JSFixedArray, but JSImmutableButterfly is returned
https://bugs.webkit.org/show_bug.cgi?id=186460
Reviewed by Saam Barati.
* stress/spread-escapes-but-new-array-buffer-does-not-double.js: Added.
(assert):
(getProperties):
(theFunc):
(let.obj.valueOf):
2018-06-14 Leo Balter <leonardo.balter@gmail.com>
Test262-Runner: Update config list with some failing tests
https://bugs.webkit.org/show_bug.cgi?id=185628
Reviewed by Michael Saboff.
The config list is updated to match some slow / hanging tests that are currenctly failing
due to the length used in Array or Array like objects.
This also adds matching bugs for known features that are still in progress and not enabled
yet.
* test262/config.yaml:
2018-06-12 Yusuke Suzuki <utatane.tea@gmail.com>
Update test262 for Array#sort
https://bugs.webkit.org/show_bug.cgi?id=186458
* test262/expectations.yaml:
2018-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Array.prototype.sort should rejects null comparator
https://bugs.webkit.org/show_bug.cgi?id=186458
Reviewed by Keith Miller.
* ChakraCore/test/Array/array_sort.baseline-jsc:
* stress/array-sort-bad-comparator.js:
(test):
* stress/sort-null-comparator.js: Removed.
* test262/expectations.yaml:
2018-06-07 Saam Barati <sbarati@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=186218
<rdar://problem/38449540>
Reviewed by Filip Pizlo.
* stress/dont-crash-ftl-osr-entry.js: Added.
2018-06-06 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Compare operations do not respect negative zeros
https://bugs.webkit.org/show_bug.cgi?id=183729
Reviewed by Saam Barati.
* stress/comparison-ignore-negative-zero.js: Added.
(shouldBe):
(zero):
(negativeZero):
(object.valueOf):
(test):
2018-06-06 Saam Barati <sbarati@apple.com>
generateConditionsForInstanceOf needs to see if the object has a poly proto structure before assuming it has a constant prototype
https://bugs.webkit.org/show_bug.cgi?id=186363
Rubber-stamped by Filip Pizlo.
* stress/instance-of-on-poly-proto-opc-should-not-crash.js: Added.
2018-06-05 David Fenton <david_fenton@apple.com>
Temporarily Skip JSC stress test failures that are consistently occurring.
https://bugs.webkit.org/show_bug.cgi?id=186283
Unreviewed test gardening.
* executableAllocationFuzz.yaml:
* slowMicrobenchmarks/default-derived-constructor.js:
* stress/put-direct-index-broken-2.js:
* stress/splay-flash-access.js:
* stress/spread-forward-call-varargs-stack-overflow.js:
2018-06-04 Keith Miller <keith_miller@apple.com>
Add test for CoW conversions in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=186295
Reviewed by Saam Barati.
* stress/arrayprofile-should-not-convert-get-by-val-cow.js: Added.
(assertEq):
(withArrayArgInt32):
(withArrayLiteralInt32):
(withArrayArgDouble):
(withArrayLiteralDouble):
(withArrayArgContiguous):
(withArrayLiteralContiguous):
(test):
2018-06-02 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for addition operations
https://bugs.webkit.org/show_bug.cgi?id=179002
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/addition-order-evaluation.js: Added.
* stress/big-int-add-wrapped-value.js: Added.
* stress/big-int-addition-basic.js: Added.
* stress/big-int-addition-jit.js: Added.
* stress/big-int-addition-memory-stress.js: Added.
* stress/big-int-addition-string-coercion.js: Added.
* stress/big-int-addition-to-primitive-precedence.js: Added.
* stress/big-int-addition-to-primitive.js: Added.
* stress/big-int-addition-type-error.js: Added.
* stress/big-int-no-conversion-to-number.js:
* stress/big-int-sub-wrapped-value.js: Added.
* stress/big-int-subtraction-basic.js: Added.
* stress/big-int-subtraction-jit.js: Added.
* stress/big-int-subtraction-type-error.js: Added.
* stress/sub-order-evaluation.js: Added.
2018-06-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r232439.
https://bugs.webkit.org/show_bug.cgi?id=186238
It breaks gtk-linux-32-release (Requested by caiolima on
#webkit).
Reverted changeset:
"[ESNext][BigInt] Implement support for addition operations"
https://bugs.webkit.org/show_bug.cgi?id=179002
https://trac.webkit.org/changeset/232439
2018-06-01 Yusuke Suzuki <utatane.tea@gmail.com>
Baseline op_jtrue emits an insane amount of code
https://bugs.webkit.org/show_bug.cgi?id=185708
Reviewed by Filip Pizlo.
* stress/logical-not-masquerades-as-undefined.js: Added.
(shouldBe):
(test):
* stress/logical-not.js: Added.
(shouldBe):
(test):
2018-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Remove WeakReferenceHarvester
https://bugs.webkit.org/show_bug.cgi?id=186102
Reviewed by Filip Pizlo.
* microbenchmarks/create-many-weak-map.js: Added.
2018-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Object.create should have intrinsic
https://bugs.webkit.org/show_bug.cgi?id=186200
Reviewed by Filip Pizlo.
* microbenchmarks/object-create-null.js: Added.
(test):
* microbenchmarks/object-create-unknown-object-prototype.js: Added.
(test):
* microbenchmarks/object-create-untyped-prototype.js: Added.
(test):
* stress/get-by-pname-only-prototype-properties.js: Added.
(foo):
* stress/object-create-define.js: Added.
(shouldBe):
(test):
* stress/object-create-null-external.js: Added.
(shouldBe):
(test):
* stress/object-create-null.js: Added.
(shouldBe):
(test):
* stress/object-create-prototype.js: Added.
(shouldBe):
(test):
* stress/object-create-undefined.js: Added.
(shouldThrow):
(i.shouldThrow):
2018-06-02 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for addition operations
https://bugs.webkit.org/show_bug.cgi?id=179002
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/addition-order-evaluation.js: Added.
* stress/big-int-add-wrapped-value.js: Added.
* stress/big-int-addition-basic.js: Added.
* stress/big-int-addition-jit.js: Added.
* stress/big-int-addition-memory-stress.js: Added.
* stress/big-int-addition-string-coercion.js: Added.
* stress/big-int-addition-to-primitive-precedence.js: Added.
* stress/big-int-addition-to-primitive.js: Added.
* stress/big-int-addition-type-error.js: Added.
* stress/big-int-no-conversion-to-number.js:
* stress/big-int-sub-wrapped-value.js: Added.
* stress/big-int-subtraction-basic.js: Added.
* stress/big-int-subtraction-jit.js: Added.
* stress/big-int-subtraction-type-error.js: Added.
* stress/sub-order-evaluation.js: Added.
2018-05-29 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add Symbol.prototype.description getter
https://bugs.webkit.org/show_bug.cgi?id=186053
Reviewed by Keith Miller.
* stress/symbol-description.js: Added.
(shouldBe):
(shouldThrow):
2018-05-30 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] InById should be converted to MatchStructure
https://bugs.webkit.org/show_bug.cgi?id=185803
Reviewed by Keith Miller.
* microbenchmarks/in-by-id-match.js: Added.
(test):
* microbenchmarks/in-by-id-removed.js: Added.
(test):
* stress/in-by-id-constant.js: Added.
(shouldBe):
(test1):
* stress/in-by-id-match-invalid.js: Added.
(shouldBe):
(test1):
* stress/in-by-id-match.js: Added.
(shouldBe):
(test1):
2018-05-31 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "=<" and ">=" relational operation
https://bugs.webkit.org/show_bug.cgi?id=185929
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-greater-than-or-equal-jit.js: Added.
* stress/big-int-greater-than-or-equal-order-of-evaluation.js: Added.
* stress/big-int-greater-than-or-equal-wrapped-values.js: Added.
* stress/big-int-greater-than-or-equal.js: Added.
* stress/big-int-less-than-or-equal-general.js: Added.
* stress/big-int-less-than-or-equal-jit.js: Added.
* stress/big-int-less-than-or-equal-order-of-evaluation.js: Added.
* stress/big-int-less-than-or-equal-wrapped-values.js: Added.
2018-05-31 Saam Barati <sbarati@apple.com>
Cache toString results for CoW arrays
https://bugs.webkit.org/show_bug.cgi?id=186160
Reviewed by Keith Miller.
* microbenchmarks/to-string-on-cow-array.js: Added.
(foo):
2018-05-31 Keith Miller <keith_miller@apple.com>
Rebaseline test for change in Error.stack behavior.
* stress/error-stack-trace-limit.js:
(numberOfFrames):
2018-05-30 Saam Barati <sbarati@apple.com>
DFG combined liveness needs to say that the machine CodeBlock's arguments are live
https://bugs.webkit.org/show_bug.cgi?id=186121
<rdar://problem/39377796>
Reviewed by Keith Miller.
* stress/combined-liveness-needs-to-say-arguments-are-live.js: Added.
(baz):
(foo):
2018-05-30 Keith Miller <keith_miller@apple.com>
Unreviewed, uncomment erroneously commented test code.
* stress/error-stack-trace-limit.js:
2018-05-30 Keith Miller <keith_miller@apple.com>
LLInt get_by_id prototype caching doesn't properly handle changes
https://bugs.webkit.org/show_bug.cgi?id=186112
Reviewed by Filip Pizlo.
* stress/llint-proto-get-by-id-cache-change-prototype.js: Added.
(foo):
* stress/llint-proto-get-by-id-cache-intercept-value.js: Added.
(foo):
2018-05-30 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "%" operation
https://bugs.webkit.org/show_bug.cgi?id=184327
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-mod-memory-stress.js: Added.
* stress/big-int-mod-to-primitive-precedence.js: Added.
* stress/big-int-mod-to-primitive.js: Added.
* stress/big-int-mod-type-error.js: Added.
* stress/big-int-mod-wrapped-value.js: Added.
* stress/big-int-mod.js: Added.
2018-05-29 Caitlin Potter <caitp@igalia.com>
[JSTests] update test262 expectations after r232261
https://bugs.webkit.org/show_bug.cgi?id=184267
Reviewed by Saam Barati.
* test262/expectations.yaml:
2018-05-29 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "<" and ">" relational operation
https://bugs.webkit.org/show_bug.cgi?id=185379
Reviewed by Yusuke Suzuki.
* stress/big-int-greater-than-general.js: Added.
* stress/big-int-greater-than-jit.js: Added.
* stress/big-int-greater-than-order-of-evaluation.js: Added.
* stress/big-int-greater-than-wrapped-values.js: Added.
* stress/big-int-less-than-general.js: Added.
* stress/big-int-less-than-jit.js: Added.
* stress/big-int-less-than-order-of-evaluation.js: Added.
* stress/big-int-less-than-wrapped-values.js: Added.
2018-05-29 Caitlin Potter <caitp@igalia.com>
[JSC] Fix Array.prototype.concat fast case when single argument is Proxy
https://bugs.webkit.org/show_bug.cgi?id=184267
Reviewed by Saam Barati.
* stress/array-concat-fast-spread-proxy.js: Copied from JSTests/stress/array-concat-spread-proxy.js.
(arrayEq):
(catch):
* stress/array-concat-spread-proxy.js:
2018-05-27 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement "+" and "-" unary operation
https://bugs.webkit.org/show_bug.cgi?id=182214
Reviewed by Yusuke Suzuki.
* stress/big-int-negate-basic.js: Added.
* stress/big-int-negate-jit.js: Added.
* stress/big-int-unary-plus.js: Added.
2018-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Rename Array#flatten to flat
https://bugs.webkit.org/show_bug.cgi?id=186012
Reviewed by Saam Barati.
* stress/array-flatten.js:
(shouldThrow):
* test262/expectations.yaml:
2018-05-23 Yusuke Suzuki <utatane.tea@gmail.com>
Upgrade test262 to May 24 version
https://bugs.webkit.org/show_bug.cgi?id=185937
Reviewed by Darin Adler.
* test262/expectations.yaml:
* test262/harness/doneprintHandle.js:
(DONE):
* test262/latest-changes-summary.txt:
* test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/direct/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/direct/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/direct/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/indirect/global-block-decl-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-existing-global-init.js:
* 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.
* test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/indirect/global-switch-case-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-global-init.js:
* test262/test/annexB/language/eval-code/indirect/global-switch-dflt-eval-global-existing-non-enumerable-global-init.js: Added.
* test262/test/annexB/language/global-code/block-decl-global-existing-global-init.js: Added.
(262.evalScript.f):
* test262/test/annexB/language/global-code/block-decl-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.f):
* test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-global-init.js: Added.
(262.evalScript.true.f):
(else._f):
* test262/test/annexB/language/global-code/if-decl-else-decl-a-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.true.f):
(else._f):
* test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-global-init.js: Added.
(262.evalScript.false._f):
(else.f):
* test262/test/annexB/language/global-code/if-decl-else-decl-b-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.false._f):
(else.f):
* test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-global-init.js: Added.
(262.evalScript.true.f):
* test262/test/annexB/language/global-code/if-decl-else-stmt-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.true.f):
* test262/test/annexB/language/global-code/if-decl-no-else-global-existing-global-init.js: Added.
(262.evalScript.true.f):
* test262/test/annexB/language/global-code/if-decl-no-else-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.true.f):
* test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-global-init.js: Added.
(else.f):
* test262/test/annexB/language/global-code/if-stmt-else-decl-global-existing-non-enumerable-global-init.js: Added.
(else.f):
* test262/test/annexB/language/global-code/switch-case-global-existing-global-init.js: Added.
(262.evalScript.switch.case.1):
(262.evalScript.switch):
* test262/test/annexB/language/global-code/switch-case-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.switch.case.1):
(262.evalScript.switch):
* test262/test/annexB/language/global-code/switch-dflt-global-existing-global-init.js: Added.
(262.evalScript.switch.default):
(262.evalScript.switch):
* test262/test/annexB/language/global-code/switch-dflt-global-existing-non-enumerable-global-init.js: Added.
(262.evalScript.switch.default):
(262.evalScript.switch):
* 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.
* 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.
* 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.
* 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.
* test262/test/built-ins/Array/prototype/flat/length.js: Added.
* test262/test/built-ins/Array/prototype/flat/name.js: Added.
* 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.
* 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.
* test262/test/built-ins/Array/prototype/flat/null-undefined-elements.js: Added.
* 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.
* test262/test/built-ins/Array/prototype/flat/positive-infinity.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/positive-infinity.js.
* test262/test/built-ins/Array/prototype/flat/prop-desc.js: Renamed from JSTests/test262/test/built-ins/Array/prototype/flatten/prop-desc.js.
* 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.
* test262/test/built-ins/Array/prototype/flatten/length.js: Removed.
* test262/test/built-ins/Array/prototype/flatten/name.js: Removed.
* test262/test/built-ins/Array/prototype/flatten/null-undefined-elements.js: Removed.
* test262/test/built-ins/AsyncGeneratorPrototype/next/name.js:
* test262/test/built-ins/AsyncGeneratorPrototype/return/name.js:
* test262/test/built-ins/AsyncGeneratorPrototype/throw/name.js:
* test262/test/built-ins/Math/acosh/nan-returns.js:
* test262/test/built-ins/Math/asinh/asinh-specialVals.js:
* test262/test/built-ins/Math/atanh/atanh-specialVals.js:
* test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
* test262/test/built-ins/Math/cbrt/prop-desc.js:
* test262/test/built-ins/Math/cosh/cosh-specialVals.js:
* test262/test/built-ins/Math/expm1/expm1-specialVals.js:
* test262/test/built-ins/Math/log10/Log10-specialVals.js:
* test262/test/built-ins/Math/log2/log2-basicTests.js:
* test262/test/built-ins/Math/sign/sign-specialVals.js:
* test262/test/built-ins/Math/sinh/sinh-specialVals.js:
* test262/test/built-ins/Math/tanh/tanh-specialVals.js:
* test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
* test262/test/built-ins/Math/trunc/trunc-specialVals.js:
* test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-value-regexp-dollar1.js: Added.
* test262/test/built-ins/Object/internals/DefineOwnProperty/consistent-writable-regexp-dollar1.js: Added.
* test262/test/intl402/Intl/getCanonicalLocales/descriptor.js:
* test262/test/intl402/Intl/getCanonicalLocales/duplicates.js:
* test262/test/intl402/Locale/constructor-getter-order.js: Added.
(new.Intl.Locale.toString):
(get language):
(get script):
(get region):
(get calendar):
(get collation):
(get hourCycle):
(get caseFirst):
(get numeric):
(get numberingSystem):
* test262/test/intl402/Locale/constructor-locale-object.js: Added.
* test262/test/intl402/Locale/constructor-non-iana-canon.js: Added.
* test262/test/intl402/Locale/constructor-options-casefirst-invalid.js: Added.
(valueOf):
(const.invalidCaseFirstOption.of.invalidCaseFirstOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-casefirst-valid.js: Added.
(toString):
* test262/test/intl402/Locale/constructor-options-collation-invalid.js: Added.
(const.invalidCollationOption.of.invalidCollationOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-collation-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-hourcycle-invalid.js: Added.
(const.invalidHourCycleOption.of.invalidHourCycleOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-hourcycle-valid.js: Added.
(toString):
* test262/test/intl402/Locale/constructor-options-language-grandfathered.js: Added.
* test262/test/intl402/Locale/constructor-options-language-valid.js:
(toString):
* test262/test/intl402/Locale/constructor-options-numberingsystem-invalid.js: Added.
(const.invalidNumberingSystemOption.of.invalidNumberingSystemOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-numberingsystem-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-numeric-valid.js: Added.
(valueOf):
* test262/test/intl402/Locale/constructor-options-region-valid.js:
* test262/test/intl402/Locale/constructor-options-script-valid.js:
(toString):
* test262/test/intl402/Locale/constructor-parse-twice.js: Added.
* test262/test/intl402/Locale/constructor-tag-tostring.js: Added.
(CustomError):
(WrongCustomError):
(const.errors.get Symbol):
(throw.new.CustomError):
(throw.new.CustomError.get toString):
(throw.new.CustomError.get valueOf):
(throw.new.WrongCustomError.get valueOf):
(throw.new.WrongCustomError):
* test262/test/intl402/Locale/constructor-unicode-ext-invalid.js: Added.
* test262/test/intl402/Locale/constructor-unicode-ext-valid.js: Added.
(canonical.of.Object.entries):
* test262/test/intl402/Locale/extensions-grandfathered.js: Added.
(of.testData.value.of.Object.entries):
* test262/test/intl402/Locale/extensions-private.js: Added.
* test262/test/intl402/Locale/getters-grandfathered.js: Added.
* test262/test/intl402/Locale/getters-missing.js: Added.
* test262/test/intl402/Locale/getters-privateuse.js: Added.
* test262/test/intl402/Locale/getters.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-symbol.js:
* test262/test/intl402/Locale/likely-subtags-grandfathered.js: Added.
* test262/test/intl402/Locale/prop-desc.js:
* test262/test/intl402/Locale/prototype/baseName/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/calendar/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/caseFirst/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/collation/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/constructor/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
* test262/test/intl402/Locale/prototype/hourCycle/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/language/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/maximize/length.js:
* test262/test/intl402/Locale/prototype/maximize/prop-desc.js:
* test262/test/intl402/Locale/prototype/minimize/length.js: Copied from JSTests/test262/test/intl402/Locale/prototype/maximize/length.js.
* test262/test/intl402/Locale/prototype/minimize/name.js: Added.
* test262/test/intl402/Locale/prototype/minimize/prop-desc.js: Copied from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
* test262/test/intl402/Locale/prototype/numberingSystem/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/numeric/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/region/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/script/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/toString/prop-desc.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/constructor.js.
* test262/test/intl402/Locale/prototype/toStringTag/toStringTag.js: Renamed from JSTests/test262/test/intl402/Locale/prototype/toStringTag.js.
* test262/test/intl402/Number/prototype/toLocaleString/length.js:
* test262/test/intl402/NumberFormat/length.js:
* test262/test/intl402/NumberFormat/name.js:
* test262/test/intl402/NumberFormat/prop-desc.js:
* test262/test/intl402/PluralRules/length.js:
* test262/test/intl402/PluralRules/name.js:
* test262/test/intl402/PluralRules/prop-desc.js: Copied from JSTests/test262/test/intl402/NumberFormat/prop-desc.js.
* test262/test/language/expressions/addition/bigint-and-number.js:
* test262/test/language/expressions/addition/bigint-arithmetic.js:
(testAdd): Deleted.
* test262/test/language/expressions/addition/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/addition/bigint-toprimitive.js:
* test262/test/language/expressions/addition/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-and/bigint-and-number.js:
* test262/test/language/expressions/bitwise-and/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/bitwise-and/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.0b011n.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.0b011n.valueOf):
(assert.sameValue.toString):
(assert.sameValue.0b011n.toString):
* test262/test/language/expressions/bitwise-and/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-not/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.toString):
* test262/test/language/expressions/bitwise-or/bigint-and-number.js:
* test262/test/language/expressions/bitwise-or/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/bitwise-or/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.0b011n.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.0b011n.valueOf):
(assert.sameValue.toString):
(assert.sameValue.0b011n.toString):
* test262/test/language/expressions/bitwise-or/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-xor/bigint-and-number.js:
* test262/test/language/expressions/bitwise-xor/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.0b011n.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.0b011n.valueOf):
(assert.sameValue.toString):
(assert.sameValue.0b011n.toString):
* test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js:
* test262/test/language/expressions/division/bigint-and-number.js:
* test262/test/language/expressions/division/bigint-arithmetic.js:
(testDiv): Deleted.
* test262/test/language/expressions/division/bigint-complex-infinity.js:
* test262/test/language/expressions/division/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/division/bigint-toprimitive.js:
* test262/test/language/expressions/division/bigint-wrapped-values.js:
* test262/test/language/expressions/does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/does-not-equals/bigint-and-object.js:
(assert.sameValue.0n.valueOf):
(assert.sameValue.valueOf):
(assert.sameValue.0n.toString):
(assert.sameValue.toString):
(assert.sameValue.900719925474099101n.valueOf):
(assert.sameValue.900719925474099101n.toString):
* test262/test/language/expressions/does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/equals/bigint-and-bigint.js:
* test262/test/language/expressions/equals/bigint-and-boolean.js:
* test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/equals/bigint-and-non-finite.js:
* test262/test/language/expressions/equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/equals/bigint-and-number.js:
* test262/test/language/expressions/equals/bigint-and-object.js:
(assert.sameValue.0n.valueOf):
(assert.sameValue.valueOf):
(assert.sameValue.0n.toString):
(assert.sameValue.toString):
(assert.sameValue.900719925474099101n.valueOf):
(assert.sameValue.900719925474099101n.toString):
* test262/test/language/expressions/equals/bigint-and-string.js:
* test262/test/language/expressions/exponentiation/bigint-and-number.js:
* test262/test/language/expressions/exponentiation/bigint-arithmetic.js:
(testExpt): Deleted.
* test262/test/language/expressions/exponentiation/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js: Renamed from JSTests/test262/test/language/expressions/exponentiation/bigint-exp-operator-negative-throws.js.
* test262/test/language/expressions/exponentiation/bigint-toprimitive.js:
* test262/test/language/expressions/exponentiation/bigint-wrapped-values.js:
* test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/greater-than/11.8.2-1.js:
(obj1.valueOf):
(obj2.valueOf):
* test262/test/language/expressions/greater-than/11.8.2-2.js:
(obj1.valueOf):
(obj2.toString):
* test262/test/language/expressions/greater-than/11.8.2-3.js:
(obj1.toString):
(obj2.valueOf):
* test262/test/language/expressions/greater-than/11.8.2-4.js:
(obj1.toString):
(obj2.toString):
* test262/test/language/expressions/greater-than/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than/bigint-and-boolean.js:
* test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than/bigint-and-number.js:
* test262/test/language/expressions/greater-than/bigint-and-string.js:
* test262/test/language/expressions/greater-than/bigint-and-symbol.js: Added.
* test262/test/language/expressions/left-shift/bigint-and-number.js:
* test262/test/language/expressions/left-shift/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/left-shift/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.toString):
(assert.sameValue.0b101n.Symbol.toPrimitive):
(assert.sameValue.0b101n.valueOf):
(assert.sameValue.0b101n.toString):
(valueOf):
* test262/test/language/expressions/left-shift/bigint-toprimitive.js:
* test262/test/language/expressions/left-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/less-than-or-equal/11.8.3-1.js:
(obj1.valueOf):
(obj2.valueOf):
* test262/test/language/expressions/less-than-or-equal/11.8.3-2.js:
(obj1.valueOf):
(obj2.toString):
* test262/test/language/expressions/less-than-or-equal/11.8.3-3.js:
(obj1.toString):
(obj2.valueOf):
* test262/test/language/expressions/less-than-or-equal/11.8.3-4.js:
(obj1.toString):
(obj2.toString):
* test262/test/language/expressions/less-than-or-equal/11.8.3-5.js: Removed.
* test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/less-than/bigint-and-bigint.js:
* test262/test/language/expressions/less-than/bigint-and-boolean.js:
* test262/test/language/expressions/less-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than/bigint-and-number.js:
* test262/test/language/expressions/less-than/bigint-and-string.js:
* test262/test/language/expressions/less-than/bigint-and-symbol.js: Added.
* test262/test/language/expressions/modulus/bigint-and-number.js:
* test262/test/language/expressions/modulus/bigint-arithmetic.js:
(testMod): Deleted.
* test262/test/language/expressions/modulus/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/modulus/bigint-modulo-zero.js:
* test262/test/language/expressions/modulus/bigint-toprimitive.js:
* test262/test/language/expressions/modulus/bigint-wrapped-values.js:
* test262/test/language/expressions/multiplication/bigint-and-number.js:
* test262/test/language/expressions/multiplication/bigint-arithmetic.js:
(testMul): Deleted.
* test262/test/language/expressions/multiplication/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/multiplication/bigint-toprimitive.js:
* test262/test/language/expressions/multiplication/bigint-wrapped-values.js:
* test262/test/language/expressions/right-shift/bigint-and-number.js:
* test262/test/language/expressions/right-shift/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/right-shift/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.toString):
(assert.sameValue.0b101n.Symbol.toPrimitive):
(assert.sameValue.0b101n.valueOf):
(assert.sameValue.0b101n.toString):
(valueOf):
* test262/test/language/expressions/right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/right-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js:
(assert.sameValue.0n.valueOf):
(assert.sameValue.valueOf):
(assert.sameValue.0n.toString):
(assert.sameValue.toString):
(assert.sameValue.900719925474099101n.valueOf):
(assert.sameValue.900719925474099101n.toString):
* test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/strict-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-equals/bigint-and-object.js:
(assert.sameValue.0n.valueOf):
(assert.sameValue.valueOf):
(assert.sameValue.0n.toString):
(assert.sameValue.toString):
(assert.sameValue.900719925474099101n.valueOf):
(assert.sameValue.900719925474099101n.toString):
* test262/test/language/expressions/strict-equals/bigint-and-string.js:
* test262/test/language/expressions/subtraction/bigint-and-number.js:
* test262/test/language/expressions/subtraction/bigint-arithmetic.js:
(testSub): Deleted.
* test262/test/language/expressions/subtraction/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/subtraction/bigint-toprimitive.js:
* test262/test/language/expressions/subtraction/bigint-wrapped-values.js:
* test262/test/language/expressions/unary-minus/bigint-non-primitive.js:
(assert.sameValue.Symbol.toPrimitive):
(assert.sameValue.valueOf):
(assert.sameValue.toString):
* test262/test/language/expressions/unary-plus/bigint-throws.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-errors.js:
(Symbol.toPrimitive):
(0n.Symbol.toPrimitive):
(valueOf):
(0n.valueOf):
(toString):
(0n.toString):
* test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js:
(Symbol.toPrimitive):
(valueOf):
(toString):
(0b101n.Symbol.toPrimitive):
(0b101n.valueOf):
(0b101n.toString):
(valueOf.valueOf):
* test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js:
* test262/test/language/literals/numeric/numeric-followed-by-ident.js: Added.
* test262/test/language/literals/string/line-continuation-double.js: Added.
* test262/test/language/literals/string/line-continuation-single.js: Added.
* test262/test262-Revision.txt:
2018-05-25 Mark Lam <mark.lam@apple.com>
for-in loops should preserve and restore the TDZ stack for each of its internal loops.
https://bugs.webkit.org/show_bug.cgi?id=185995
<rdar://problem/40173142>
Reviewed by Saam Barati.
* stress/regress-185995.js: Added.
2018-05-23 Keith Miller <keith_miller@apple.com>
Define length on CoW array should properly convert to writable
https://bugs.webkit.org/show_bug.cgi?id=185927
Reviewed by Yusuke Suzuki.
* stress/cow-define-length-as-value.js: Added.
(test):
2018-05-23 Michael Saboff <msaboff@apple.com>
Date.parse() doesn't properly handle input outside of ES Spec limits
https://bugs.webkit.org/show_bug.cgi?id=185868
Reviewed by Mark Lam.
New test.
* stress/date-parse-ranges.js: Added.
(shouldBe):
(throw.new.Error):
(shouldBeNaN):
2018-05-23 Rick Waldron <waldron.rick@gmail.com>
Conversion misspelled "Convertion" in error message string
https://bugs.webkit.org/show_bug.cgi?id=185436
Reviewed by Saam Barati, Michael Saboff.
* bigIntTests.yaml:
2018-05-23 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, skip test if memoryLimited is specified
https://bugs.webkit.org/show_bug.cgi?id=185888
* stress/regress-185888.js:
2018-05-22 Mark Lam <mark.lam@apple.com>
BytecodeGeneratorification shouldn't add a ValueProfile if the JIT is disabled.
https://bugs.webkit.org/show_bug.cgi?id=185896
<rdar://problem/40471403>
Reviewed by Saam Barati.
* stress/regress-185896.js: Added.
2018-05-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Fix CachedCall's argument count if RegExp has named captures
https://bugs.webkit.org/show_bug.cgi?id=185587
Reviewed by Mark Lam.
* test262/expectations.yaml:
2018-05-22 Mark Lam <mark.lam@apple.com>
StringImpl utf8 conversion should not fail silently.
https://bugs.webkit.org/show_bug.cgi?id=185888
<rdar://problem/40464506>
Reviewed by Filip Pizlo.
* stress/regress-185888.js: Added.
2018-05-22 Keith Miller <keith_miller@apple.com>
We should have a CoW storage for NewArrayBuffer arrays.
https://bugs.webkit.org/show_bug.cgi?id=185003
Reviewed by Filip Pizlo.
* stress/cow-convert-contiguous-to-array-storage.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/cow-convert-double-to-array-storage.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/cow-convert-double-to-contiguous.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/cow-convert-int32-to-array-storage.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/cow-convert-int32-to-contiguous.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/cow-convert-int32-to-double.js: Added.
(createBuffer):
(shouldBe):
(test):
* stress/put-on-cow-prototype.js: Added.
(putByVal):
(putById):
2018-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, reland InById cache
https://bugs.webkit.org/show_bug.cgi?id=185682
* stress/in-by-id-accessors.js: Added.
(shouldBe):
(test):
(protoGetter.__proto__.get hello):
(protoSetter.__proto__.set hello):
(i.shouldBe.test.get hello):
(i.shouldBe.test.set hello):
* stress/in-by-id-ai.js: Added.
(shouldBe):
(test):
* stress/in-by-id-custom-accessors.js: Added.
(shouldBe):
(test1):
(test2):
* stress/in-by-id-custom-values.js: Added.
(shouldBe):
(test):
* stress/in-by-id-operation.js: Added.
(shouldBe):
(test):
(selfCache):
* stress/in-by-id-proxy.js: Added.
(shouldBe):
(test):
(handler.has):
2018-05-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r231998 and r232017.
https://bugs.webkit.org/show_bug.cgi?id=185842
causes crashes on 32 JSC bot (Requested by realdawei on
#webkit).
Reverted changesets:
"[JSC] JSC should have consistent InById IC"
https://bugs.webkit.org/show_bug.cgi?id=185682
https://trac.webkit.org/changeset/231998
"Unreviewed, fix 32bit and scope release"
https://bugs.webkit.org/show_bug.cgi?id=185682
https://trac.webkit.org/changeset/232017
2018-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] JSC should have consistent InById IC
https://bugs.webkit.org/show_bug.cgi?id=185682
Reviewed by Filip Pizlo.
* stress/in-by-id-accessors.js: Added.
(shouldBe):
(test):
(protoGetter.__proto__.get hello):
(protoSetter.__proto__.set hello):
(i.shouldBe.test.get hello):
(i.shouldBe.test.set hello):
* stress/in-by-id-ai.js: Added.
(shouldBe):
(test):
* stress/in-by-id-custom-accessors.js: Added.
(shouldBe):
(test1):
(test2):
* stress/in-by-id-custom-values.js: Added.
(shouldBe):
(test):
* stress/in-by-id-operation.js: Added.
(shouldBe):
(test):
(selfCache):
* stress/in-by-id-proxy.js: Added.
(shouldBe):
(test):
(handler.has):
2018-05-18 Keith Miller <keith_miller@apple.com>
op_in should mark if it sees out of bounds accesses
https://bugs.webkit.org/show_bug.cgi?id=185792
Reviewed by Filip Pizlo.
* stress/has-indexed-property-array-storage-ftl.js:
(test2):
* stress/has-indexed-property-slow-put-array-storage-ftl.js:
(test2):
2018-05-18 Mark Lam <mark.lam@apple.com>
Add missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=185786
<rdar://problem/35686560>
Reviewed by Michael Saboff.
* stress/regress-185786.js: Added.
2018-05-16 Filip Pizlo <fpizlo@apple.com>
JSC should have InstanceOf inline caching
https://bugs.webkit.org/show_bug.cgi?id=185652
Reviewed by Saam Barati.
* microbenchmarks/instanceof-always-hit-one.js: Added.
* microbenchmarks/instanceof-always-hit-two.js: Added.
* microbenchmarks/instanceof-dynamic.js: Added.
* microbenchmarks/instanceof-sometimes-hit.js: Added.
* stress/instanceof-dynamic-proxy-check-structure.js: Added.
* stress/instanceof-dynamic-proxy-loop.js: Added.
* stress/instanceof-dynamic-proxy.js: Added.
* stress/instanceof-hit-one-object-then-another.js: Added.
* stress/instanceof-hit-two-objects-then-another.js: Added.
* stress/instanceof-prototype-change.js: Added.
* stress/instanceof-prototype-change-to-hit.js: Added.
* stress/instanceof-prototype-change-to-null.js: Added.
* stress/instanceof-prototype-change-watchpointable.js: Added.
2018-05-17 Michael Saboff <msaboff@apple.com>
We don't throw SyntaxErrors for runtime generated regular expressions with errors
https://bugs.webkit.org/show_bug.cgi?id=185755
Reviewed by Keith Miller.
New regression test.
* stress/regexp-with-runtime-syntax-errors.js: Added.
(testThrowsSyntaxtError):
(fromExecWithBadUnicodeEscape):
(fromTestWithBadUnicodeProperty):
(fromSplitWithBadUnicodeIdentity):
(fromMatchWithBadUnicodeBackReference):
(fromReplaceWithBadUnicodeEscape):
(fromSearchWithBadUnicodeEscape):
2018-05-16 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "/" operation
https://bugs.webkit.org/show_bug.cgi?id=183996
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-div-jit.js: Added.
* stress/big-int-div-memory-stress.js: Added.
* stress/big-int-div-to-primitive-precedence.js: Added.
* stress/big-int-div-to-primitive.js: Added.
* stress/big-int-div-type-error.js: Added.
* stress/big-int-div-wrapped-value.js: Added.
* stress/big-int-division.js: Added.
2018-05-16 Saam Barati <sbarati@apple.com>
Constant fold CheckTypeInfoFlags on ImplementsDefaultHasInstance
https://bugs.webkit.org/show_bug.cgi?id=185670
Reviewed by Yusuke Suzuki.
* microbenchmarks/constant-fold-check-type-info-flags.js: Added.
* stress/dont-constant-fold-check-type-info-on-bound-function.js: Added.
2018-05-16 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r231845.
https://bugs.webkit.org/show_bug.cgi?id=185702
it is breaking Apple High Sierra 32-bit JSC bot (Requested by
caiolima on #webkit).
Reverted changeset:
"[ESNext][BigInt] Implement support for "/" operation"
https://bugs.webkit.org/show_bug.cgi?id=183996
https://trac.webkit.org/changeset/231845
2018-05-16 Filip Pizlo <fpizlo@apple.com>
DFG models InstanceOf incorrectly
https://bugs.webkit.org/show_bug.cgi?id=185694
Reviewed by Keith Miller.
* stress/instanceof-proxy-check-structure.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
(i.new.Bar):
(new.Bar):
* stress/instanceof-proxy-loop.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
* stress/instanceof-proxy.js: Added.
(Foo):
(Bar):
(doBadThings):
(getPrototypeOf):
(foo):
2018-05-16 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "/" operation
https://bugs.webkit.org/show_bug.cgi?id=183996
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-div-jit.js: Added.
* stress/big-int-div-memory-stress.js: Added.
* stress/big-int-div-to-primitive-precedence.js: Added.
* stress/big-int-div-to-primitive.js: Added.
* stress/big-int-div-type-error.js: Added.
* stress/big-int-div-wrapped-value.js: Added.
* stress/big-int-division.js: Added.
2018-05-14 Leo Balter <leonardo.balter@gmail.com>
Fix a legacy CRLF eol from Test262
https://bugs.webkit.org/show_bug.cgi?id=185565
Reviewed by Yusuke Suzuki.
* test262/config.yaml:
* test262/test/built-ins/Math/cbrt/prop-desc.js:
2018-05-14 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] timeClip(-0) should produce +0
https://bugs.webkit.org/show_bug.cgi?id=185589
Reviewed by Saam Barati.
Fix several test262 failures.
* stress/date-negative-zero.js: Added.
(shouldBe):
* test262/expectations.yaml:
2018-05-13 Caio Lima <ticaiolima@gmail.com>
[BigInt] stress/big-int-spec-to-primitive.js test is failing
https://bugs.webkit.org/show_bug.cgi?id=185582
Reviewed by Yusuke Suzuki.
This patch is removing the use of ```numberOfDFGCompiles``` from
stress/big-int-spec-to-primitive.js because it makes this est fail
sometimes.
* stress/big-int-spec-to-primitive.js:
2018-05-13 Andy VanWagoner <andy@vanwagoner.family>
[INTL] Improve spec & test262 compliance for Intl APIs
https://bugs.webkit.org/show_bug.cgi?id=185578
Reviewed by Yusuke Suzuki.
Remove intl402 failures that have been fixed.
* test262/expectations.yaml:
* stress/regress-178385.js: toStringTag is configurable, but not writable.
2018-05-11 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-mul-jit.js: Added.
* stress/big-int-mul-to-primitive-precedence.js: Added.
* stress/big-int-mul-to-primitive.js: Added.
* stress/big-int-mul-type-error.js: Added.
* stress/big-int-mul-wrapped-value.js: Added.
* stress/big-int-multiplication.js: Added.
* stress/big-int-multiply-memory-stress.js: Added.
2018-05-11 Michael Saboff <msaboff@apple.com>
[DFG] Compiler uses incorrect output register for NumberIsInteger operation
https://bugs.webkit.org/show_bug.cgi?id=185328
Reviewed by Keith Miller.
New regression test.
* stress/isInteger-doesnt-overwrite-argument.js: Added.
(testIsInteger):
2018-05-09 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Object.assign for final objects should be faster
https://bugs.webkit.org/show_bug.cgi?id=185348
Reviewed by Saam Barati.
* stress/object-assign-fast-path.js: Added.
(shouldBe):
(checkProperty):
2018-05-10 Leo Balter <leonardo.balter@gmail.com>
Update Test262 tests through the new import script - 20180509
https://bugs.webkit.org/show_bug.cgi?id=185482
Reviewed by Michael Saboff.
Also update the test262/expecatations.yaml with the recent imported files.
* test262/expectations.yaml:
* test262/harness/compareIterator.js: Added.
(assert.compareIterator):
* test262/harness/nativeFunctionMatcher.js:
(const.assertToStringOrNativeFunction):
(const.assertNativeFunction):
* test262/harness/regExpUtils.js:
* test262/harness/testIntl.js:
(getInvalidLanguageTags):
* test262/harness/testTypedArray.js:
* test262/harness/wellKnownIntrinsicObjects.js: Added.
(WellKnownIntrinsicObjects.forEach.wkio.catch):
* test262/latest-changes-summary.txt: Added.
* 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.
(catch):
* 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.
(catch):
* 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.
(catch):
* test262/test/annexB/language/function-code/block-decl-nested-blocks-with-fun-decl.js: Added.
(g.f):
(g):
* test262/test/annexB/language/function-code/block-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/block-decl-strict.js.
(catch):
(f):
* test262/test/annexB/language/function-code/switch-case-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
(catch):
(switch.case.1):
(switch):
* test262/test/annexB/language/function-code/switch-dflt-decl-nostrict.js: Copied from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
(catch):
(switch.default):
(switch):
* test262/test/built-ins/Array/prototype/filter/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
(r.a.filter):
* test262/test/built-ins/Array/prototype/indexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
(allowProxyTraps.has):
(fromIndex.valueOf):
* test262/test/built-ins/Array/prototype/lastIndexOf/calls-only-has-on-prototype-after-length-zeroed.js: Added.
(allowProxyTraps.has):
(fromIndex.valueOf):
* test262/test/built-ins/Array/prototype/map/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
(r.a.map):
* test262/test/built-ins/Array/prototype/slice/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Array/prototype/splice/property-traps-order-with-species.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Array/prototype/splice/target-array-with-non-writable-property.js: Added.
(a.Symbol.species):
* test262/test/built-ins/Atomics/Symbol.toStringTag.js:
* test262/test/built-ins/Atomics/add/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/non-views.js:
* test262/test/built-ins/Atomics/add/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/add/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/non-views.js:
* test262/test/built-ins/Atomics/and/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/good-views.js:
(testWithTypedArrayConstructors):
(view): Deleted.
* test262/test/built-ins/Atomics/compareExchange/non-views.js:
* test262/test/built-ins/Atomics/compareExchange/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/non-views.js:
* test262/test/built-ins/Atomics/exchange/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/isLockFree/corner-cases.js:
(hide):
* test262/test/built-ins/Atomics/isLockFree/value.js:
(testIsLockFree): Deleted.
* test262/test/built-ins/Atomics/load/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/non-views.js:
* test262/test/built-ins/Atomics/load/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/load/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/non-views.js:
* test262/test/built-ins/Atomics/or/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/prop-desc.js:
* test262/test/built-ins/Atomics/proto.js:
* test262/test/built-ins/Atomics/store/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/good-views.js:
(testWithTypedArrayConstructors):
(ToInteger):
* test262/test/built-ins/Atomics/store/non-views.js:
* test262/test/built-ins/Atomics/store/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/non-views.js:
* test262/test/built-ins/Atomics/sub/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wait/bad-range.js: Copied from JSTests/test262/test/built-ins/Atomics/wake/bad-range.js.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wait/cannot-suspend-throws.js:
* test262/test/built-ins/Atomics/wait/did-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/false-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/false-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/good-views.js:
(r.getReport):
(getReport):
* test262/test/built-ins/Atomics/wait/nan-for-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/negative-index-throws.js:
* test262/test/built-ins/Atomics/wait/negative-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-timeout.js.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/negative-timeout.js:
(262.agent.start.262.agent.receiveBroadcast): Deleted.
(getReport): Deleted.
* test262/test/built-ins/Atomics/wait/no-spurious-wakeup.js:
(getReport):
* test262/test/built-ins/Atomics/wait/non-int32-typedarray-throws.js:
* test262/test/built-ins/Atomics/wait/non-shared-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
* test262/test/built-ins/Atomics/wait/not-a-typedarray-throws.js:
* test262/test/built-ins/Atomics/wait/not-an-object-throws.js:
* test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js:
* test262/test/built-ins/Atomics/wait/null-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/null-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/object-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/false-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/object-for-timeout.js:
(valueOf.valueOf):
(toString.toString):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/out-of-range-index-throws.js:
* test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/poisoned-object-for-timeout-throws.js:
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-index-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-index-throws.js:
(poisonedToPrimitive.Symbol.toPrimitive):
(poisoned.valueOf): Deleted.
(poisonedWithString.get valueOf): Deleted.
(poisonedToPrimitive.get Symbol): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws-agent.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-timeout-throws.js:
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/symbol-for-value-throws-agent.js: Added.
(getReport):
(262.agent.start.poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/symbol-for-value-throws.js: Added.
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
* test262/test/built-ins/Atomics/wait/true-for-timeout-agent.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-for-timeout.js.
(getReport):
(262.agent.start.valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/true-for-timeout.js:
(valueOf.valueOf):
(toPrimitive.Symbol.toPrimitive):
(getReport): Deleted.
(262.agent.start.262.agent.receiveBroadcast): Deleted.
* test262/test/built-ins/Atomics/wait/undefined-for-timeout.js:
(getReport):
* test262/test/built-ins/Atomics/wait/undefined-index-defaults-to-zero.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
* 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.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/wait-index-value-not-equal.js:
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/waiterlist-block-indexedposition-wake.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/waiterlist-order-of-operations-is-fifo.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/was-woken-before-timeout.js:
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wait/was-woken.js:
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wake/count-boundary-cases.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/counts.js.
* test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-missing.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/count-defaults-to-infinity-undefined.js: Added.
(getReport):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/count-from-nans.js: Added.
* test262/test/built-ins/Atomics/wake/count-symbol-throws.js: Added.
* test262/test/built-ins/Atomics/wake/count-tointeger-throws-then-wake-throws.js: Added.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/good-views.js:
* test262/test/built-ins/Atomics/wake/negative-count.js: Renamed from JSTests/test262/test/built-ins/Atomics/wake/wake-negative.js.
* test262/test/built-ins/Atomics/wake/negative-index-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/negative-index-throws.js.
(poisoned.valueOf):
* 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.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/non-shared-bufferdata-throws.js: Renamed from JSTests/test262/test/built-ins/Atomics/wait/nonshared-bufferdata-throws.js.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/non-views.js:
* test262/test/built-ins/Atomics/wake/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* 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.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/not-an-object-throws.js: Added.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/null-bufferdata-throws.js: Copied from JSTests/test262/test/built-ins/Atomics/wait/null-bufferdata-throws.js.
(poisoned.valueOf):
* 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.
(poisoned.valueOf):
* test262/test/built-ins/Atomics/wake/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/wake/symbol-for-index-throws.js: Added.
(poisonedValueOf.valueOf):
(poisonedToPrimitive.Symbol.toPrimitive):
* 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.
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
* test262/test/built-ins/Atomics/wake/wake-all-on-loc.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-all.js:
(262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-in-order.js:
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-nan.js:
(getReport):
* test262/test/built-ins/Atomics/wake/wake-one.js:
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-rewake-noop.js: Added.
(getReport):
(waitUntil):
(262.agent.start.262.agent.receiveBroadcast):
* test262/test/built-ins/Atomics/wake/wake-two.js:
(getReport):
* test262/test/built-ins/Atomics/wake/wake-with-no-agents-waiting.js: Added.
(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-with-no-matching-agents-waiting.js: Added.
(262.agent.start.262.agent.receiveBroadcast):
(waitUntil):
* test262/test/built-ins/Atomics/wake/wake-zero.js:
(i.262.agent.start.262.agent.receiveBroadcast):
(getReport):
(waitUntil):
* test262/test/built-ins/Atomics/xor/bad-range.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/good-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/non-views.js:
* test262/test/built-ins/Atomics/xor/nonshared-int-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/Atomics/xor/shared-nonint-views.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-errors.js:
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-toprimitive.js:
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint-wrapped-values.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-errors.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-toprimitive.js:
* test262/test/built-ins/BigInt/asIntN/bits-toindex-wrapped-values.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-errors.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-toprimitive.js:
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint-wrapped-values.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-errors.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-toprimitive.js:
* test262/test/built-ins/BigInt/asUintN/bits-toindex-wrapped-values.js:
* test262/test/built-ins/BigInt/constructor-empty-string.js:
* test262/test/built-ins/BigInt/constructor-from-binary-string.js:
* test262/test/built-ins/BigInt/constructor-from-decimal-string.js:
* test262/test/built-ins/BigInt/constructor-from-hex-string.js:
* test262/test/built-ins/BigInt/constructor-from-octal-string.js:
* test262/test/built-ins/BigInt/constructor-from-string-syntax-errors.js:
* test262/test/built-ins/BigInt/constructor-integer.js: Added.
* test262/test/built-ins/BigInt/constructor-trailing-leading-spaces.js:
* test262/test/built-ins/BigInt/issafeinteger-true.js: Removed.
* test262/test/built-ins/BigInt/out-of-bounds-integer-rangeerror.js: Removed.
* test262/test/built-ins/BigInt/prototype/Symbol.toStringTag.js:
* test262/test/built-ins/BigInt/prototype/toString/default-radix.js: Added.
* test262/test/built-ins/BigInt/prototype/toString/thisbigintvalue-not-valid-throws.js:
* test262/test/built-ins/BigInt/prototype/valueOf/cross-realm.js: Added.
* test262/test/built-ins/BigInt/tostring-throws.js: Copied from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
* test262/test/built-ins/BigInt/valueof-throws.js: Renamed from JSTests/test262/test/built-ins/BigInt/value-of-throws.js.
(BigInt.valueOf):
* test262/test/built-ins/DataView/prototype/setBigInt64/set-values-return-undefined.js:
(values.forEach):
* test262/test/built-ins/Function/prototype/bind/length-exceeds-int32.js: Added.
(f):
* test262/test/built-ins/Function/prototype/toString/anonymous-intrinsics.js: Removed.
* test262/test/built-ins/Function/prototype/toString/bound-function.js:
(assertNativeFunction):
(let.f): Deleted.
* test262/test/built-ins/Function/prototype/toString/built-in-function-object.js: Added.
* test262/test/built-ins/Function/prototype/toString/intrinsics.js: Removed.
* test262/test/built-ins/Function/prototype/toString/proxy-arrow-function.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-async-function.js: Added.
(assertNativeFunction.new.Proxy.async):
* test262/test/built-ins/Function/prototype/toString/proxy-async-generator-function.js: Added.
(assertNativeFunction.new.Proxy.async):
* test262/test/built-ins/Function/prototype/toString/proxy-async-generator-method-definition.js: Added.
(assertNativeFunction.new.Proxy.async.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-async-method-definition.js: Added.
(assertNativeFunction.new.Proxy.async.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-bound-function.js: Added.
(assertNativeFunction.new.Proxy):
(bind):
* test262/test/built-ins/Function/prototype/toString/proxy-class.js: Added.
(assertNativeFunction):
* test262/test/built-ins/Function/prototype/toString/proxy-function-expression.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-generator-function.js: Added.
(assertNativeFunction.new.Proxy):
* test262/test/built-ins/Function/prototype/toString/proxy-method-definition.js: Added.
(assertNativeFunction.new.Proxy.method):
(apply):
* test262/test/built-ins/Function/prototype/toString/proxy-non-callable-throws.js: Added.
* test262/test/built-ins/Function/prototype/toString/proxy.js: Removed.
* test262/test/built-ins/Function/prototype/toString/well-known-intrinsic-object-functions.js: Added.
(WellKnownIntrinsicObjects.forEach):
* test262/test/built-ins/JSON/prop-desc.js: Added.
* test262/test/built-ins/Math/acosh/nan-returns.js:
* test262/test/built-ins/Math/asinh/asinh-specialVals.js:
* test262/test/built-ins/Math/atanh/atanh-specialVals.js:
* test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
* test262/test/built-ins/Math/cbrt/prop-desc.js:
* test262/test/built-ins/Math/cosh/cosh-specialVals.js:
* test262/test/built-ins/Math/expm1/expm1-specialVals.js:
* test262/test/built-ins/Math/log10/Log10-specialVals.js:
* test262/test/built-ins/Math/log2/log2-basicTests.js:
* test262/test/built-ins/Math/prop-desc.js:
* test262/test/built-ins/Math/sign/sign-specialVals.js:
* test262/test/built-ins/Math/sinh/sinh-specialVals.js:
* test262/test/built-ins/Math/tanh/tanh-specialVals.js:
* test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
* test262/test/built-ins/Math/trunc/trunc-specialVals.js:
* test262/test/built-ins/Object/assign/strings-and-symbol-order.js: Added.
* test262/test/built-ins/Object/keys/property-traps-order-with-proxied-array.js: Added.
(get t):
* test262/test/built-ins/Reflect/Reflect.js: Removed.
* test262/test/built-ins/Reflect/prop-desc.js: Added.
* test262/test/built-ins/Reflect/properties.js: Removed.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/internal-regexp-lastindex-not-zero.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-is-false.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-internal-regexp-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/isregexp-this-throws.js: Added.
(obj.get Symbol):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/length.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/name.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/prop-desc.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/regexpcreate-this-throws.js: Added.
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-constructor-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-get-species-throws.js: Added.
(regexp.get Symbol):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-not-object-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-is-undefined.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-not-constructor.js: Added.
(callMatchAll):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-is-null-or-undefined.js: Added.
(TestWithConstructor):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor-species-throws.js: Added.
(regexp.Symbol.species):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-constructor.js: Added.
(regexp.Symbol.species):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-global-throws.js: Added.
(regexp.Symbol.species):
(get assert):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/species-regexp-get-unicode-throws.js: Added.
(regexp.Symbol.species):
(get assert):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring-throws.js: Added.
(obj.valueOf):
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/string-tostring.js: Added.
(obj.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags-throws.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-get-flags.js: Added.
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-lastindex-cached.js: Added.
(regexp.lastIndex.valueOf):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-not-object-throws.js: Added.
(callMatchAll):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tolength-lastindex-throws.js: Added.
(regexp.lastIndex.valueOf):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags-throws.js: Added.
(value.valueOf):
(value.toString):
* test262/test/built-ins/RegExp/prototype/Symbol.matchAll/this-tostring-flags.js: Added.
(value.toString):
* test262/test/built-ins/RegExpStringIteratorPrototype/Symbol.toStringTag.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/ancestry.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-call-throws.js: Added.
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-get-throws.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-throws.js: Added.
(return.get string_appeared_here):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring-throws.js: Added.
(return.toString):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-match-get-0-tostring.js: Added.
(execResult.get string_appeared_here):
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec-not-callable.js: Added.
(TestWithRegExpExec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/custom-regexpexec.js: Added.
(callNextWithExecReturnValue.RegExp.prototype.exec):
(callNextWithExecReturnValue):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/length.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/name.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration-global.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-iteration.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/next-missing-internal-slots.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/prop-desc.js: Added.
* test262/test/built-ins/RegExpStringIteratorPrototype/next/regexp-tolength-lastindex-throws.js: Added.
(RegExp.prototype.exec):
* test262/test/built-ins/RegExpStringIteratorPrototype/next/this-is-not-object-throws.js: Added.
(callNext):
* test262/test/built-ins/String/prototype/matchAll/length.js: Added.
* test262/test/built-ins/String/prototype/matchAll/name.js: Added.
* test262/test/built-ins/String/prototype/matchAll/prop-desc.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-is-null.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-is-undefined.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-invocation.js: Added.
(obj.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js: Added.
(regexp.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-has-no-matchAll.js: Added.
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js: Added.
(RegExp.prototype.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js: Added.
(RegExp.prototype.Symbol.matchAll):
* test262/test/built-ins/String/prototype/matchAll/this-val-non-obj-coercible.js: Added.
* test262/test/built-ins/Symbol/matchAll/cross-realm.js: Added.
* test262/test/built-ins/Symbol/matchAll/prop-desc.js: Added.
* test262/test/harness/testTypedArray.js:
* test262/test/intl402/Array/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
* test262/test/intl402/Intl/getCanonicalLocales/invalid-tags.js:
* test262/test/intl402/Locale/constructor-newtarget-undefined.js: Added.
* test262/test/intl402/Locale/constructor-options-calendar-invalid.js: Added.
(const.invalidCalendarOption.of.invalidCalendarOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-calendar-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-language-invalid.js: Added.
(const.invalidLanguageOption.of.invalidLanguageOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-language-valid.js: Added.
(toString):
* test262/test/intl402/Locale/constructor-options-region-invalid.js: Added.
(const.invalidRegionOption.of.invalidRegionOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-region-valid.js: Added.
* test262/test/intl402/Locale/constructor-options-script-invalid.js: Added.
(const.invalidScriptOption.of.invalidScriptOptions.new.Intl.Locale):
* test262/test/intl402/Locale/constructor-options-script-valid.js: Added.
(toString):
* test262/test/intl402/Locale/function-prototype.js: Added.
* test262/test/intl402/Locale/instance-extensibility.js: Added.
* test262/test/intl402/Locale/instance.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-boolean.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-null.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-number.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-symbol.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws-undefined.js: Added.
* test262/test/intl402/Locale/invalid-tag-throws.js: Added.
(const.invalidTag.of.getInvalidLanguageTags):
* test262/test/intl402/Locale/length.js: Added.
* test262/test/intl402/Locale/name.js: Added.
* test262/test/intl402/Locale/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/constructor.js: Added.
* test262/test/intl402/Locale/prototype/maximize/length.js: Added.
* test262/test/intl402/Locale/prototype/maximize/name.js: Added.
* test262/test/intl402/Locale/prototype/maximize/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/toStringTag.js: Added.
* test262/test/intl402/TypedArray/prototype/toLocaleString/calls-toLocaleString-number-elements.js: Added.
(testWithTypedArrayConstructors):
* test262/test/language/asi/S7.9_A11_T8.js:
(else.x.1): Deleted.
* test262/test/language/asi/S7.9_A4.js:
(catch):
* test262/test/language/asi/S7.9_A5.1_T1.js:
* test262/test/language/asi/S7.9_A5.3_T1.js:
* test262/test/language/block-scope/syntax/redeclaration/function-declaration-attempt-to-redeclare-with-var-declaration-nested-in-function.js: Added.
(g.f):
(g):
* test262/test/language/destructuring/binding/initialization-requires-object-coercible-null.js:
* test262/test/language/destructuring/binding/initialization-requires-object-coercible-undefined.js:
* test262/test/language/destructuring/binding/initialization-returns-normal-completion-for-empty-objects.js:
* test262/test/language/destructuring/binding/syntax/array-elements-with-initializer.js:
* test262/test/language/destructuring/binding/syntax/array-elements-with-object-patterns.js:
* test262/test/language/destructuring/binding/syntax/array-elements-without-initializer.js:
* test262/test/language/destructuring/binding/syntax/array-pattern-with-elisions.js:
* test262/test/language/destructuring/binding/syntax/array-pattern-with-no-elements.js:
* test262/test/language/destructuring/binding/syntax/array-rest-elements.js:
* test262/test/language/destructuring/binding/syntax/object-pattern-with-no-property-list.js:
* test262/test/language/destructuring/binding/syntax/property-list-bindings-elements.js:
* test262/test/language/destructuring/binding/syntax/property-list-followed-by-a-single-comma.js:
* test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
* test262/test/language/destructuring/binding/syntax/property-list-with-property-list.js:
* test262/test/language/destructuring/binding/syntax/recursive-array-and-object-patterns.js:
* 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.
* 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.
(catch):
* test262/test/language/eval-code/direct/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/eval-code/direct/block-decl-strict-caller.js.
* 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.
* 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.
(catch):
* 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.
* 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.
* 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.
(catch):
* 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.
* test262/test/language/expressions/async-arrow-function/await-as-param-ident-nested-arrow-parameter-position.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-body-position.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/await-as-param-nested-arrow-parameter-position.js: Added.
(async.a):
* test262/test/language/expressions/async-arrow-function/await-as-param-rest-nested-arrow-parameter-position.js: Added.
(async.a):
* test262/test/language/expressions/async-arrow-function/escaped-async-line-terminator.js: Added.
* test262/test/language/expressions/async-generator/generator-created-after-decl-inst.js: Added.
(g.async.a):
* test262/test/language/expressions/class/class-name-ident-await-escaped-module.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await-module.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-await.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-let-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-let.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-static-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-static.js: Added.
* test262/test/language/expressions/class/class-name-ident-yield-escaped.js: Added.
(C):
* test262/test/language/expressions/class/class-name-ident-yield.js: Added.
(C):
* test262/test/language/expressions/class/constructor-this-tdz-during-initializers.js: Added.
(Base):
(C):
* test262/test/language/expressions/class/fields-run-once-on-double-super.js: Added.
(Base):
(C):
* test262/test/language/expressions/generators/generator-created-after-decl-inst.js: Added.
(g):
* test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-boolean.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-string.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-string.js: Added.
* test262/test/language/expressions/less-than/bigint-and-boolean.js: Added.
* test262/test/language/expressions/less-than/bigint-and-incomparable-string.js: Added.
* test262/test/language/expressions/less-than/bigint-and-string.js: Added.
* test262/test/language/expressions/object/method-definition/generator-super-prop-param.js:
* test262/test/language/function-code/block-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/block-decl-strict.js.
* test262/test/language/function-code/switch-case-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-case-decl-strict.js.
* test262/test/language/function-code/switch-dflt-decl-onlystrict.js: Renamed from JSTests/test262/test/language/function-code/switch-dflt-decl-strict.js.
* test262/test/language/line-terminators/S7.3_A2.3.js: Removed.
* test262/test/language/line-terminators/S7.3_A2.4.js: Removed.
* test262/test/language/literals/regexp/invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/invalid-range-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-optional-negative-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-lookbehind.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-negative-lookahead.js: Copied from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/regexp/u-invalid-range-negative-lookbehind.js: Renamed from JSTests/test262/test/language/literals/regexp/u-invalid-quantifiable-assertion.js.
* test262/test/language/literals/string/line-separator-eval.js: Added.
* test262/test/language/literals/string/line-separator.js: Added.
* test262/test/language/literals/string/paragraph-separator-eval.js: Added.
* test262/test/language/literals/string/paragraph-separator.js: Added.
* test262/test/language/module-code/early-strict-mode.js:
* test262/test/language/statements/async-generator/generator-created-after-decl-inst.js: Added.
(async.g):
* test262/test/language/statements/break/S12.8_A8_T1.js:
(catch):
* test262/test/language/statements/break/S12.8_A8_T2.js:
(catch):
* test262/test/language/statements/class/class-name-ident-await-escaped-module.js: Added.
(aw):
* test262/test/language/statements/class/class-name-ident-await-escaped.js: Added.
(aw):
* test262/test/language/statements/class/class-name-ident-await-module.js: Added.
(await):
* test262/test/language/statements/class/class-name-ident-await.js: Added.
(await):
* test262/test/language/statements/class/class-name-ident-let-escaped.js: Added.
(l):
* test262/test/language/statements/class/class-name-ident-let.js: Added.
(let):
* test262/test/language/statements/class/class-name-ident-static-escaped.js: Added.
(st):
* test262/test/language/statements/class/class-name-ident-static.js: Added.
* test262/test/language/statements/class/class-name-ident-yield-escaped.js: Added.
(yi):
* test262/test/language/statements/class/class-name-ident-yield.js: Added.
(yield):
* test262/test/language/statements/continue/S12.7_A8_T1.js:
(catch):
* test262/test/language/statements/continue/S12.7_A8_T2.js:
(catch):
* test262/test/language/statements/generators/generator-created-after-decl-inst.js: Added.
(g):
* test262/test/language/statements/try/early-catch-duplicates.js:
* test262/test/language/statements/try/early-catch-function.js: Added.
(f.catch.e):
(f):
* test262/test/language/statements/try/early-catch-lex.js:
* test262/test/language/statements/try/early-catch-var.js:
* test262/test262-Revision.txt:
2018-05-09 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "==" operation
https://bugs.webkit.org/show_bug.cgi?id=184474
Reviewed by Yusuke Suzuki.
* stress/big-int-equals-basic.js: Added.
* stress/big-int-equals-to-primitive-precedence.js: Added.
* stress/big-int-equals-wrapped-value.js: Added.
2018-05-08 Valerie R Young <valerie@bocoup.com>
test262/Runner.pm: move input files to JSTests/test262
https://bugs.webkit.org/show_bug.cgi?id=185389
Reviewed by Michael Saboff.
* test262/config.yaml: Renamed from Tools/Scripts/test262/config.yaml.
* test262/expectations.yaml: Renamed from Tools/Scripts/test262/expectations.yaml.
2018-05-05 Filip Pizlo <fpizlo@apple.com>
DFG AI should have O(1) clobbering
https://bugs.webkit.org/show_bug.cgi?id=185287
Reviewed by Saam Barati.
* stress/simple-ai-effect.js: Added.
(bar):
(foo):
2018-05-04 Keith Miller <keith_miller@apple.com>
isCacheableArrayLength should return true for undecided arrays
https://bugs.webkit.org/show_bug.cgi?id=185309
Reviewed by Michael Saboff.
* stress/get-array-length-undecided.js: Added.
(test):
2018-05-04 Dominik Infuehr <dinfuehr@igalia.com>
Disable tests on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=185296
Reviewed by Saam Barati.
Test doesn't work with a limited amount of memory. I tried to reduce memory usage
but then it was hard to reproduce the failure the test was originally made to test.
* stress/array-reverse-doesnt-clobber.js:
2018-05-03 Saam Barati <sbarati@apple.com>
Don't prevent CreateThis being folded to NewObject when the structure is poly proto
https://bugs.webkit.org/show_bug.cgi?id=185177
Reviewed by Filip Pizlo.
* microbenchmarks/construct-poly-proto-object.js: Added.
(foo.A):
(foo):
* stress/allocation-sinking-new-object-with-poly-proto.js: Added.
(foo.A):
(foo):
(makePolyProto):
(bar):
(baz):
2018-05-03 Michael Saboff <msaboff@apple.com>
OSR entry pruning of Program Bytecodes doesn't take into account try/catch
https://bugs.webkit.org/show_bug.cgi?id=185281
Reviewed by Saam Barati.
New regression test.
* stress/baseline-osrentry-catch-is-reachable.js: Added.
(i.j.catch):
2018-05-03 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r231197.
The test added with this change crashes on the 32-bit JSC bot.
Reverted changeset:
"Correctly detect string overflow when using the 'Function'
constructor"
https://bugs.webkit.org/show_bug.cgi?id=184883
https://trac.webkit.org/changeset/231197
2018-05-02 Filip Pizlo <fpizlo@apple.com>
JSC should know how to cache custom getter accesses on the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=185213
Reviewed by Keith Miller.
* microbenchmarks/get-custom-getter.js: Added.
(test):
2018-05-02 Robin Morisset <rmorisset@apple.com>
emitCodeToGetArgumentsArrayLength should not crash on PhantomNewArrayWithSpread
https://bugs.webkit.org/show_bug.cgi?id=183172
Reviewed by Filip Pizlo.
* stress/length-of-new-array-with-spread.js: Added.
(foo):
(bar):
(baz):
2018-05-01 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add SameValue DFG node
https://bugs.webkit.org/show_bug.cgi?id=185065
Reviewed by Saam Barati.
* microbenchmarks/object-is.js: Added.
(incognito):
(sameValue):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
* stress/object-is.js: Added.
(shouldBe):
(is1):
(is2):
(is3):
(is4):
(is5):
(is6):
(is7):
(is8):
(is9):
(is10):
(is11):
(is12):
(is13):
(is14):
(is15):
2018-05-01 Robin Morisset <rmorisset@apple.com>
Correctly detect string overflow when using the 'Function' constructor
https://bugs.webkit.org/show_bug.cgi?id=184883
<rdar://problem/36320331>
Reviewed by Filip Pizlo.
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.
* slowMicrobenchmarks/function-constructor-with-huge-strings.js: Added.
(catch):
2018-05-01 Robin Morisset <rmorisset@apple.com>
IntlObject.cpp::removeUnicodeLocaleExtension() should not touch locales that end in '-u'
https://bugs.webkit.org/show_bug.cgi?id=185162
Reviewed by Filip Pizlo.
* stress/incomplete-unicode-locale.js: Added.
(catch):
2018-05-01 Dominik Infuehr <dinfuehr@igalia.com>
Add SetCallee as DFG-Operation
https://bugs.webkit.org/show_bug.cgi?id=184582
Reviewed by Filip Pizlo.
Added test that runs into infinite loop without updating the callee and
therefore emitting SetCallee in DFG for recursive tail calls.
* stress/closure-recursive-tail-call-infinite-loop.js: Added.
(Foo):
(second):
(first):
(return.closure):
(createClosure):
2018-04-30 Saam Barati <sbarati@apple.com>
ToString constant folds without preserving checks, causing us to break assumptions that the code would OSR exit
https://bugs.webkit.org/show_bug.cgi?id=185149
<rdar://problem/39455917>
Reviewed by Filip Pizlo.
* stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js: Added.
2018-04-29 Filip Pizlo <fpizlo@apple.com>
LICM shouldn't hoist nodes if hoisted nodes exited in that code block
https://bugs.webkit.org/show_bug.cgi?id=185126
Reviewed by Saam Barati.
I found this bug by accident when I was writing this test for something else.
This change also speeds up other benchmarks of this case that we already had. They are all called
the licm-dragons tests.
* microbenchmarks/licm-dragons-two-structures.js: Added.
(foo):
2018-04-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r231137.
https://bugs.webkit.org/show_bug.cgi?id=185118
It is breaking Test262 language/expressions/multiplication
/order-of-evaluation.js (Requested by caiolima on #webkit).
Reverted changeset:
"[ESNext][BigInt] Implement support for "*" operation"
https://bugs.webkit.org/show_bug.cgi?id=183721
https://trac.webkit.org/changeset/231137
2018-04-28 Saam Barati <sbarati@apple.com>
We don't model regexp effects properly
https://bugs.webkit.org/show_bug.cgi?id=185059
<rdar://problem/39736150>
Reviewed by Filip Pizlo.
* stress/regexp-exec-test-effectful-last-index.js: Added.
(assert):
(foo):
(i.regexLastIndex.toString):
(bar):
2018-04-28 Rick Waldron <waldron.rick@gmail.com>
Token misspelled "tocken" in error message string
https://bugs.webkit.org/show_bug.cgi?id=185030
Reviewed by Saam Barati.
* ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc: Fix typo "tocken" => "token"
* stress/destructuring-assignment-syntax.js: Fix typo "tocken" => "token"
* stress/error-messages-for-in-operator-should-not-crash.js: Fix typo "tocken" => "token"
* stress/reserved-word-with-escape.js: Fix typo "tocken" => "token"
(testSyntaxError.String.raw.v):
(String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
(testSyntaxError.String.raw.a):
2018-04-28 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721
Reviewed by Saam Barati.
* bigIntTests.yaml:
* stress/big-int-mul-jit.js: Added.
* stress/big-int-mul-to-primitive-precedence.js: Added.
* stress/big-int-mul-to-primitive.js: Added.
* stress/big-int-mul-type-error.js: Added.
* stress/big-int-mul-wrapped-value.js: Added.
* stress/big-int-multiplication.js: Added.
* stress/big-int-multiply-memory-stress.js: Added.
2018-04-28 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r231131.
https://bugs.webkit.org/show_bug.cgi?id=185112
It is breaking Debug build due to unchecked exception
(Requested by caiolima on #webkit).
Reverted changeset:
"[ESNext][BigInt] Implement support for "*" operation"
https://bugs.webkit.org/show_bug.cgi?id=183721
https://trac.webkit.org/changeset/231131
2018-04-27 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721
Reviewed by Saam Barati.
* bigIntTests.yaml:
* stress/big-int-mul-jit.js: Added.
* stress/big-int-mul-to-primitive-precedence.js: Added.
* stress/big-int-mul-to-primitive.js: Added.
* stress/big-int-mul-type-error.js: Added.
* stress/big-int-mul-wrapped-value.js: Added.
* stress/big-int-multiplication.js: Added.
* stress/big-int-multiply-memory-stress.js: Added.
2018-04-27 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r231086.
Caused JSC test failures due to an unchecked exception.
Reverted changeset:
"[ESNext][BigInt] Implement support for "*" operation"
https://bugs.webkit.org/show_bug.cgi?id=183721
https://trac.webkit.org/changeset/231086
2018-04-27 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed test gardening, update expectations for test262/intl402/PluralRules tests after r231047.
* test262.yaml: Mark tests as passing.
2018-04-26 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement support for "*" operation
https://bugs.webkit.org/show_bug.cgi?id=183721
Reviewed by Saam Barati.
* bigIntTests.yaml:
* stress/big-int-mul-jit.js: Added.
* stress/big-int-mul-to-primitive-precedence.js: Added.
* stress/big-int-mul-to-primitive.js: Added.
* stress/big-int-mul-type-error.js: Added.
* stress/big-int-mul-wrapped-value.js: Added.
* stress/big-int-multiplication.js: Added.
* stress/big-int-multiply-memory-stress.js: Added.
2018-04-25 Robin Morisset <rmorisset@apple.com>
In FTLLowerDFGToB3.cpp::compileCreateRest, always use a contiguous array as the indexing type when under isWatchingHavingABadTimeWatchpoint
https://bugs.webkit.org/show_bug.cgi?id=184773
<rdar://problem/37773612>
Reviewed by Filip Pizlo.
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
so I decided to add it to the stress tests nonetheless.
* stress/create-rest-while-having-a-bad-time.js: Added.
(f):
(g):
(h):
2018-04-25 Keith Miller <keith_miller@apple.com>
Add missing scope release to functionProtoFuncToString
https://bugs.webkit.org/show_bug.cgi?id=184995
Reviewed by Saam Barati.
* stress/function-toString-arrow.js: Added.
(async):
2018-04-24 Keith Miller <keith_miller@apple.com>
fromCharCode is missing some exception checks
https://bugs.webkit.org/show_bug.cgi?id=184952
Reviewed by Saam Barati.
* stress/fromCharCode-exception-check.js: Added.
(get catch):
2018-04-24 Mark Lam <mark.lam@apple.com>
Gardening: test fix after r230863.
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>
Not reviewed.
* stress/json-stringified-overflow-2.js:
(catch):
* stress/json-stringified-overflow.js:
(catch):
2018-04-20 JF Bastien <jfbastien@apple.com>
Handle more JSON stringify OOM
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>
Reviewed by Mark Lam.
* stress/json-stringified-overflow-2.js: Added. Same as the one
below, but with a bigger input which will trigger a different code
path.
(catch):
* stress/json-stringified-overflow.js: Modify the test to only
catch OOM on stringification. not on string creation.
2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
[WebAssembly][Modules] Import tables in wasm modules
https://bugs.webkit.org/show_bug.cgi?id=184738
Reviewed by JF Bastien.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
* wasm/modules/wasm-imports-wasm-exports.js:
* wasm/modules/wasm-imports-wasm-exports/imports.wasm:
* wasm/modules/wasm-imports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-wasm-exports/sum.wasm:
* wasm/modules/wasm-imports-wasm-exports/sum.wat:
2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
[WebAssembly][Modules] Import globals from wasm modules
https://bugs.webkit.org/show_bug.cgi?id=184736
Reviewed by JF Bastien.
* wasm.yaml:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:
* wasm/modules/wasm-imports-wasm-exports.js:
* wasm/modules/wasm-imports-wasm-exports/imports.wasm:
* wasm/modules/wasm-imports-wasm-exports/imports.wat:
* wasm/modules/wasm-imports-wasm-exports/sum.wasm:
* wasm/modules/wasm-imports-wasm-exports/sum.wat:
2018-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, reland r230697, r230720, and r230724.
https://bugs.webkit.org/show_bug.cgi?id=184600
* wasm.yaml:
* wasm/modules/constant.wasm: Added.
* wasm/modules/constant.wat: Added.
* wasm/modules/default-import-star-error.js: Added.
(then):
* wasm/modules/default-import-star-error/entry.wasm: Added.
* wasm/modules/default-import-star-error/entry.wat: Added.
* wasm/modules/default-import-star-error/t0.js: Added.
* wasm/modules/default-import-star-error/t1.js: Added.
* wasm/modules/default-import-star-error/t2.js: Added.
(export.default.Cocoa):
* wasm/modules/js-wasm-cycle.js: Added.
* wasm/modules/js-wasm-cycle/entry.js: Added.
(from.string_appeared_here.export.return42):
* wasm/modules/js-wasm-cycle/sum.wasm: Added.
* wasm/modules/js-wasm-cycle/sum.wat: Added.
* wasm/modules/js-wasm-function-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-function.js: Added.
(assert.throws):
* wasm/modules/js-wasm-global-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-global.js: Added.
(assert.throws):
* wasm/modules/js-wasm-memory-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-memory.js: Added.
(assert.throws):
* wasm/modules/js-wasm-start.js: Added.
(then):
* wasm/modules/js-wasm-table-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-table.js: Added.
(assert.throws):
* wasm/modules/memory.wasm: Added.
* wasm/modules/memory.wat: Added.
* wasm/modules/run-from-wasm.wasm: Added.
* wasm/modules/run-from-wasm.wat: Added.
* wasm/modules/run-from-wasm/check.js: Added.
(export.check):
* wasm/modules/start.wasm: Added.
* wasm/modules/start.wat: Added.
* wasm/modules/sum.wasm: Added.
* wasm/modules/sum.wat: Added.
* wasm/modules/table.wasm: Added.
* wasm/modules/table.wat: Added.
* wasm/modules/wasm-imports-js-exports.js: Added.
* wasm/modules/wasm-imports-js-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-js-exports/imports.wat: Added.
* wasm/modules/wasm-imports-js-exports/sum.js: Added.
(export.sum):
* wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added.
* wasm/modules/wasm-imports-wasm-exports.js: Added.
* wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-wasm-exports/imports.wat: Added.
* wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added.
* wasm/modules/wasm-imports-wasm-exports/sum.wat: Added.
* wasm/modules/wasm-js-cycle.js: Added.
* wasm/modules/wasm-js-cycle/entry.wasm: Added.
* wasm/modules/wasm-js-cycle/entry.wat: Added.
* wasm/modules/wasm-js-cycle/sum.js: Added.
(from.string_appeared_here.export.sum):
* wasm/modules/wasm-wasm-cycle.js: Added.
* wasm/modules/wasm-wasm-cycle/entry.wasm: Added.
* wasm/modules/wasm-wasm-cycle/entry.wat: Added.
* wasm/modules/wasm-wasm-cycle/sum.wasm: Added.
* wasm/modules/wasm-wasm-cycle/sum.wat: Added.
2018-04-17 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r230697, r230720, and r230724.
https://bugs.webkit.org/show_bug.cgi?id=184717
These caused multiple failures on the Test262 testers.
(Requested by mlewis13 on #webkit).
Reverted changesets:
"[WebAssembly][Modules] Prototype wasm import"
https://bugs.webkit.org/show_bug.cgi?id=184600
https://trac.webkit.org/changeset/230697
"[WebAssembly][Modules] Implement function import from wasm
modules"
https://bugs.webkit.org/show_bug.cgi?id=184689
https://trac.webkit.org/changeset/230720
"[JSC] Rename runWebAssembly to runWebAssemblySuite"
https://bugs.webkit.org/show_bug.cgi?id=184703
https://trac.webkit.org/changeset/230724
2018-04-17 JF Bastien <jfbastien@apple.com>
A put is not an ExistingProperty put when we transition a structure because of an attributes change
https://bugs.webkit.org/show_bug.cgi?id=184706
<rdar://problem/38871451>
Reviewed by Saam Barati.
* stress/put-by-id-direct-strict-transition.js: Added.
(const.foo):
(j.const.obj.set hello):
* stress/put-by-id-direct-transition.js: Added.
(const.foo):
(j.const.obj.set hello):
* stress/put-getter-setter-by-id-strict-transition.js: Added.
(const.foo):
(j.const.obj.set hello):
* stress/put-getter-setter-by-id-transition.js: Added.
(const.foo):
(j.const.obj.set hello):
2018-04-16 Filip Pizlo <fpizlo@apple.com>
PutStackSinkingPhase should know that KillStack means ConflictingFlush
https://bugs.webkit.org/show_bug.cgi?id=184672
Reviewed by Michael Saboff.
* stress/sink-put-stack-over-kill-stack.js: Added.
(avocado_1):
(apricot_0):
(__c_0):
(banana_2):
2018-04-17 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Rename runWebAssembly to runWebAssemblySuite
https://bugs.webkit.org/show_bug.cgi?id=184703
Reviewed by JF Bastien.
And add runWebAssembly as a command to simplely run wasm modules.
* wasm.yaml:
2018-04-17 Yusuke Suzuki <utatane.tea@gmail.com>
[WebAssembly][Modules] Implement function import from wasm modules
https://bugs.webkit.org/show_bug.cgi?id=184689
Reviewed by JF Bastien.
* wasm.yaml:
* wasm/modules/js-wasm-cycle.js: Added.
* wasm/modules/js-wasm-cycle/entry.js: Added.
(from.string_appeared_here.export.return42):
* wasm/modules/js-wasm-cycle/sum.wasm: Added.
* wasm/modules/js-wasm-cycle/sum.wat: Added.
* wasm/modules/run-from-wasm.wasm: Added.
* wasm/modules/run-from-wasm.wat: Added.
* wasm/modules/run-from-wasm/check.js: Added.
(export.check):
* wasm/modules/wasm-imports-js-exports.js: Added.
* wasm/modules/wasm-imports-js-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-js-exports/imports.wat: Added.
* wasm/modules/wasm-imports-js-exports/sum.js: Added.
(export.sum):
* wasm/modules/wasm-imports-js-re-exports-wasm-exports.js: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm: Added.
* wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat: Added.
* wasm/modules/wasm-imports-wasm-exports.js: Added.
* wasm/modules/wasm-imports-wasm-exports/imports.wasm: Added.
* wasm/modules/wasm-imports-wasm-exports/imports.wat: Added.
* wasm/modules/wasm-imports-wasm-exports/sum.wasm: Added.
* wasm/modules/wasm-imports-wasm-exports/sum.wat: Added.
* wasm/modules/wasm-js-cycle.js: Added.
* wasm/modules/wasm-js-cycle/entry.wasm: Added.
* wasm/modules/wasm-js-cycle/entry.wat: Added.
* wasm/modules/wasm-js-cycle/sum.js: Added.
(from.string_appeared_here.export.sum):
* wasm/modules/wasm-wasm-cycle.js: Added.
* wasm/modules/wasm-wasm-cycle/entry.wasm: Added.
* wasm/modules/wasm-wasm-cycle/entry.wat: Added.
* wasm/modules/wasm-wasm-cycle/sum.wasm: Added.
* wasm/modules/wasm-wasm-cycle/sum.wat: Added.
2018-04-16 Yusuke Suzuki <utatane.tea@gmail.com>
[WebAssembly][Modules] Prototype wasm import
https://bugs.webkit.org/show_bug.cgi?id=184600
Reviewed by JF Bastien.
Add wasm and wat files since module loader want to load wasm files from FS.
Currently, importing the other modules from wasm is not supported.
* wasm.yaml:
* wasm/modules/constant.wasm: Added.
* wasm/modules/constant.wat: Added.
* wasm/modules/js-wasm-function-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-function.js: Added.
(assert.throws):
* wasm/modules/js-wasm-global-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-global.js: Added.
(assert.throws):
* wasm/modules/js-wasm-memory-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-memory.js: Added.
(assert.throws):
* wasm/modules/js-wasm-start.js: Added.
(then):
* wasm/modules/js-wasm-table-namespace.js: Added.
(assert.throws):
* wasm/modules/js-wasm-table.js: Added.
(assert.throws):
* wasm/modules/memory.wasm: Added.
* wasm/modules/memory.wat: Added.
* wasm/modules/start.wasm: Added.
* wasm/modules/start.wat: Added.
* wasm/modules/sum.wasm: Added.
* wasm/modules/sum.wat: Added.
* wasm/modules/table.wasm: Added.
* wasm/modules/table.wat: Added.
2018-04-14 Filip Pizlo <fpizlo@apple.com>
Function.prototype.caller shouldn't return generator bodies
https://bugs.webkit.org/show_bug.cgi?id=184630
Reviewed by Yusuke Suzuki.
* stress/function-caller-async-arrow-function-body.js: Added.
* stress/function-caller-async-function-body.js: Added.
* stress/function-caller-async-generator-body.js: Added.
* stress/function-caller-generator-body.js: Added.
* stress/function-caller-generator-method-body.js: Added.
2018-04-12 Tomas Popela <tpopela@redhat.com>
Unreviewed, skip JIT tests if it isn't enabled
See https://bugs.webkit.org/show_bug.cgi?id=182730.
* stress/big-int-spec-to-primitive.js:
* stress/big-int-spec-to-this.js:
2018-04-10 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Add support for BigInt in SpeculatedType
https://bugs.webkit.org/show_bug.cgi?id=182470
Reviewed by Saam Barati.
* stress/big-int-spec-to-primitive.js: Added.
* stress/big-int-spec-to-this.js: Added.
* stress/big-int-strict-equals-jit.js: Added.
* stress/big-int-strict-spec-to-this.js: Added.
* stress/big-int-type-of-proven-type.js: Added.
2018-04-10 Filip Pizlo <fpizlo@apple.com>
DFG AI and clobberize should agree with each other
https://bugs.webkit.org/show_bug.cgi?id=184440
Reviewed by Saam Barati.
Add tests for all of the bugs I fixed.
* stress/direct-arguments-out-of-bounds-change-structure.js: Added.
(foo):
* stress/new-typed-array-cse-effects.js: Added.
(foo):
* stress/scoped-arguments-out-of-bounds-change-structure.js: Added.
(foo.theO):
(foo):
* stress/string-from-char-code-change-structure-not-dead.js: Added.
(foo):
(i.valueOf):
(weirdValue.valueOf):
* stress/string-from-char-code-change-structure.js: Added.
(foo):
(i.valueOf):
(weirdValue.valueOf):
2018-04-09 Leo Balter <leonardo.balter@gmail.com>
Fix errant Test262 files CRLF to LF for consistency with the original source
https://bugs.webkit.org/show_bug.cgi?id=184425
Reviewed by Yusuke Suzuki.
* test262/test/built-ins/Math/acosh/nan-returns.js:
* test262/test/built-ins/Math/asinh/asinh-specialVals.js:
* test262/test/built-ins/Math/atanh/atanh-specialVals.js:
* test262/test/built-ins/Math/cbrt/cbrt-specialValues.js:
* test262/test/built-ins/Math/cbrt/prop-desc.js:
* test262/test/built-ins/Math/cosh/cosh-specialVals.js:
* test262/test/built-ins/Math/expm1/expm1-specialVals.js:
* test262/test/built-ins/Math/log10/Log10-specialVals.js:
* test262/test/built-ins/Math/log2/log2-basicTests.js:
* test262/test/built-ins/Math/sign/sign-specialVals.js:
* test262/test/built-ins/Math/sinh/sinh-specialVals.js:
* test262/test/built-ins/Math/tanh/tanh-specialVals.js:
* test262/test/built-ins/Math/trunc/trunc-sampleTests.js:
* test262/test/built-ins/Math/trunc/trunc-specialVals.js:
2018-04-08 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, remove incorrect entry in test262.yaml
https://bugs.webkit.org/show_bug.cgi?id=184266
* test262.yaml:
2018-04-08 Valerie Young <valerie@bocoup.com>
[JSC] Update Test262 to April 6 version
https://bugs.webkit.org/show_bug.cgi?id=184266
Rubber stamped by Yusuke Suzuki.
2018-04-08 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Introduce op_get_by_id_direct
https://bugs.webkit.org/show_bug.cgi?id=183970
Reviewed by Filip Pizlo.
* stress/generator-prototype-copy.js: Added.
(gen):
(catch):
Adopted JF's tests.
* stress/generator-type-check.js: Added.
(shouldThrow):
(foo2):
(i.shouldThrow):
* stress/get-by-id-direct-getter.js: Added.
(shouldBe):
(shouldThrow):
(obj.get hello):
(builtin.createBuiltin):
(obj2.get length):
* stress/get-by-id-direct.js: Added.
(shouldBe):
(shouldThrow):
(builtin.createBuiltin):
* test262.yaml:
We fixed long-standing spec compatibility issue.
As a result, this patch makes several test262 tests passed!
2018-04-07 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, annotate test with @skip if $memoryLimited
https://bugs.webkit.org/show_bug.cgi?id=183894
* stress/json-stringified-overflow.js:
2018-04-06 Alexey Proskuryakov <ap@apple.com>
Add svn:eol-style to line-terminator-normalisation-CR.js
https://bugs.webkit.org/show_bug.cgi?id=184341
* test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: Added property svn:eol-style.
2018-04-06 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed, remove errant LF from existing test262 test for CR line endings.
* test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
2018-04-05 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed, rolling out r230320.
Revert fix, as the root cause lies elsewhere.
Reverted changeset:
"[test262] Mark line-terminator-normalisation-CR.js as a
binary file."
https://bugs.webkit.org/show_bug.cgi?id=184341
https://trac.webkit.org/changeset/230320
2018-04-05 Ross Kirsling <ross.kirsling@sony.com>
[test262] Mark line-terminator-normalisation-CR.js as a binary file.
https://bugs.webkit.org/show_bug.cgi?id=184341
Reviewed by Yusuke Suzuki.
This test is all about CR line endings, but `svn-apply` can't deal with them.
Treating the file as binary ensures that its contents never are never shown in a diff.
* .gitattributes: Added.
2018-04-05 Robin Morisset <rmorisset@apple.com>
Fix testcase (missing try/catch).
https://bugs.webkit.org/show_bug.cgi?id=183657
Unreviewed.
* stress/large-unshift-splice.js
2018-04-04 Filip Pizlo <fpizlo@apple.com>
REGRESSION(r222563): removed DoubleReal type check causes tons of crashes because CSE has never known how to handle SaneChain
https://bugs.webkit.org/show_bug.cgi?id=184319
Reviewed by Saam Barati.
* stress/array-push-nan-to-double-array-cse-sane-and-insane-chain.js: Added.
(foo):
(bar):
* stress/array-push-nan-to-double-array.js: Added.
(foo):
(bar):
2018-04-03 Mark Lam <mark.lam@apple.com>
Test js-fixed-array-out-of-memory.js should be excluded for memory limited devices.
https://bugs.webkit.org/show_bug.cgi?id=184284
Reviewed by Saam Barati.
* stress/js-fixed-array-out-of-memory.js:
2018-03-31 Filip Pizlo <fpizlo@apple.com>
JSC crash in JIT code with for-of loop and Array/Set iterators
https://bugs.webkit.org/show_bug.cgi?id=183174
Reviewed by Saam Barati.
* 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.
(foo):
* stress/hoist-get-by-offset-with-control-dependent-inferred-type.js: Added. This test shows that the bug is fixed.
(f):
2018-03-30 JF Bastien <jfbastien@apple.com>
WebAssembly: support DataView compilation
https://bugs.webkit.org/show_bug.cgi?id=183342
Reviewed by Mark Lam.
Test WebAssembly compilation using a DataView with offset.
* wasm/regress/183342.js: Added.
(attempt.catch):
2018-03-30 Filip Pizlo <fpizlo@apple.com>
Bytecode generator should not get_from_scope something that may be a hole into a variable that is already live
https://bugs.webkit.org/show_bug.cgi?id=184189
Reviewed by JF Bastien.
* stress/load-hole-from-scope-into-live-var.js: Added.
(result.eval.try.switch):
(catch):
2018-03-30 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r230102.
Caused assertion failures on JSC bots.
Reverted changeset:
"A stack overflow in the parsing of a builtin (called by
createExecutable) cause a crash instead of a catchable js
exception"
https://bugs.webkit.org/show_bug.cgi?id=184074
https://trac.webkit.org/changeset/230102
2018-03-30 Robin Morisset <rmorisset@apple.com>
Inlining of a function that ends in op_unreachable in a non-tail position triggers an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=183812
Reviewed by Keith Miller.
* stress/inlining-unreachable-non-tail.js: Added.
(foo.):
(foo):
2018-03-30 Robin Morisset <rmorisset@apple.com>
A stack overflow in the parsing of a builtin (called by createExecutable) cause a crash instead of a catchable js exception
https://bugs.webkit.org/show_bug.cgi?id=184074
<rdar://problem/37165897>
Reviewed by Keith Miller.
* stress/stack-overflow-while-parsing-builtin.js: Added.
(f):
2018-03-30 Robin Morisset <rmorisset@apple.com>
Out-of-bounds accesses due to a missing check for MAX_STORAGE_VECTOR_LENGTH in unshiftCountForAnyIndexingType
https://bugs.webkit.org/show_bug.cgi?id=183657
Reviewed by Keith Miller.
* stress/large-unshift-splice.js: Added.
(make_contig_arr):
2018-03-28 Robin Morisset <rmorisset@apple.com>
appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards
https://bugs.webkit.org/show_bug.cgi?id=183894
Reviewed by Saam Barati.
* stress/json-stringified-overflow.js: Added.
(catch):
2018-03-26 Filip Pizlo <fpizlo@apple.com>
DFG should know that CreateThis can be effectful
https://bugs.webkit.org/show_bug.cgi?id=184013
Reviewed by Saam Barati.
* stress/create-this-property-change.js: Added.
(Foo):
(RealBar):
(get if):
* stress/create-this-structure-change-without-cse.js: Added.
(Foo):
(RealBar):
(get if):
* stress/create-this-structure-change.js: Added.
(Foo):
(RealBar):
(get if):
2018-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Introduces fused compare and jump
https://bugs.webkit.org/show_bug.cgi?id=177100
Reviewed by Mark Lam.
* stress/fused-jeq-slow.js: Added.
(shouldBe):
(testJEQ):
(testJNEQB):
(testJEQB):
(testJNEQF):
(testJEQF):
* stress/fused-jeq.js: Added.
(shouldBe):
(testJEQ):
(testJNEQB):
(testJEQB):
(testJNEQF):
(testJEQF):
* stress/fused-jstricteq-slow.js: Added.
(shouldBe):
(testJSTRICTEQ):
(testJNSTRICTEQB):
(testJSTRICTEQB):
(testJNSTRICTEQF):
(testJSTRICTEQF):
* stress/fused-jstricteq.js: Added.
(shouldBe):
(testJSTRICTEQ):
(testJNSTRICTEQB):
(testJSTRICTEQB):
(testJNSTRICTEQF):
(testJSTRICTEQF):
2018-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Clear MustGenerate for ToString(Number) converted from NumberToStringWithRadix
https://bugs.webkit.org/show_bug.cgi?id=183559
Reviewed by Mark Lam.
* stress/double-to-string-in-loop-removed.js: Added.
(test):
* stress/int32-to-string-in-loop-removed.js: Added.
(test):
* stress/int52-to-string-in-loop-removed.js: Added.
(test):
2018-03-22 Michael Saboff <msaboff@apple.com>
Race Condition in arrayProtoFuncReverse() causes wrong results or crash
https://bugs.webkit.org/show_bug.cgi?id=183901
Reviewed by Keith Miller.
New test.
* stress/array-reverse-doesnt-clobber.js: Added.
(testArrayReverse):
(createArrayOfArrays):
(createArrayStorage):
2018-03-21 Filip Pizlo <fpizlo@apple.com>
ScopedArguments should do poisoning and index masking
https://bugs.webkit.org/show_bug.cgi?id=183863
Reviewed by Mark Lam.
Adds another stress test of scoped arguments.
* stress/scoped-arguments-test.js: Added.
(foo):
2018-03-20 Saam Barati <sbarati@apple.com>
We need to do proper bookkeeping of exitOK when inserting constants when sinking NewArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=183795
<rdar://problem/38298694>
Reviewed by JF Bastien.
* stress/sink-phantom-new-array-buffer-exit-ok.js: Added.
(foo):
(bar):
2018-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Add vectorLengthHint for NewArray
https://bugs.webkit.org/show_bug.cgi?id=183694
Reviewed by Saam Barati.
* stress/vector-length-hint-array-constructor.js: Added.
(shouldBe):
(test):
* stress/vector-length-hint-new-array.js: Added.
(shouldBe):
(test):
2018-03-13 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Make ArraySlice(0) code tight
https://bugs.webkit.org/show_bug.cgi?id=183590
Reviewed by Saam Barati.
* stress/array-slice-with-zero.js: Added.
(shouldBe):
(test):
(test2):
* stress/array-slice-zero-args.js: Added.
(shouldBe):
(test):
2018-03-14 Caitlin Potter <caitp@igalia.com>
[JSC] fix order of evaluation for ClassDefinitionEvaluation
https://bugs.webkit.org/show_bug.cgi?id=183523
Reviewed by Keith Miller.
Computed property names need to be evaluated in source order during class
definition evaluation, as it's observable (and specified to work this way).
This change improves compatibility with Chromium.
* stress/class_elements.js: Added.
(test):
(test.C.prototype.effect):
(test.C.effect):
(test.C.prototype.get effect):
(test.C.prototype.set effect):
(test.C):
2018-03-11 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] AI should convert CreateThis to NewObject if the prototype object is proved
https://bugs.webkit.org/show_bug.cgi?id=183310
Reviewed by Filip Pizlo.
* stress/ai-create-this-to-new-object-fire.js: Added.
(assert):
(test):
(func):
(check):
(test.body.A):
(test.body.B):
(test.body):
* stress/ai-create-this-to-new-object.js: Added.
(assert):
(test):
(func):
(check):
(test.body.A):
(test.body.B):
(test.body):
2018-03-10 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Drop NewRegexp for String.prototype.match with RegExp + global flag
https://bugs.webkit.org/show_bug.cgi?id=181848
Reviewed by Sam Weinig.
* microbenchmarks/regexp-u-global-es5.js: Added.
(fn):
* microbenchmarks/regexp-u-global-es6.js: Added.
(fn):
* stress/materialized-regexp-has-correct-last-index-set-by-match-at-osr-exit.js: Added.
(shouldBe):
(test):
(i.switch):
* stress/materialized-regexp-has-correct-last-index-set-by-match.js: Added.
(shouldBe):
(test):
2018-03-07 Dominik Infuehr <dinfuehr@igalia.com>
Disable test stress/var-injection-cache-invalidation.js on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=183334
Reviewed by Žan Doberšek.
* stress/var-injection-cache-invalidation.js:
2018-03-06 Dominik Infuehr <dinfuehr@igalia.com>
[ARM] Disable tests that run out of memory
https://bugs.webkit.org/show_bug.cgi?id=182699
Reviewed by Žan Doberšek.
Skip tests that run of of memory. Do not run
modules/module-jit-reachability.js without LLInt to prevent
running out of executable memory.
* modules.yaml:
* modules/module-jit-reachability.js:
* stress/has-own-property-name-cache-string-keys.js:
* stress/has-own-property-name-cache-symbol-keys.js:
2018-03-01 Yusuke Suzuki <utatane.tea@gmail.com>
ASSERTION FAILED: matchContextualKeyword(m_vm->propertyNames->async)
https://bugs.webkit.org/show_bug.cgi?id=183173
Reviewed by Saam Barati.
* stress/async-arrow-function-in-class-heritage.js: Added.
(testSyntax):
(testSyntaxError):
(SyntaxError):
2018-03-01 Saam Barati <sbarati@apple.com>
We need to clear cached structures when having a bad time
https://bugs.webkit.org/show_bug.cgi?id=183256
<rdar://problem/36245022>
Reviewed by Mark Lam.
* stress/having-a-bad-time-with-derived-arrays.js: Added.
(assert):
(defineSetter):
(iterate):
(doSlice):
2018-02-28 Yusuke Suzuki <utatane.tea@gmail.com>
JSC crash with `import("")`
https://bugs.webkit.org/show_bug.cgi?id=183175
Reviewed by Saam Barati.
* stress/import-with-empty-string.js: Added.
2018-02-27 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071
* stress/has-indexed-property-array-storage-ftl.js:
* stress/has-indexed-property-slow-put-array-storage-ftl.js:
2018-02-25 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
https://bugs.webkit.org/show_bug.cgi?id=182965
Reviewed by Saam Barati.
* stress/put-by-val-array-storage.js: Added.
(shouldBe):
(testArrayStorageInBounds):
* stress/put-by-val-direct-out-of-bounds-setter.js: Added.
(shouldBe):
(testInt32.createBuiltin):
(set for):
* stress/put-by-val-slow-put-array-storage.js: Added.
(shouldBe):
(testArrayStorageInBounds):
2018-02-26 Saam Barati <sbarati@apple.com>
validateStackAccess should not validate if the offset is within the stack bounds
https://bugs.webkit.org/show_bug.cgi?id=183067
<rdar://problem/37749988>
Reviewed by Mark Lam.
* stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added.
(assert):
(test.a):
(test.b):
(test):
2018-02-26 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071
* stress/has-indexed-property-array-storage-ftl.js:
* stress/has-indexed-property-slow-put-array-storage-ftl.js:
2018-02-23 Saam Barati <sbarati@apple.com>
Make Number.isInteger an intrinsic
https://bugs.webkit.org/show_bug.cgi?id=183088
Reviewed by JF Bastien.
* stress/number-is-integer-intrinsic.js: Added.
2018-02-23 Oleksandr Skachkov <gskachkov@gmail.com>
WebAssembly: cache memory address / size on instance
https://bugs.webkit.org/show_bug.cgi?id=177305
Reviewed by JF Bastien.
* wasm/function-tests/memory-reuse.js: Added.
(createWasmInstance):
(doCheckTrap):
(doMemoryGrow):
(doCheck):
(checkWasmInstancesWithSharedMemory):
2018-02-23 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement $vm.ftlTrue function for FTL testing
https://bugs.webkit.org/show_bug.cgi?id=183071
Reviewed by Mark Lam.
* stress/dead-fiat-value-to-int52-then-exit-not-double.js:
(foo):
* stress/dead-fiat-value-to-int52-then-exit-not-int52.js:
(foo):
* stress/dead-fiat-value-to-int52.js:
(foo):
* stress/dead-osr-entry-value.js:
(foo):
* stress/fiat-value-to-int52-then-exit-not-double.js:
(foo):
* stress/fiat-value-to-int52-then-exit-not-int52.js:
(foo):
* stress/fiat-value-to-int52-then-fail-to-fold.js:
(foo):
* stress/fiat-value-to-int52-then-fold.js:
(foo):
* stress/fiat-value-to-int52.js:
(foo):
* stress/fold-based-on-int32-proof-mul-branch.js:
(foo):
* stress/fold-profiled-call-to-call.js:
(foo):
* stress/fold-to-double-constant-then-exit.js:
(foo):
* stress/fold-to-int52-constant-then-exit.js:
(foo):
* stress/fold-to-primitive-in-cfa.js:
(foo):
* stress/fold-to-primitive-to-identity-in-cfa.js:
(foo):
* stress/has-indexed-property-array-storage-ftl.js: Added.
(shouldBe):
(test1):
(test2):
* stress/has-indexed-property-slow-put-array-storage-ftl.js: Added.
(shouldBe):
(test1):
(test2):
* stress/int52-ai-add-then-filter-int32.js:
(foo):
* stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js:
(foo):
* stress/int52-ai-mul-then-filter-int32.js:
(foo):
* stress/int52-ai-neg-then-filter-int32.js:
(foo):
* stress/int52-ai-sub-then-filter-int32.js:
(foo):
* stress/licm-pre-header-cannot-exit-nested.js:
(foo):
* stress/licm-pre-header-cannot-exit.js:
(foo):
* stress/sparse-array-entry-update-144067.js:
(useMemoryToTriggerGCs):
* stress/test-spec-misc.js:
(foo):
* stress/tricky-array-bounds-checks.js:
(foo):
2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182792
Reviewed by Mark Lam.
* stress/has-indexed-property-array-storage.js: Added.
(shouldBe):
(test1):
(test2):
* stress/has-indexed-property-slow-put-array-storage.js: Added.
(shouldBe):
(test1):
(test2):
2018-02-20 Saam Barati <sbarati@apple.com>
DFG::VarargsForwardingPhase should eliminate getting argument length
https://bugs.webkit.org/show_bug.cgi?id=182959
Reviewed by Keith Miller.
* microbenchmarks/forward-arguments-dont-escape-on-arguments-length.js: Added.
2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support ArrayPush for ArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182782
Reviewed by Saam Barati.
Existing array-push-multiple-storage.js covers ArrayPush(ArrayStorage) multiple arguments case.
* stress/array-push-array-storage-beyond-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-array-storage.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-array-storage-beyond-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-storage-continuous.js: Added.
(shouldBe):
(test):
2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support ArrayPop for ArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182783
Reviewed by Saam Barati.
* stress/array-pop-array-storage.js: Added.
(shouldBe):
(test):
2018-02-14 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Add Arrayify for ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182731
Reviewed by Saam Barati.
* stress/arrayify-array-storage-array.js: Added.
(shouldBe):
(testArrayStorage):
* stress/arrayify-array-storage-non-array.js: Added.
(shouldBe):
(testArrayStorage):
* stress/arrayify-array-storage.js: Added.
(shouldBe):
(testArrayStorage):
* stress/arrayify-slow-put-array-storage-pass-array-storage.js: Added.
(shouldBe):
(testArrayStorage):
* stress/arrayify-slow-put-array-storage.js: Added.
(shouldBe):
(testArrayStorage):
2018-02-19 Saam Barati <sbarati@apple.com>
Don't use JSFunction's allocation profile when getting the prototype can be effectful
https://bugs.webkit.org/show_bug.cgi?id=182942
<rdar://problem/37584764>
Reviewed by Mark Lam.
* stress/get-prototype-create-this-effectful.js: Added.
2018-02-16 Saam Barati <sbarati@apple.com>
Fix bugs from r228411
https://bugs.webkit.org/show_bug.cgi?id=182851
<rdar://problem/37577732>
Reviewed by JF Bastien.
* stress/constant-folding-phase-insert-check-handle-varargs.js: Added.
2018-02-15 Filip Pizlo <fpizlo@apple.com>
Unreviewed, roll out r228366 since it did not progress anything.
* stress/gc-error-stack.js: Removed.
* stress/no-gc-error-stack.js: Removed.
2018-02-15 Tomas Popela <tpopela@redhat.com>
Many stress tests fail with JIT disabled
https://bugs.webkit.org/show_bug.cgi?id=182730
Reviewed by Saam Barati.
These tests are broken by design if the JIT is disabled - they test
the return value of numberOfDFGCompiles(), which is always set to
1000000.0 in TestRunnerUtils.cpp and makes the tests to fail.
* stress/arith-abs-on-various-types.js:
* stress/arith-abs-to-arith-negate-range-optimizaton.js:
* stress/arith-acos-on-various-types.js:
* stress/arith-acosh-on-various-types.js:
* stress/arith-asin-on-various-types.js:
* stress/arith-asinh-on-various-types.js:
* stress/arith-atan-on-various-types.js:
* stress/arith-atanh-on-various-types.js:
* stress/arith-cbrt-on-various-types.js:
* stress/arith-ceil-on-various-types.js:
* stress/arith-clz32-on-various-types.js:
* stress/arith-cos-on-various-types.js:
* stress/arith-cosh-on-various-types.js:
* stress/arith-expm1-on-various-types.js:
* stress/arith-floor-on-various-types.js:
* stress/arith-fround-on-various-types.js:
* stress/arith-log-on-various-types.js:
* stress/arith-log10-on-various-types.js:
* stress/arith-log2-on-various-types.js:
* stress/arith-negate-on-various-types.js:
* stress/arith-round-on-various-types.js:
* stress/arith-sin-on-various-types.js:
* stress/arith-sinh-on-various-types.js:
* stress/arith-sqrt-on-various-types.js:
* stress/arith-tan-on-various-types.js:
* stress/arith-tanh-on-various-types.js:
* stress/arith-trunc-on-various-types.js:
* stress/compare-strict-eq-on-various-types.js:
2018-02-14 Ryan Haddad <ryanhaddad@apple.com>
Skip stress/new-largeish-contiguous-array-with-size.js on arm.
Unreviewed test gardening.
* stress/new-largeish-contiguous-array-with-size.js:
2018-02-14 Saam Barati <sbarati@apple.com>
Setting a VMTrap shouldn't look at topCallFrame since that may imply we're in C code and holding the malloc lock
https://bugs.webkit.org/show_bug.cgi?id=182801
Reviewed by Keith Miller.
* stress/watchdog-dont-malloc-when-in-c-code.js: Added.
2018-02-14 Ryan Haddad <ryanhaddad@apple.com>
Skip JSC test stress/activation-sink-default-value-tdz-error.js on debug.
https://bugs.webkit.org/show_bug.cgi?id=182526
Unreviewed test gardening.
* stress/activation-sink-default-value-tdz-error.js:
2018-02-13 Saam Barati <sbarati@apple.com>
putDirectIndexSlowOrBeyondVectorLength needs to convert to dictionary indexing mode always if attributes are present
https://bugs.webkit.org/show_bug.cgi?id=182755
<rdar://problem/37080864>
Reviewed by Keith Miller.
* stress/always-enter-dictionary-indexing-mode-with-getter.js: Added.
(test1.o.get 10005):
(test1):
(test2.o.get 1000):
(test2):
2018-02-13 Caitlin Potter <caitp@igalia.com>
[JSC] cache TaggedTemplate arrays by callsite rather than by contents
https://bugs.webkit.org/show_bug.cgi?id=182717
Reviewed by Yusuke Suzuki.
https://github.com/tc39/ecma262/pull/890 imposes a change to template
literals, to allow template callsite arrays to be collected when the
code containing the tagged template call is collected. This spec change
has received concensus and been ratified.
This change eliminates the eternal map associating template contents
with arrays.
* stress/tagged-template-object-collect.js: Renamed from JSTests/stress/tagged-template-registry-key-collect.js.
* stress/tagged-template-object.js: Renamed from JSTests/stress/tagged-template-registry-key.js.
* stress/tagged-templates-identity.js:
* stress/template-string-tags-eval.js:
* test262.yaml:
2018-02-13 Yusuke Suzuki <utatane.tea@gmail.com>
Support GetArrayLength on ArrayStorage in the FTL
https://bugs.webkit.org/show_bug.cgi?id=182625
Reviewed by Saam Barati.
* stress/array-storage-length.js: Added.
(shouldBe):
(testInBound):
(testUncountable):
(testSlowPutInBound):
(testSlowPutUncountable):
* stress/undecided-length.js: Added.
(shouldBe):
(test2):
2018-02-12 Saam Barati <sbarati@apple.com>
DFG::emitCodeToGetArgumentsArrayLength needs to handle NewArrayBuffer/PhantomNewArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=182706
<rdar://problem/36833681>
Reviewed by Filip Pizlo.
* stress/get-array-length-phantom-new-array-buffer.js: Added.
(effects):
(foo):
2018-02-09 Filip Pizlo <fpizlo@apple.com>
Don't waste memory for error.stack
https://bugs.webkit.org/show_bug.cgi?id=182656
Reviewed by Saam Barati.
Tests the policy.
* stress/gc-error-stack.js: Added. Shows that the GC forgets frames now.
* stress/no-gc-error-stack.js: Added. Shows that the GC won't forget things if you ask for the stack.
2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Update Test262 to Feb 9 version
https://bugs.webkit.org/show_bug.cgi?id=182468
Reviewed by Saam Barati.
2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, fix invalid line terminator in old test262 file part 2
https://bugs.webkit.org/show_bug.cgi?id=182468
* test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
2018-02-08 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, fix invalid line terminator in old test262 file
https://bugs.webkit.org/show_bug.cgi?id=182468
* test262/test/language/literals/regexp/7.8.5-1.js:
2018-02-06 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement Array.prototype.flatMap and Array.prototype.flatten
https://bugs.webkit.org/show_bug.cgi?id=182440
Reviewed by Darin Adler.
* stress/array-flatmap.js: Added.
(shouldBe):
(shouldBeArray):
(shouldThrow):
(var):
* stress/array-flatten.js: Added.
(shouldBe):
(shouldBeArray):
* test262.yaml:
* test262/test/built-ins/Array/prototype/flatMap/depth-always-one.js:
(3.flatMap):
Pick test262 82c6148980332febe92a544a1fb653718e9fdb57 change.
2018-02-06 Keith Miller <keith_miller@apple.com>
put_to_scope/get_from_scope should not cache lexical scopes when expecting a global object
https://bugs.webkit.org/show_bug.cgi?id=182549
<rdar://problem/36189995>
Reviewed by Saam Barati.
* stress/var-injection-cache-invalidation.js: Added.
(allocateLotsOfThings):
(test):
2018-02-03 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, follow up for test262 update
https://bugs.webkit.org/show_bug.cgi?id=182288
* test262.yaml:
2018-02-02 Ryan Haddad <ryanhaddad@apple.com>
Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288
Unreviewed test gardening.
* test262.yaml: Remove entry for missing test language/expressions/assignment/white-space.js
2018-02-02 Saam Barati <sbarati@apple.com>
When BytecodeParser inserts Unreachable after ForceOSRExit it needs to update ArgumentPositions for Flushes it inserts
https://bugs.webkit.org/show_bug.cgi?id=182368
<rdar://problem/36932466>
Reviewed by Mark Lam.
* stress/flush-after-force-exit-in-bytecodeparser-needs-to-update-argument-positions.js: Added.
(runNearStackLimit.t):
(runNearStackLimit):
(try.runNearStackLimit):
(catch):
2018-02-02 Yusuke Suzuki <utatane.tea@gmail.com>
Update test262 to Jan 30 version
https://bugs.webkit.org/show_bug.cgi?id=182288
Rubber stamped by Saam Barati.
This patch updates test262 to the latest one, Jan 30 version.
Since added and changed files are too many, we cannot create ChangeLog.
The following files are changed.
Several files are intentionally omitted due to merge failures. We should investigate how to merge files
including some special line terminators (like u2028, u2029).
* test262.yaml:
* test262/test262-Revision.txt:
* test262/*:
2018-02-02 Guillaume Emont <guijemont@igalia.com>
JSTests: Skip mozilla/js1_5/Array/regress-157652.js on all memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=182411
Reviewed by Carlos Alberto Lopez Perez.
This is skipped only on arm memory limited platforms. Until recently
it was not a problem on MIPS as the butterfly was not initialized. But
since r227435, the butterfly is initialized in that test and therefore
memory is allocated, and the test typically takes around 512M, which
means it generally gets OOM-killed on the MIPS buildbot.
* mozilla/mozilla-tests.yaml:
2018-02-01 Mark Lam <mark.lam@apple.com>
Fix broken bounds check in FTL's compileGetMyArgumentByVal().
https://bugs.webkit.org/show_bug.cgi?id=182419
<rdar://problem/37044945>
Reviewed by Saam Barati.
* stress/regress-182419.js: Added.
2018-02-01 Keith Miller <keith_miller@apple.com>
Fix crashes due to mishandling custom sections.
https://bugs.webkit.org/show_bug.cgi?id=182404
<rdar://problem/36935863>
Reviewed by Saam Barati.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/js-api/validate.js:
(assert.truthy):
2018-01-31 Saam Barati <sbarati@apple.com>
JSC incorrectly interpreting script, sets Global Property instead of Global Lexical variable (LiteralParser / JSONP path)
https://bugs.webkit.org/show_bug.cgi?id=182074
<rdar://problem/36846261>
Reviewed by Mark Lam.
* stress/jsonp-program-evaluate-path-must-consider-global-lexical-environment.js: Added.
(assert):
(let.func):
(let.o.foo):
(varFunc):
2018-01-30 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, update test262 expects
https://bugs.webkit.org/show_bug.cgi?id=182232
* test262.yaml:
2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement trimStart and trimEnd
https://bugs.webkit.org/show_bug.cgi?id=182233
Reviewed by Mark Lam.
* stress/trim.js: Added.
(shouldBe):
(startTest):
(endTest):
(trimTest):
2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Relax line terminators in String to make JSON subset of JS
https://bugs.webkit.org/show_bug.cgi?id=182232
Reviewed by Keith Miller.
* ChakraCore/test/es5/Lex_u3.baseline-jsc:
* stress/relaxed-line-terminators-in-string.js: Added.
(shouldBe):
2018-01-29 Michael Saboff <msaboff@apple.com>
REGRESSION (r227341): DFG_ASSERT failure at JSC::DFG::AtTailAbstractState::forNode()
https://bugs.webkit.org/show_bug.cgi?id=182249
Reviewed by Keith Miller.
New regression test.
* stress/compare-clobber-untypeduse.js: Added.
2018-01-29 Matt Lewis <jlewis3@apple.com>
Unreviewed, rolling out r227725.
This caused internal failures.
Reverted changeset:
"JSC Sampling Profiler: Detect tester and testee when sampling
in RegExp JIT"
https://bugs.webkit.org/show_bug.cgi?id=152729
https://trac.webkit.org/changeset/227725
2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
JSC Sampling Profiler: Detect tester and testee when sampling in RegExp JIT
https://bugs.webkit.org/show_bug.cgi?id=152729
Reviewed by Saam Barati.
* stress/sampling-profiler-regexp.js: Added.
(platformSupportsSamplingProfiler.test):
(platformSupportsSamplingProfiler.baz):
(platformSupportsSamplingProfiler):
2018-01-29 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] WeakMap#set should have DFG node
https://bugs.webkit.org/show_bug.cgi?id=180015
Reviewed by Saam Barati.
* stress/weakmap-set-change-get.js: Added.
(shouldBe):
(test):
* stress/weakmap-set-cse.js: Added.
(shouldBe):
(test):
* stress/weakset-add-change-get.js: Added.
(shouldBe):
* stress/weakset-add-cse.js: Added.
(shouldBe):
2018-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
DFG strength reduction fails to convert NumberToStringWithValidRadixConstant for 0 to constant '0'
https://bugs.webkit.org/show_bug.cgi?id=182213
Reviewed by Mark Lam.
* stress/int32-min-to-string.js: Added.
(shouldBe):
(test2):
(test4):
(test8):
(test16):
(test32):
* stress/zero-to-string.js: Added.
(shouldBe):
(test2):
(test4):
(test8):
(test16):
(test32):
2018-01-23 Yusuke Suzuki <utatane.tea@gmail.com>
Add more module scope related tests with code evaluation by string
https://bugs.webkit.org/show_bug.cgi?id=181983
Reviewed by Sam Weinig.
Add more module scope related tests. When the original tests are landed,
we do not have browser integration. This patch adds more module scope tests
with dynamically created script evaluation. We add tests with Function
constructor, direct eval, indirect eval, setTimeout, setInterval, and event handlers.
* modules/scopes-eval.js: Added.
(shouldBe):
* modules/scopes.js:
(shouldBe):
2018-01-23 Filip Pizlo <fpizlo@apple.com>
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.
* microbenchmarks/array-push-3.js: Removed.
* microbenchmarks/bigswitch-indirect-symbol-or-undefined.js: Removed.
* microbenchmarks/double-to-int32.js: Removed.
* microbenchmarks/fake-iterators-that-throw-when-finished.js: Removed.
* microbenchmarks/ftl-polymorphic-bitand.js: Removed.
* microbenchmarks/ftl-polymorphic-bitor.js: Removed.
* microbenchmarks/ftl-polymorphic-bitxor.js: Removed.
* microbenchmarks/ftl-polymorphic-lshift.js: Removed.
* microbenchmarks/ftl-polymorphic-rshift.js: Removed.
* microbenchmarks/ftl-polymorphic-sub.js: Removed.
* microbenchmarks/ftl-polymorphic-urshift.js: Removed.
* microbenchmarks/map-constant-key.js: Removed.
* microbenchmarks/nested-function-parsing.js: Removed.
* microbenchmarks/rest-parameter-allocation-elimination.js: Removed.
* microbenchmarks/spread-large-array.js: Removed.
* microbenchmarks/string-add-constant-folding.js: Removed.
* microbenchmarks/to-lower-case.js: Removed.
* microbenchmarks/undefined-property-access.js: Removed.
* slowMicrobenchmarks/array-push-3.js: Copied from JSTests/microbenchmarks/array-push-3.js.
* slowMicrobenchmarks/bigswitch-indirect-symbol-or-undefined.js: Copied from JSTests/microbenchmarks/bigswitch-indirect-symbol-or-undefined.js.
* slowMicrobenchmarks/double-to-int32.js: Copied from JSTests/microbenchmarks/double-to-int32.js.
* slowMicrobenchmarks/fake-iterators-that-throw-when-finished.js: Copied from JSTests/microbenchmarks/fake-iterators-that-throw-when-finished.js.
* slowMicrobenchmarks/ftl-polymorphic-bitand.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitand.js.
* slowMicrobenchmarks/ftl-polymorphic-bitor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitor.js.
* slowMicrobenchmarks/ftl-polymorphic-bitxor.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-bitxor.js.
* slowMicrobenchmarks/ftl-polymorphic-lshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-lshift.js.
* slowMicrobenchmarks/ftl-polymorphic-rshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-rshift.js.
* slowMicrobenchmarks/ftl-polymorphic-sub.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-sub.js.
* slowMicrobenchmarks/ftl-polymorphic-urshift.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-urshift.js.
* slowMicrobenchmarks/map-constant-key.js: Copied from JSTests/microbenchmarks/map-constant-key.js.
* slowMicrobenchmarks/nested-function-parsing.js: Copied from JSTests/microbenchmarks/nested-function-parsing.js.
* slowMicrobenchmarks/rest-parameter-allocation-elimination.js: Copied from JSTests/microbenchmarks/rest-parameter-allocation-elimination.js.
* slowMicrobenchmarks/spread-large-array.js: Copied from JSTests/microbenchmarks/spread-large-array.js.
* slowMicrobenchmarks/string-add-constant-folding.js: Copied from JSTests/microbenchmarks/string-add-constant-folding.js.
* slowMicrobenchmarks/to-lower-case.js: Copied from JSTests/microbenchmarks/to-lower-case.js.
* slowMicrobenchmarks/undefined-property-access.js: Copied from JSTests/microbenchmarks/undefined-property-access.js.
2018-01-23 Robin Morisset <rmorisset@apple.com>
Update the argument count in DFGByteCodeParser::handleRecursiveCall
https://bugs.webkit.org/show_bug.cgi?id=181739
<rdar://problem/36627662>
Reviewed by Saam Barati.
* stress/recursive-tail-call-with-different-argument-count.js: Added.
(foo):
(bar):
2018-01-22 Michael Saboff <msaboff@apple.com>
DFG abstract interpreter needs to properly model effects of some Math ops
https://bugs.webkit.org/show_bug.cgi?id=181886
Reviewed by Saam Barati.
New regression test.
* stress/arith-nodes-abstract-interpreter-untypeduse.js: Added.
(test):
2018-01-20 Caio Lima <ticaiolima@gmail.com>
[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
https://bugs.webkit.org/show_bug.cgi?id=181182
Reviewed by Darin Adler.
* stress/big-int-prototype-to-string-cast-overflow.js: Added.
* stress/big-int-prototype-to-string-exception.js: Added.
* stress/big-int-prototype-to-string-wrong-values.js: Added.
* stress/number-prototype-to-string-cast-overflow.js: Added.
* stress/number-prototype-to-string-exception.js: Added.
* stress/number-prototype-to-string-wrong-values.js: Added.
2018-01-19 Ryan Haddad <ryanhaddad@apple.com>
Disable Atomics when SharedArrayBuffer isn’t enabled
https://bugs.webkit.org/show_bug.cgi?id=181572
Unreviewed test gardening.
* test262.yaml: Skip tests that fail after this change.
2018-01-19 Saam Barati <sbarati@apple.com>
Kill ArithNegate's ArithProfile assert inside BytecodeParser
https://bugs.webkit.org/show_bug.cgi?id=181877
<rdar://problem/36630552>
Reviewed by Mark Lam.
* stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js: Added.
(runNearStackLimit):
(f1):
(f2):
(f3):
(i.catch):
(i.try.runNearStackLimit):
(catch):
2018-01-19 Saam Barati <sbarati@apple.com>
Spread's effects are modeled incorrectly both in AI and in Clobberize
https://bugs.webkit.org/show_bug.cgi?id=181867
<rdar://problem/36290415>
Reviewed by Michael Saboff.
* stress/ai-needs-to-model-spreads-effects.js: Added.
(try.p.Symbol.iterator):
(try.go):
(catch):
* stress/clobberize-needs-to-model-spread-effects.js: Added.
(assert):
(foo):
(a.Symbol.iterator):
2018-01-19 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, reduce count of iteration to fix timing out debug JSC test
https://bugs.webkit.org/show_bug.cgi?id=181535
* stress/inserted-recovery-with-set-last-index.js:
2018-01-17 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Introduce PhantomNewRegexp and RegExpExecNonGlobalOrSticky
https://bugs.webkit.org/show_bug.cgi?id=181535
Reviewed by Saam Barati.
* stress/inserted-recovery-with-set-last-index.js: Added.
(shouldBe):
(foo):
* stress/materialize-regexp-at-osr-exit.js: Added.
(shouldBe):
(test):
* stress/materialize-regexp-cyclic-regexp-at-osr-exit.js: Added.
(shouldBe):
(test):
* stress/materialize-regexp-cyclic-regexp.js: Added.
(shouldBe):
(test):
(i.switch):
* stress/materialize-regexp-cyclic.js: Added.
(shouldBe):
(test):
(i.switch):
* stress/materialize-regexp-referenced-from-phantom-regexp-cyclic.js: Added.
(bar):
(foo):
(test):
* stress/materialize-regexp-referenced-from-phantom-regexp.js: Added.
(bar):
(foo):
(test):
* stress/materialize-regexp.js: Added.
(shouldBe):
(test):
* stress/phantom-regexp-regexp-exec.js: Added.
(shouldBe):
(test):
* stress/phantom-regexp-string-match.js: Added.
(shouldBe):
(test):
* stress/regexp-last-index-sinking.js: Added.
(shouldBe):
(test):
2018-01-17 Saam Barati <sbarati@apple.com>
Disable Atomics when SharedArrayBuffer isn’t enabled
https://bugs.webkit.org/show_bug.cgi?id=181572
<rdar://problem/36553206>
Reviewed by Michael Saboff.
* stress/isLockFree.js:
2018-01-17 Saam Barati <sbarati@apple.com>
DFG::Node::convertToConstant needs to clear the varargs flags
https://bugs.webkit.org/show_bug.cgi?id=181697
<rdar://problem/36497332>
Reviewed by Yusuke Suzuki.
* stress/dfg-node-convert-to-constant-must-clear-varargs-flags.js: Added.
(doIndexOf):
(bar):
(i.bar):
2018-01-16 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r226937.
Tests added with this change are failing due to a missing
exception check.
Reverted changeset:
"[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast
double to int32_t"
https://bugs.webkit.org/show_bug.cgi?id=181182
https://trac.webkit.org/changeset/226937
2018-01-13 Caio Lima <ticaiolima@gmail.com>
[JSC] NumberPrototype::extractRadixFromArgs incorrectly cast double to int32_t
https://bugs.webkit.org/show_bug.cgi?id=181182
Reviewed by Darin Adler.
* bigIntTests.yaml:
* stress/big-int-constructor.js:
* stress/big-int-prototype-to-string-cast-overflow.js: Added.
(assert):
(assertThrowRangeError):
* stress/number-prototype-to-string-cast-overflow.js: Added.
(assert):
(assertThrowRangeError):
2018-01-12 Saam Barati <sbarati@apple.com>
CheckStructure can be incorrectly subsumed by CheckStructureOrEmpty
https://bugs.webkit.org/show_bug.cgi?id=181177
<rdar://problem/36205704>
Reviewed by Yusuke Suzuki.
* stress/check-structure-ir-ensures-empty-does-not-flow-through.js: Added.
(runNearStackLimit.t):
(runNearStackLimit):
(test.f):
(test):
2018-01-12 Saam Barati <sbarati@apple.com>
Each variant of a polymorphic inlined call should be exitOK at the top of the block
https://bugs.webkit.org/show_bug.cgi?id=181562
<rdar://problem/36445624>
Reviewed by Yusuke Suzuki.
* stress/each-block-at-top-of-polymorphic-call-inlining-should-be-exitOK.js: Added.
(f):
(foo):
2018-01-11 Saam Barati <sbarati@apple.com>
When inserting Unreachable in byte code parser we need to flush all the right things
https://bugs.webkit.org/show_bug.cgi?id=181509
<rdar://problem/36423110>
Reviewed by Mark Lam.
* stress/proper-flushing-when-we-insert-unreachable-after-force-exit-in-bytecode-parser.js: Added.
2018-01-11 Saam Barati <sbarati@apple.com>
JITMathIC code in the FTL is wrong when code gets duplicated
https://bugs.webkit.org/show_bug.cgi?id=181525
<rdar://problem/36351993>
Reviewed by Michael Saboff and Keith Miller.
* stress/allow-math-ic-b3-code-duplication.js: Added.
2018-01-11 Saam Barati <sbarati@apple.com>
Our for-in caching is wrong when we add indexed properties on things in the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=181508
Reviewed by Yusuke Suzuki.
* stress/for-in-prototype-with-indexed-properties-should-prevent-caching.js: Added.
(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):
2018-01-09 Mark Lam <mark.lam@apple.com>
ASSERTION FAILED: pair.second->m_type & PropertyNode::Getter
https://bugs.webkit.org/show_bug.cgi?id=181388
<rdar://problem/36349351>
Reviewed by Saam Barati.
* stress/regress-181388.js: Added.
2018-01-08 JF Bastien <jfbastien@apple.com>
WebAssembly: mask indexed accesses to Table
https://bugs.webkit.org/show_bug.cgi?id=181412
<rdar://problem/36363236>
Reviewed by Saam Barati.
Update error messages.
* wasm/js-api/table.js:
(assert.throws.WebAssembly.Table.prototype.grow):
2018-01-08 Ryan Haddad <ryanhaddad@apple.com>
Disable SharedArrayBuffer tests missed in r226386.
https://bugs.webkit.org/show_bug.cgi?id=181266
Unreviewed test gardening.
* test262.yaml:
2018-01-06 Yusuke Suzuki <utatane.tea@gmail.com>
Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
https://bugs.webkit.org/show_bug.cgi?id=181321
Reviewed by Saam Barati.
* stress/bound-function-does-not-have-caller-and-arguments.js: Added.
(shouldBe):
(testFunction):
* test262.yaml:
2018-01-05 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, attempt to fix test262 after r226386.
* test262.yaml:
2018-01-04 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Define defs for MapSet/SetAdd to participate in CSE
https://bugs.webkit.org/show_bug.cgi?id=179911
Reviewed by Saam Barati.
In addition to these tests, map-set-cse.js and set-add-cse.js work.
* stress/map-set-change-get.js: Added.
(shouldBe):
(test):
* stress/map-set-create-bucket.js: Added.
(shouldBe):
(test):
* stress/set-add-create-bucket.js: Added.
(shouldBe):
2018-01-03 Michael Saboff <msaboff@apple.com>
Disable SharedArrayBuffers from Web API
https://bugs.webkit.org/show_bug.cgi?id=181266
Reviewed by Saam Barati.
Disabled SharedArrayBuffer tests.
* stress/SharedArrayBuffer-opt.js:
* stress/SharedArrayBuffer.js:
* stress/array-buffer-byte-length.js:
* stress/atomics-add-uint32.js:
* stress/atomics-known-int-use.js:
* stress/atomics-neg-zero.js:
* stress/atomics-store-return.js:
* stress/lars-sab-workers.js:
* stress/regress-159779-1.js:
* stress/regress-159779-2.js:
* stress/regress-170473.js:
* test262.yaml:
2018-01-03 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Failing test stress/big-int-constructor-oom.js into MIPS
https://bugs.webkit.org/show_bug.cgi?id=181258
Reviewed by Antonio Gomes.
* stress/big-int-constructor-gc.js:
* stress/big-int-constructor-oom.js:
2018-01-03 Robin Morisset <rmorisset@apple.com>
Inlining of a function that ends in op_unreachable crashes
https://bugs.webkit.org/show_bug.cgi?id=181027
Reviewed by Filip Pizlo.
* stress/inlining-unreachable.js: Added.
(bar):
(baz):
(i.catch):
2018-01-02 Saam Barati <sbarati@apple.com>
Incorrect assertion inside AccessCase
https://bugs.webkit.org/show_bug.cgi?id=181200
<rdar://problem/35494754>
Reviewed by Yusuke Suzuki.
* stress/setter-same-base-and-rhs-invalid-assertion-inside-access-case.js: Added.
(ctor):
(theFunc):
(run):
2018-01-02 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement BigIntConstructor and BigIntPrototype
https://bugs.webkit.org/show_bug.cgi?id=175359
Reviewed by Yusuke Suzuki.
* bigIntTests.yaml:
* stress/big-int-as-key.js: Added.
* stress/big-int-constructor-gc.js: Added.
* stress/big-int-constructor-oom.js: Added.
* stress/big-int-constructor-properties.js: Added.
* stress/big-int-constructor-prototype-prop-descriptor.js: Added.
* stress/big-int-constructor-prototype.js: Added.
* stress/big-int-constructor.js: Added.
* stress/big-int-function-apply.js:
* stress/big-int-length.js: Added.
* stress/big-int-prop-descriptor.js: Added.
* stress/big-int-proto-constructor.js: Added.
* stress/big-int-proto-name.js: Added.
* stress/big-int-prototype-properties.js: Added.
* stress/big-int-prototype-proto.js: Added.
* stress/big-int-prototype-value-of.js: Added.
* stress/big-int-prototype-symbol-to-string-tag.js: Added.
* stress/big-int-prototype-to-string-apply.js: Added.
* stress/big-int-to-object.js: Added.
* stress/big-int-to-string.js: Added.
2017-12-28 Saam Barati <sbarati@apple.com>
Assertion used to determine if something is an async generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=181168
<rdar://problem/35640560>
Reviewed by Yusuke Suzuki.
* stress/async-generator-assertion.js: Added.
2017-12-21 Guillaume Emont <guijemont@igalia.com>
Skip stress/splay-flash-access tests on memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=181086
Reviewed by Carlos Alberto Lopez Perez.
These tests use about 185M of memory, and occasionally get OOM-killed
on memory limited platforms.
* stress/splay-flash-access-1ms.js:
* stress/splay-flash-access.js:
2017-12-21 Guillaume Emont <guijemont@igalia.com>
Skip slow jsc tests on embedded platforms
https://bugs.webkit.org/show_bug.cgi?id=180937
Reviewed by Carlos Alberto Lopez Perez.
The tests typeProfiler/deltablue-for-of.js and
typeProfiler/getter-richards.js take a very long time in the
ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
thus always timeout. They should be skipped on these platforms.
* typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
* typeProfiler/getter-richards.js: Skip on arm*/mips.
2017-12-19 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Do not check isValid() in op_new_regexp
https://bugs.webkit.org/show_bug.cgi?id=180970
Reviewed by Saam Barati.
* stress/regexp-syntax-error-invalid-flags.js: Added.
(shouldThrow):
2017-12-18 Guillaume Emont <guijemont@igalia.com>
Skip stress/call-apply-exponential-bytecode-size.js unless x86-64 or arm64
https://bugs.webkit.org/show_bug.cgi?id=180712
Reviewed by Michael Catanzaro.
stress/call-apply-exponential-bytecode-size.js crashes if the
ExecutableAllocator's fixedExecutableMemoryPoolSize is less than 64
MB. Currently it is 64 MB or more only on x86-64 and arm64, so we
should skip the test on other platforms.
* stress/call-apply-exponential-bytecode-size.js:
2017-12-17 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] NewArrayBuffer should be sinked if it is only used for spreading
https://bugs.webkit.org/show_bug.cgi?id=179762
Reviewed by Saam Barati.
* stress/call-varargs-double-new-array-buffer.js: Added.
(assert):
(bar):
(foo):
* stress/call-varargs-spread-new-array-buffer.js: Added.
(assert):
(bar):
(foo):
* stress/call-varargs-spread-new-array-buffer2.js: Added.
(assert):
(bar):
(foo):
* stress/forward-varargs-double-new-array-buffer.js: Added.
(assert):
(test.baz):
(test.bar):
(test.foo):
(test):
* stress/new-array-buffer-sinking-osrexit.js: Added.
(target):
(test):
* stress/new-array-with-spread-double-new-array-buffer.js: Added.
(shouldBe):
(test):
* stress/new-array-with-spread-with-phantom-new-array-buffer.js: Added.
(shouldBe):
(target):
(test):
* stress/phantom-new-array-buffer-forward-varargs.js: Added.
(assert):
(test1.bar):
(test1.foo):
(test1):
(test2.bar):
(test2.foo):
(test3.baz):
(test3.bar):
(test3.foo):
(test4.baz):
(test4.bar):
(test4.foo):
* stress/phantom-new-array-buffer-forward-varargs2.js: Added.
(assert):
(test.baz):
(test.bar):
(test.foo):
(test):
* stress/phantom-new-array-buffer-osr-exit.js: Added.
(assert):
(baz):
(bar):
(effects):
(foo):
2017-12-14 Saam Barati <sbarati@apple.com>
The CleanUp after LICM is erroneously removing a Check
https://bugs.webkit.org/show_bug.cgi?id=180852
<rdar://problem/36063494>
Reviewed by Filip Pizlo.
* stress/dont-run-cleanup-after-licm.js: Added.
2017-12-14 Michael Saboff <msaboff@apple.com>
REGRESSION (r225695): Repro crash on yahoo login page
https://bugs.webkit.org/show_bug.cgi?id=180761
Reviewed by JF Bastien.
New regression test.
* stress/regress-180761.js: Added.
2017-12-13 Keith Miller <keith_miller@apple.com>
JSObjects should have a mask for loading indexed properties
https://bugs.webkit.org/show_bug.cgi?id=180768
Reviewed by Mark Lam.
* stress/int16-put-by-val-in-and-out-of-bounds.js:
(test):
2017-12-13 Saam Barati <sbarati@apple.com>
Arrow functions need their own structure because they have different properties than sloppy functions
https://bugs.webkit.org/show_bug.cgi?id=180779
<rdar://problem/35814591>
Reviewed by Mark Lam.
* stress/arrow-function-needs-its-own-structure.js: Added.
(assert):
(readPrototype):
(noInline.let.f1):
(noInline):
2017-12-13 Saam Barati <sbarati@apple.com>
Fix how JSFunction handles "caller" and "arguments" for functions that don't have those properties
https://bugs.webkit.org/show_bug.cgi?id=163579
<rdar://problem/35455798>
Reviewed by Mark Lam.
* stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Added.
(assert):
(test1):
(i.test1):
(i.test1.C):
(i.test1.async.foo):
(i.test1.foo):
(test2):
2017-12-13 Saam Barati <sbarati@apple.com>
TypeCheckHoistingPhase needs to emit a CheckStructureOrEmpty if it's doing it for |this|
https://bugs.webkit.org/show_bug.cgi?id=180734
<rdar://problem/35640547>
Reviewed by Yusuke Suzuki.
* stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js: Added.
(__isPropertyOfType):
(__getProperties):
(__getObjects):
(__getRandomObject):
(theClass.):
(theClass):
(childClass):
(counter.catch):
2017-12-12 Saam Barati <sbarati@apple.com>
We need to model effects of Spread(@PhantomCreateRest) in Clobberize/PreciseLocalClobberize
https://bugs.webkit.org/show_bug.cgi?id=180725
<rdar://problem/35970511>
Reviewed by Michael Saboff.
* stress/model-effects-properly-of-spread-over-phantom-create-rest.js: Added.
(f1):
(f2):
(let.o2.valueOf):
2017-12-12 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement optimized WeakMap and WeakSet
https://bugs.webkit.org/show_bug.cgi?id=179929
Reviewed by Saam Barati.
* microbenchmarks/weak-map-key.js:
* microbenchmarks/weak-set-key.js: Copied from JSTests/microbenchmarks/weak-map-key.js.
(assert):
(objectKey):
(let.start.Date.now):
* stress/basic-weakmap.js: Added.
(shouldBe):
(test):
* stress/basic-weakset.js: Added.
(shouldBe):
(test.set new):
* stress/weakmap-cse-set-break.js: Added.
(shouldBe):
(test):
* stress/weakmap-cse.js: Added.
(shouldBe):
(test):
* stress/weakmap-gc.js: Added.
(test):
* stress/weakset-cse-add-break.js: Added.
(shouldBe):
(test.set new):
* stress/weakset-cse.js: Added.
(shouldBe):
(test.set new):
* stress/weakset-gc.js: Added.
(test.set add):
(test.set new):
(test):
2017-12-12 Saam Barati <sbarati@apple.com>
ConstantFoldingPhase rule for GetMyArgumentByVal must check for negative indices
https://bugs.webkit.org/show_bug.cgi?id=180723
<rdar://problem/35859726>
Reviewed by JF Bastien.
* stress/get-my-argument-by-val-constant-folding.js: Added.
(test):
(catch):
2017-12-12 Caio Lima <ticaiolima@gmail.com>
[ESNext][BigInt] Implement BigInt literals and JSBigInt
https://bugs.webkit.org/show_bug.cgi?id=179000
Reviewed by Darin Adler and Yusuke Suzuki.
* bigIntTests.yaml: Added.
* stress/big-int-literal-line-terminator.js: Added.
* stress/big-int-literals.js: Added.
* stress/big-int-operations-error.js: Added.
* stress/big-int-type-of.js: Added.
* stress/big-int-white-space-trailing-leading.js: Added.
* stress/big-int-function-apply.js: Added.
2017-12-11 Saam Barati <sbarati@apple.com>
We need to disableCaching() in ErrorInstance when we materialize properties
https://bugs.webkit.org/show_bug.cgi?id=180343
<rdar://problem/35833002>
Reviewed by Mark Lam.
* stress/disable-caching-when-lazy-materializing-error-property-on-put.js: Added.
(assert):
(makeError):
(storeToStack):
(storeToStackAlreadyMaterialized):
2017-12-05 JF Bastien <jfbastien@apple.com>
WebAssembly: don't eagerly checksum
https://bugs.webkit.org/show_bug.cgi?id=180441
<rdar://problem/35156628>
Reviewed by Saam Barati.
Checksum is now disabled, so tests only have <?> as the module
name.
* wasm/function-tests/nameSection.js:
* wasm/function-tests/stack-overflow.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
(assertOverflows.assertThrows):
(assertOverflows):
* wasm/function-tests/stack-trace.js:
2017-12-04 JF Bastien <jfbastien@apple.com>
Proxy all functions, except the $ objects
https://bugs.webkit.org/show_bug.cgi?id=180375
Reviewed by Saam Barati.
It looks like this test may have broken some executions because I
call some internal objects. Explicitly ignore objects whose name
starts with "$" because it's a bad idea anyways.
* stress/proxy-all-the-parameters.js:
(generateObjects):
(get throw):
2017-12-04 Saam Barati <sbarati@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=180366
<rdar://problem/35685877>
Reviewed by Michael Saboff.
* stress/ftl-tail-call-throw-exception-from-slow-path-recover-stack-values.js: Added.
(theParent):
(test1.base.getParentStaticValue):
(test1.base):
(test1.__v_24888.prototype.set prop):
(test1.__v_24888):
(test2.base.getParentStaticValue):
(test2.base):
(test2.__v_24888.prototype.set prop):
(test2.__v_24888):
(test2):
2017-12-01 JF Bastien <jfbastien@apple.com>
Try proxying all function arguments
https://bugs.webkit.org/show_bug.cgi?id=180306
Reviewed by Saam Barati.
* stress/proxy-all-the-parameters.js: Added.
(isPropertyOfType):
(getProperties):
(generateObjects):
(getObjects):
(getFunctions):
(get throw):
(let.o.of.getObjects.let.f.of.getFunctions.catch):
2017-12-01 JF Bastien <jfbastien@apple.com>
JavaScriptCore: missing exception checks in Math functions that take more than one argument
https://bugs.webkit.org/show_bug.cgi?id=180297
<rdar://problem/35745556>
Reviewed by Mark Lam.
* stress/math-exceptions.js: Added.
(get try):
(catch):
2017-12-01 JF Bastien <jfbastien@apple.com>
JavaScriptCore: add test for weird class static getters
https://bugs.webkit.org/show_bug.cgi?id=180281
<rdar://problem/35592139>
Reviewed by Mark Lam.
I fixed a bug for it in r224927 and didn't add a test. Do so.
* stress/class-static-get-weird.js: Added.
(c.prototype.get name):
(c):
(c.prototype.get arguments):
(c.prototype.get caller):
(c.prototype.get length):
2017-12-01 Saam Barati <sbarati@apple.com>
Having a bad time needs to handle ArrayClass indexing type as well
https://bugs.webkit.org/show_bug.cgi?id=180274
<rdar://problem/35667869>
Reviewed by Keith Miller and Mark Lam.
* stress/array-prototype-slow-put-having-a-bad-time-2.js: Added.
(assert):
* stress/array-prototype-slow-put-having-a-bad-time.js: Added.
(assert):
2017-12-01 JF Bastien <jfbastien@apple.com>
WebAssembly: restore cached stack limit after out-call
https://bugs.webkit.org/show_bug.cgi?id=179106
<rdar://problem/35337525>
Reviewed by Saam Barati.
* wasm/function-tests/double-instance.js: Added.
(const.imp.boom):
(const.imp.get callAnother):
2017-11-30 JF Bastien <jfbastien@apple.com>
WebAssembly: improve stack trace
https://bugs.webkit.org/show_bug.cgi?id=179343
Reviewed by Saam Barati.
Update the tests to follow the new format. Notably, SHA1 module
hash is now included in traces, and stubs are properly identified.
* wasm/assert.js: Add an assertion which matches regular expressions.
* wasm/function-tests/nameSection.js:
* wasm/function-tests/stack-overflow.js:
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
(assertOverflows.assertThrows.wasm.1):
(assertOverflows.assertThrows.wasm.0):
(assertOverflows.assertThrows):
(assertOverflows):
* wasm/function-tests/stack-trace.js:
(import.Builder.from.string_appeared_here.assert): Deleted.
* wasm/function-tests/trap-after-cross-instance-call.js:
(wasmFrameCountFromError):
* wasm/function-tests/trap-load-2.js:
(wasmFrameCountFromError):
* wasm/function-tests/trap-load.js:
(wasmFrameCountFromError):
2017-11-30 Mark Lam <mark.lam@apple.com>
jsc shell's flashHeapAccess() should not do JS work after releasing access to the heap.
https://bugs.webkit.org/show_bug.cgi?id=180219
<rdar://problem/35696536>
Reviewed by Filip Pizlo.
* stress/regress-180219.js: Added.
2017-11-30 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] operationHasIndexedProperty does not consider negative int32_t
https://bugs.webkit.org/show_bug.cgi?id=180190
Reviewed by Mark Lam.
* stress/operation-in-may-have-negative-int32-array-storage.js: Added.
(shouldBe):
(test1):
* stress/operation-in-may-have-negative-int32-contiguous-array.js: Added.
(shouldBe):
(test1):
* stress/operation-in-may-have-negative-int32-double-array.js: Added.
(shouldBe):
(test1):
* stress/operation-in-may-have-negative-int32-generic-array.js: Added.
(shouldBe):
(test1):
* stress/operation-in-may-have-negative-int32-int32-array.js: Added.
(shouldBe):
(test1):
* stress/operation-in-may-have-negative-int32.js: Added.
(shouldBe):
(test2):
* stress/operation-in-negative-int32-cast.js: Added.
(shouldBe):
(test1):
2017-11-28 JF Bastien <jfbastien@apple.com>
Strict and sloppy functions shouldn't share structure
https://bugs.webkit.org/show_bug.cgi?id=180103
<rdar://problem/35667847>
Reviewed by Saam Barati.
* stress/get-by-id-strict-arguments.js: Added. Used to not throw
because the IC was wrong.
(foo):
(bar):
(baz):
(catch):
* stress/get-by-id-strict-callee.js: Added. Not strictly necessary
in this patch, but may as well test odd strict mode corner cases.
(bar):
(baz):
(catch):
* stress/get-by-id-strict-caller.js: Added. Also IC'd wrong.
(foo):
(bar):
(baz):
(catch):
* stress/get-by-id-strict-nested-arguments-2.js: Added. Same as
next file, but with invalidation of the FunctionExecutable's
singletonFunction() to hit SpeculativeJIT::compileNewFunction's
slower path.
(foo):
(bar.const.x):
(bar.const.y):
(bar):
(catch):
* stress/get-by-id-strict-nested-arguments.js: Added. Make sure
strict nesting works correctly.
(foo):
(bar.baz):
(bar):
* stress/strict-function-structure.js: Added. The test used to
assert in objectProtoFuncHasOwnProperty.
(foo):
(bar):
(baz):
* stress/strict-nested-function-structure.js: Added. Nesting.
(foo):
(bar):
(baz.boo):
(baz):
2017-11-29 Robin Morisset <rmorisset@apple.com>
The recursive tail call optimisation is wrong on closures
https://bugs.webkit.org/show_bug.cgi?id=179835
Reviewed by Saam Barati.
* stress/closure-recursive-tail-call.js: Added.
(makeClosure):
2017-11-27 JF Bastien <jfbastien@apple.com>
JavaScript rest function parameter with negative index leads to bad DFG abstract interpretation
https://bugs.webkit.org/show_bug.cgi?id=180051
<rdar://problem/35614371>
Reviewed by Saam Barati.
* stress/rest-parameter-negative.js: Added.
(__f_5484):
(catch):
(__f_5485):
(__v_22598.catch):
2017-11-27 Saam Barati <sbarati@apple.com>
Spread can escape when CreateRest does not
https://bugs.webkit.org/show_bug.cgi?id=180057
<rdar://problem/35676119>
Reviewed by JF Bastien.
* stress/spread-escapes-but-create-rest-does-not.js: Added.
(assert):
(getProperties):
(theFunc):
(let.obj.valueOf):
2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Add NormalizeMapKey DFG IR
https://bugs.webkit.org/show_bug.cgi?id=179912
Reviewed by Saam Barati.
* stress/map-untyped-normalize-cse.js: Added.
(shouldBe):
(test):
* stress/map-untyped-normalize.js: Added.
(shouldBe):
(test):
* stress/set-untyped-normalize-cse.js: Added.
(shouldBe):
(set return.set has.set has):
* stress/set-untyped-normalize.js: Added.
(shouldBe):
(set return.set has):
2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support DeleteById and DeleteByVal
https://bugs.webkit.org/show_bug.cgi?id=180022
Reviewed by Saam Barati.
* stress/delete-by-id.js: Added.
(shouldBe):
(test1):
(test2):
* stress/delete-by-val-ftl.js: Added.
(shouldBe):
(test1):
(test2):
2017-11-26 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Introduce {Set,Map,WeakMap}Fields
https://bugs.webkit.org/show_bug.cgi?id=179925
Reviewed by Saam Barati.
* stress/map-set-clobber-map-get.js: Added.
(shouldBe):
(test):
* stress/map-set-does-not-clobber-set-has.js: Added.
(shouldBe):
* stress/map-set-does-not-clobber-weak-map-get.js: Added.
(shouldBe):
(test):
* stress/set-add-clobber-set-has.js: Added.
(shouldBe):
* stress/set-add-does-not-clobber-map-get.js: Added.
(shouldBe):
2017-11-24 Mark Lam <mark.lam@apple.com>
Move unsafe jsc shell test functions to the $vm object.
https://bugs.webkit.org/show_bug.cgi?id=179980
Reviewed by Yusuke Suzuki.
* controlFlowProfiler/driver/driver.js:
* controlFlowProfiler/execution-count.js:
* controlFlowProfiler/if-statement.js:
* controlFlowProfiler/loop-statements.js:
* controlFlowProfiler/switch-statements.js:
* controlFlowProfiler/test-jit.js:
* exceptionFuzz/3d-cube.js:
* exceptionFuzz/date-format-xparb.js:
* exceptionFuzz/earley-boyer.js:
* heapProfiler/basic-edges.js:
* heapProfiler/property-edge-types.js:
* microbenchmarks/try-get-by-id-basic.js:
* microbenchmarks/try-get-by-id-polymorphic.js:
* modules/namespace-object-try-get.js:
* stress/argument-count-bytecode.js:
* stress/argument-intrinsic-basic.js:
* stress/argument-intrinsic-inlining-use-caller-arg.js:
* stress/argument-intrinsic-inlining-with-result-escape.js:
* stress/argument-intrinsic-inlining-with-vararg-with-enough-arguments.js:
* stress/argument-intrinsic-inlining-with-vararg.js:
* stress/argument-intrinsic-nested-inlining.js:
* stress/argument-intrinsic-not-convert-to-get-argument.js:
* stress/argument-intrinsic-with-stack-write.js:
* stress/arity-mismatch-get-argument.js:
* stress/array-message-passing.js:
* stress/array-push-with-force-exit.js:
* stress/check-dom-with-signature.js:
* stress/check-sub-class.js:
* stress/compare-eq-incomplete-profile.js:
* stress/custom-get-set-inline-caching-one-level-up-proto-chain.js:
* stress/do-eval-virtual-call-correctly.js:
* stress/dom-jit-with-poly-proto.js:
* stress/domjit-exception-ic.js:
* stress/domjit-exception.js:
* stress/domjit-getter-complex-with-incorrect-object.js:
* stress/domjit-getter-complex.js:
* stress/domjit-getter-poly.js:
* stress/domjit-getter-proto.js:
* stress/domjit-getter-super-poly.js:
* stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js:
* stress/domjit-getter-type-check.js:
* stress/domjit-getter.js:
* stress/exit-during-inlined-arity-fixup-recover-proper-frame.js:
* stress/for-in-proxy-target-changed-structure.js:
* stress/for-in-proxy.js:
* stress/generational-opaque-roots.js:
* stress/global-const-redeclaration-setting-2.js:
* stress/global-const-redeclaration-setting-3.js:
* stress/global-const-redeclaration-setting-4.js:
* stress/global-const-redeclaration-setting-5.js:
* stress/global-const-redeclaration-setting.js:
* stress/import-basic.js:
* stress/import-from-eval.js:
* stress/import-reject-with-exception.js:
* stress/import-syntax.js:
* stress/impure-get-own-property-slot-inline-cache.js:
* stress/is-constructor.js:
* stress/istypedarrayview-intrinsic.js:
* stress/jsc-setImpureGetterDelegate-on-bad-type.js:
* stress/jsc-test-functions-should-be-more-robust.js:
* stress/object-toString-with-proxy.js:
* stress/poly-proto-custom-value-and-accessor.js:
* stress/proxy-inline-cache.js:
* stress/re-execute-error-module.js:
* stress/regress-150532.js:
* stress/regress-156992.js:
* stress/regress-179619.js:
* stress/resources/shadow-chicken-support.js:
* stress/runtime-array.js:
* stress/sampling-profiler-microtasks.js:
* stress/shadow-chicken-enabled.js:
* stress/spread-correct-global-object-on-exception.js:
* stress/super-get-by-id.js:
* stress/tailCallForwardArguments.js:
* stress/to-object-intrinsic-boolean-edge.js:
* stress/to-object-intrinsic-null-or-undefined-edge.js:
* stress/to-object-intrinsic-number-edge.js:
* stress/to-object-intrinsic-object-edge.js:
* stress/to-object-intrinsic-string-edge.js:
* stress/to-object-intrinsic-symbol-edge.js:
* stress/to-object-intrinsic.js:
* stress/try-catch-custom-getter-as-get-by-id.js:
* stress/try-get-by-id-poly-proto.js:
* stress/try-get-by-id-should-spill-registers-dfg.js:
* stress/try-get-by-id.js:
* typeProfiler/arrow-functions.js:
* typeProfiler/basic.js:
* typeProfiler/captured.js:
* typeProfiler/classes.js:
* typeProfiler/dfg-jit-optimizations.js:
* typeProfiler/dictionary-mode.js:
* typeProfiler/es6-block-scoping.js:
* typeProfiler/es6-classes.js:
* typeProfiler/inheritance.js:
* typeProfiler/int52-dfg.js:
* typeProfiler/loop.js:
* typeProfiler/optional-fields.js:
* typeProfiler/overflow.js:
* typeProfiler/return.js:
* typeProfiler/symbol.js:
* typeProfiler/weird-prototype-chain.js:
2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Support MapSet / SetAdd intrinsics
https://bugs.webkit.org/show_bug.cgi?id=179858
Reviewed by Saam Barati.
* microbenchmarks/map-has-and-set.js: Added.
(test):
* stress/map-set-check-failure.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/map-set-cse.js: Added.
(shouldBe):
(test):
* stress/set-add-check-failure.js: Added.
(shouldBe):
(shouldThrow):
(set shouldThrow):
* stress/set-add-cse.js: Added.
(shouldBe):
2017-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Allow poly proto for intrinsic getters
https://bugs.webkit.org/show_bug.cgi?id=179550
Reviewed by Saam Barati.
This change is also tested by existing tests.
1. stress/intrinsic-getter-with-poly-proto.js
2. stress/poly-proto-intrinsic-getter-correctness.js
* stress/intrinsic-getter-with-poly-proto-getter-change.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/intrinsic-getter-with-poly-proto-proto-change.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
2017-11-20 Guillaume Emont <guijemont@igalia.com>
Skip stress/unshiftCountSlowCase-correct-postCapacity.js on embedded Linux
https://bugs.webkit.org/show_bug.cgi?id=179744
Reviewed by Michael Catanzaro.
This test uses too much memory for our buildbots on these platforms
and gets OOM-killed.
* stress/unshiftCountSlowCase-correct-postCapacity.js:
Skip if $memoryLimited and linux.
2017-11-17 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: throw when a promise can't be created
https://bugs.webkit.org/show_bug.cgi?id=179826
<rdar://problem/35455813>
Reviewed by Mark Lam.
Test WebAssembly.{compile,instantiate} where promise creation
fails because of a stack overflow.
* wasm/js-api/promise-stack-overflow.js: Added.
(const.runNearStackLimit.f.const.t):
(async.testCompile):
(async.testInstantiate):
2017-11-16 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, mark regress-178385.js as memory exhausting
* stress/regress-178385.js:
2017-11-16 Ryan Haddad <ryanhaddad@apple.com>
Mark test262/test/language/statements/class/definition/fn-name-static-precedence.js as passing after r224927.
Unreviewed test gardening.
* test262.yaml:
2017-11-16 Robin Morisset <rmorisset@apple.com>
REGRESSION (r224592): oss-fuzz: jsc: Null-dereference READ in JSC::JSCell::isObject (4216)
https://bugs.webkit.org/show_bug.cgi?id=179763
<rdar://problem/35550513>
Reviewed by Keith Miller.
Just adding a slightly cleaned-up version of the original fuzzer-found test.
* stress/tdz-this-in-try-catch.js: Added.
(__v_6388):
(__v_6392):
2017-11-14 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Support Array::DirectArguments with OutOfBounds
https://bugs.webkit.org/show_bug.cgi?id=179594
Reviewed by Saam Barati.
* stress/direct-arguments-in-bounds-to-out-of-bounds.js: Added.
(shouldBe):
(args):
* stress/direct-arguments-out-of-bounds-watchpoint.js: Added.
(shouldBe):
(args):
2017-11-14 Saam Barati <sbarati@apple.com>
We need to set topCallFrame when calling Wasm::Memory::grow from the JIT
https://bugs.webkit.org/show_bug.cgi?id=179639
<rdar://problem/35513018>
Reviewed by JF Bastien.
* wasm/function-tests/grow-memory-cause-gc.js: Added.
(escape):
(i.func):
2017-11-13 Mark Lam <mark.lam@apple.com>
Add more overflow check book-keeping for MarkedArgumentBuffer.
https://bugs.webkit.org/show_bug.cgi?id=179634
<rdar://problem/35492517>
Reviewed by Saam Barati.
* stress/regress-179634.js: Added.
2017-11-13 Mark Lam <mark.lam@apple.com>
Make the jsc shell loadGetterFromGetterSetter() function more robust.
https://bugs.webkit.org/show_bug.cgi?id=179619
<rdar://problem/35492518>
Reviewed by Saam Barati.
* stress/regress-179619.js: Added.
2017-11-12 Mark Lam <mark.lam@apple.com>
We should ensure that operationStrCat2 and operationStrCat3 are never passed Symbols as arguments.
https://bugs.webkit.org/show_bug.cgi?id=179562
<rdar://problem/35467022>
Reviewed by Saam Barati.
* regress-179562.js: Added.
2017-11-08 Saam Barati <sbarati@apple.com>
A JSFunction's ObjectAllocationProfile should watch the poly prototype watchpoint so it can clear its object allocation profile
https://bugs.webkit.org/show_bug.cgi?id=177792
Reviewed by Yusuke Suzuki.
* microbenchmarks/poly-proto-clear-js-function-allocation-profile.js: Added.
(assert):
(foo.Foo.prototype.ensureX):
(foo.Foo):
(foo):
(access):
2017-11-08 Ryan Haddad <ryanhaddad@apple.com>
Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
https://bugs.webkit.org/show_bug.cgi?id=178592
Unreviewed test gardening.
* test262.yaml:
2017-11-08 Robin Morisset <rmorisset@apple.com>
Turn recursive tail calls into loops
https://bugs.webkit.org/show_bug.cgi?id=176601
Reviewed by Saam Barati.
Relanding after https://bugs.webkit.org/show_bug.cgi?id=178834.
Add some simple test that computes factorial in several ways, and other trivial computations.
They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
(which it doesn't if that tail call is transformed into a loop in the unsound cases).
* stress/inline-call-to-recursive-tail-call.js: Added.
(factorial.aux):
(factorial):
(factorial2.aux2):
(factorial2.id):
(factorial2):
(factorial3.aux3):
(factorial3):
(aux4):
(factorial4):
(foo):
(auxBar):
(bar):
(test):
2017-11-07 Mark Lam <mark.lam@apple.com>
AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
https://bugs.webkit.org/show_bug.cgi?id=179355
<rdar://problem/35263053>
Reviewed by Saam Barati.
* stress/regress-179355.js: Added.
2017-11-05 Yusuke Suzuki <utatane.tea@gmail.com>
JIT call inline caches should cache calls to objects with getCallData/getConstructData traps
https://bugs.webkit.org/show_bug.cgi?id=144458
Reviewed by Saam Barati.
* microbenchmarks/dfg-internal-function-call.js: Added.
(target):
* microbenchmarks/dfg-internal-function-construct.js: Added.
(target):
* microbenchmarks/dfg-internal-function-not-handled-call.js: Added.
(target):
* microbenchmarks/dfg-internal-function-not-handled-construct.js: Added.
(target):
* stress/dfg-internal-function-call.js: Added.
(shouldBe):
(target):
* stress/dfg-internal-function-construct.js: Added.
(shouldBe):
(target):
* stress/internal-function-call.js: Added.
(shouldBe):
* stress/internal-function-construct.js: Added.
(shouldBe):
2017-11-05 Per Arne Vollan <pvollan@apple.com>
[Win] Skip stress/regress-178385.js.
https://bugs.webkit.org/show_bug.cgi?id=179298
Unreviewed test gardening.
* stress/regress-178385.js:
2017-11-03 Keith Miller <keith_miller@apple.com>
Add test for ic with side effects
https://bugs.webkit.org/show_bug.cgi?id=179268
Reviewed by Saam Barati.
* stress/put-inline-cache-side-effects.js: Added.
(let.i.of.objs.keys):
(f):
2017-11-03 Mark Lam <mark.lam@apple.com>
CachedCall (and its clients) needs overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=179185
Reviewed by JF Bastien.
* stress/regress-179185.js: Added.
2017-11-02 Michael Saboff <msaboff@apple.com>
DFG needs to handle code motion of code in for..in loop bodies
https://bugs.webkit.org/show_bug.cgi?id=179212
Reviewed by Keith Miller.
New regression test.
* stress/for-in-side-effects.js: Added.
(getPrototypeOf):
(reset):
(testWithoutFTL.f):
(testWithoutFTL):
(testWithFTL.f):
(testWithFTL):
2017-11-02 Filip Pizlo <fpizlo@apple.com>
AI does not correctly model the clobber case of ArithClz32
https://bugs.webkit.org/show_bug.cgi?id=179188
Reviewed by Michael Saboff.
* stress/arith-clz32-effects.js: Added.
(foo):
(valueOf):
2017-11-01 Michael Saboff <msaboff@apple.com>
Integer overflow in code generated by LoadVarargs processing in DFG and FTL.
https://bugs.webkit.org/show_bug.cgi?id=179140
Reviewed by Saam Barati.
New regression test.
* stress/regress-179140.js: Added.
(testWithoutFTL):
(testWithFTL):
2017-11-01 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Introduce @toObject
https://bugs.webkit.org/show_bug.cgi?id=178726
Reviewed by Saam Barati.
* stress/array-copywithin.js:
(shouldThrow):
* stress/object-constructor-boolean-edge.js: Added.
(shouldBe):
(test):
* stress/object-constructor-global.js: Added.
(shouldBe):
* stress/object-constructor-null-edge.js: Added.
(shouldBe):
(test):
* stress/object-constructor-number-edge.js: Added.
(shouldBe):
(test):
* stress/object-constructor-object-edge.js: Added.
(shouldBe):
(test):
(i.arg):
* stress/object-constructor-string-edge.js: Added.
(shouldBe):
(test):
* stress/object-constructor-symbol-edge.js: Added.
(shouldBe):
(test):
* stress/object-constructor-undefined-edge.js: Added.
(shouldBe):
(test):
* stress/symbol-array-from.js: Added.
(shouldBe):
* stress/to-object-intrinsic-boolean-edge.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/to-object-intrinsic-null-or-undefined-edge.js: Added.
(shouldThrow):
* stress/to-object-intrinsic-number-edge.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/to-object-intrinsic-object-edge.js: Added.
(shouldBe):
(builtin.createBuiltin):
(i.arg):
* stress/to-object-intrinsic-string-edge.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/to-object-intrinsic-symbol-edge.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/to-object-intrinsic.js: Added.
(shouldBe):
(shouldThrow):
(builtin.createBuiltin):
2017-10-27 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Introduce StringSlice
https://bugs.webkit.org/show_bug.cgi?id=178934
Reviewed by Saam Barati.
* microbenchmarks/string-slice-empty.js: Added.
(slice):
* microbenchmarks/string-slice-one-char.js: Added.
(slice):
* microbenchmarks/string-slice.js: Added.
(slice):
2017-10-26 Michael Saboff <msaboff@apple.com>
REGRESSION(r222601): We fail to properly backtrack into a sub pattern of a parenthesis with non-zero minimum
https://bugs.webkit.org/show_bug.cgi?id=178890
Reviewed by Keith Miller.
New regression test.
* stress/regress-178890.js: Added.
2017-10-26 Mark Lam <mark.lam@apple.com>
JSRopeString::RopeBuilder::append() should check for overflows.
https://bugs.webkit.org/show_bug.cgi?id=178385
<rdar://problem/35027468>
Reviewed by Saam Barati.
* stress/regress-178385.js: Added.
2017-10-26 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r223961.
The change that required this has been rolled out.
Reverted changeset:
"Mark test262.yaml/test262/test/language/statements/try/tco-
catch.js as passing."
https://bugs.webkit.org/show_bug.cgi?id=178592
https://trac.webkit.org/changeset/223961
2017-10-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r223691 and r223729.
https://bugs.webkit.org/show_bug.cgi?id=178834
Broke Speedometer 2 React-Redux-TodoMVC test case (Requested
by rniwa on #webkit).
Reverted changesets:
"Turn recursive tail calls into loops"
https://bugs.webkit.org/show_bug.cgi?id=176601
https://trac.webkit.org/changeset/223691
"REGRESSION(r223691): DFGByteCodeParser.cpp:1483:83: warning:
comparison is always false due to limited range of data type
[-Wtype-limits]"
https://bugs.webkit.org/show_bug.cgi?id=178543
https://trac.webkit.org/changeset/223729
2017-10-25 Ryan Haddad <ryanhaddad@apple.com>
Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
https://bugs.webkit.org/show_bug.cgi?id=178592
Unreviewed test gardening.
* test262.yaml:
2017-10-24 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support NewStringObject
https://bugs.webkit.org/show_bug.cgi?id=178737
Reviewed by Saam Barati.
* stress/new-string-object.js: Added.
(shouldBe):
(test):
2017-10-15 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] modules can be visited more than once when resolving bindings through "star" exports as long as the exportName is different each time
https://bugs.webkit.org/show_bug.cgi?id=178308
Reviewed by Mark Lam.
* test262.yaml:
2017-10-23 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use fastJoin in Array#toString
https://bugs.webkit.org/show_bug.cgi?id=178062
Reviewed by Darin Adler.
* microbenchmarks/contiguous-array-to-string.js: Added.
(target):
* microbenchmarks/double-array-to-string.js: Added.
(target):
* microbenchmarks/int32-array-to-string.js: Added.
(target):
2017-10-22 Zan Dobersek <zdobersek@igalia.com>
stress/check-string-ident.js is improperly skipped
https://bugs.webkit.org/show_bug.cgi?id=178642
Reviewed by Saam Barati.
* stress/check-string-ident.js: Drop the defaultNoEagerRun directive
since it enforces the run-jsc-stress-tests script to still set up the
test to run, despite the skip directive that's used before.
2017-10-20 Mark Lam <mark.lam@apple.com>
Add a test case for r214334.
https://bugs.webkit.org/show_bug.cgi?id=169941
<rdar://problem/31221258>
Reviewed by JF Bastien.
* stress/regress-169941.js: Added.
2017-10-19 JF Bastien <jfbastien@apple.com>
WebAssembly: no VM / JS version of everything but Instance
https://bugs.webkit.org/show_bug.cgi?id=177473
Reviewed by Filip Pizlo, Saam Barati.
- Exceeding max on memory growth now returns a range error as per
spec. This is a (very minor) breaking change: it used to throw OOM
error. Update the corresponding test.
* wasm/js-api/memory-grow.js:
(assertEq):
* wasm/js-api/table.js:
(assert.throws):
2017-10-19 Mark Lam <mark.lam@apple.com>
Stringifier::appendStringifiedValue() is missing an exception check.
https://bugs.webkit.org/show_bug.cgi?id=178386
<rdar://problem/35027610>
Reviewed by Saam Barati.
* stress/regress-178386.js: Added.
2017-10-19 Michael Saboff <msaboff@apple.com>
Test262: RegExp/property-escapes/generated/Emoji_Component.js fails with current RegExp Unicode Properties implementation
https://bugs.webkit.org/show_bug.cgi?id=178521
Reviewed by JF Bastien.
* test262.yaml: Enabled test262/test/built-ins/RegExp/property-escapes/generated/Emoji_Component.js as it
now passes with the current version (5.0) of the Emoji spec.
2017-10-19 Robin Morisset <rmorisset@apple.com>
Turn recursive tail calls into loops
https://bugs.webkit.org/show_bug.cgi?id=176601
Reviewed by Saam Barati.
Add some simple test that computes factorial in several ways, and other trivial computations.
They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
(which it doesn't if that tail call is transformed into a loop in the unsound cases).
* stress/inline-call-to-recursive-tail-call.js: Added.
(factorial.aux):
(factorial):
(factorial2.aux):
(factorial2.id):
(factorial2):
(factorial3.aux):
(factorial3):
(aux):
(factorial4):
(test):
2017-10-18 Mark Lam <mark.lam@apple.com>
RegExpObject::defineOwnProperty() does not need to compare values if no descriptor value is specified.
https://bugs.webkit.org/show_bug.cgi?id=177600
<rdar://problem/34710985>
Reviewed by Saam Barati.
* stress/regress-177600.js: Added.
2017-10-18 Mark Lam <mark.lam@apple.com>
The compiler should always register a structure when it adds its transitionWatchPointSet.
https://bugs.webkit.org/show_bug.cgi?id=178420
<rdar://problem/34814024>
Reviewed by Saam Barati and Filip Pizlo.
* stress/regress-178420.js: Added.
(new.Array.10000.map):
2017-10-18 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] __proto__ getter should be fast
https://bugs.webkit.org/show_bug.cgi?id=178067
Reviewed by Saam Barati.
* stress/dfg-object-proto-accessor.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-object-proto-getter.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-object-prototype-of.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-reflect-get-prototype-of.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/intrinsic-getter-with-poly-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-get-prototype-of-filtered.js: Added.
(shouldBe):
(shouldThrow):
(target):
(i.Cocoa):
* stress/object-get-prototype-of-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-get-prototype-of-poly-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-get-prototype-of-poly-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-proto-getter-filtered.js: Added.
(shouldBe):
(shouldThrow):
(target):
(i.Cocoa):
* stress/object-proto-getter-poly-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-proto-getter-poly-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
* stress/string-proto.js: Added.
(shouldBe):
(target):
2017-10-17 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r223523.
A test for this change is failing on debug JSC bots.
Reverted changeset:
"[JSC] __proto__ getter should be fast"
https://bugs.webkit.org/show_bug.cgi?id=178067
https://trac.webkit.org/changeset/223523
2017-10-10 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] __proto__ getter should be fast
https://bugs.webkit.org/show_bug.cgi?id=178067
Reviewed by Saam Barati.
* stress/dfg-object-proto-accessor.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-object-proto-getter.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-object-prototype-of.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/dfg-reflect-get-prototype-of.js: Added.
(shouldBe):
(shouldThrow):
(target):
* stress/object-get-prototype-of-filtered.js: Added.
(shouldBe):
(shouldThrow):
(target):
(i.Cocoa):
* stress/object-get-prototype-of-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-get-prototype-of-poly-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-get-prototype-of-poly-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-proto-getter-filtered.js: Added.
(shouldBe):
(shouldThrow):
(target):
(i.Cocoa):
* stress/object-proto-getter-poly-mono-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-proto-getter-poly-proto.js: Added.
(shouldBe):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(target):
* stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js:
* stress/string-proto.js: Added.
(shouldBe):
(target):
2017-10-14 Yusuke Suzuki <utatane.tea@gmail.com>
Reland "Add Above/Below comparisons for UInt32 patterns"
https://bugs.webkit.org/show_bug.cgi?id=177281
Reviewed by Saam Barati.
* stress/uint32-comparison-jump.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(notAbove):
(notAboveOrEqual):
(notBelow):
(notBelowOrEqual):
* stress/uint32-comparison.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(aboveTest):
(aboveOrEqualTest):
(belowTest):
(belowOrEqualTest):
2017-10-12 Yusuke Suzuki <utatane.tea@gmail.com>
WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData
https://bugs.webkit.org/show_bug.cgi?id=178210
Reviewed by Saam Barati.
* wasm/function-tests/trap-from-start-async.js:
(async.StartTrapsAsync):
* wasm/function-tests/trap-from-start.js:
(StartTraps):
* wasm/js-api/web-assembly-function.js:
(assert.eq.Object.getPrototypeOf):
* wasm/js-api/wrapper-function.js:
(return.new.WebAssembly.Module):
(assert.throws.makeInstance): Deleted.
(assert.throws.Bar): Deleted.
(assert.throws): Deleted.
2017-09-29 Filip Pizlo <fpizlo@apple.com>
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586
Reviewed by JF Bastien.
Add tests for when Gigacage gets runtime disabled.
* stress/disable-gigacage-arrays.js: Added.
(foo):
* stress/disable-gigacage-strings.js: Added.
(foo):
* stress/disable-gigacage-typed-arrays.js: Added.
(foo):
2017-10-11 Yusuke Suzuki <utatane.tea@gmail.com>
import.meta should not be assignable
https://bugs.webkit.org/show_bug.cgi?id=178202
Reviewed by Saam Barati.
* modules/import-meta-assignment.js: Added.
(shouldThrow):
(SyntaxError.import.meta.can.shouldThrow):
2017-10-11 Saam Barati <sbarati@apple.com>
Unreviewed. Actually skip certain type profiler tests in debug.
* typeProfiler.yaml:
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:
2017-10-11 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r223113 and r223121.
https://bugs.webkit.org/show_bug.cgi?id=178182
Reintroduced 20% regression on Kraken (Requested by rniwa on
#webkit).
Reverted changesets:
"Enable gigacage on iOS"
https://bugs.webkit.org/show_bug.cgi?id=177586
https://trac.webkit.org/changeset/223113
"Use one virtual allocation for all gigacages and their
runways"
https://bugs.webkit.org/show_bug.cgi?id=178050
https://trac.webkit.org/changeset/223121
2017-10-11 Michael Saboff <msaboff@apple.com>
Disable test262 named capture group tests with direct unicode names and with references before definitions
https://bugs.webkit.org/show_bug.cgi?id=178177
Reviewed by Keith Miller.
Bugs to track fixing these test are:
https://bugs.webkit.org/show_bug.cgi?id=178174 -
"Add support in named capture group identifiers for direct surrogate pairs"
https://bugs.webkit.org/show_bug.cgi?id=178175 -
"Test262 failure with Named Capture Groups - using a reference before the group is defined"
* test262.yaml:
2017-10-11 Caio Lima <ticaiolima@gmail.com>
Object properties are undefined in super.call() but not in this.call()
https://bugs.webkit.org/show_bug.cgi?id=177230
Reviewed by Saam Barati.
* stress/super-call-function-subclass.js: Added.
(assert):
(A.prototype.t):
(A):
* stress/super-dot-call-and-apply.js: Added.
(assert):
(A):
(A.prototype.call):
(A.prototype.apply):
(B.prototype.testSuper):
(B):
(const.obj.new.B.string_appeared_here.obj.testSuper.C):
(D.prototype.testSuper):
(D):
2017-10-10 Saam Barati <sbarati@apple.com>
The prototype cache should be aware of the Executable it generates a Structure for
https://bugs.webkit.org/show_bug.cgi?id=177907
Reviewed by Filip Pizlo.
* microbenchmarks/dont-confuse-structures-from-different-executable-as-poly-proto.js: Added.
(assert):
(foo.C):
(foo):
(bar.C):
(bar):
(access):
(makeLongChain):
(accessY):
2017-10-09 Yusuke Suzuki <utatane.tea@gmail.com>
`async` should be able to be used as an imported binding name
https://bugs.webkit.org/show_bug.cgi?id=176573
Reviewed by Saam Barati.
* modules/import-default-async.js: Added.
* modules/import-named-async-as.js: Added.
* modules/import-named-async.js: Added.
* modules/import-named-async/target.js: Added.
* modules/import-namespace-async.js: Added.
* test262.yaml:
2017-09-29 Filip Pizlo <fpizlo@apple.com>
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586
Reviewed by JF Bastien.
Add tests for when Gigacage gets runtime disabled.
* stress/disable-gigacage-arrays.js: Added.
(foo):
* stress/disable-gigacage-strings.js: Added.
(foo):
* stress/disable-gigacage-typed-arrays.js: Added.
(foo):
2017-10-09 Michael Saboff <msaboff@apple.com>
Implement RegExp Unicode property escapes
https://bugs.webkit.org/show_bug.cgi?id=172069
Reviewed by JF Bastien.
Enabled Unicode Property tests.
* test262.yaml:
2017-10-09 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r223015 and r223025.
https://bugs.webkit.org/show_bug.cgi?id=178093
Regressed Kraken on iOS by 20% (Requested by keith_mi_ on
#webkit).
Reverted changesets:
"Enable gigacage on iOS"
https://bugs.webkit.org/show_bug.cgi?id=177586
http://trac.webkit.org/changeset/223015
"Unreviewed, disable Gigacage on ARM64 Linux"
https://bugs.webkit.org/show_bug.cgi?id=177586
http://trac.webkit.org/changeset/223025
2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
Update expectations for test262 tests that pass after r223043.
https://bugs.webkit.org/show_bug.cgi?id=176685
Unreviewed test gardening.
* test262.yaml:
2017-10-09 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r223022.
This change introduced 18 test262 failures.
Reverted changeset:
"`async` should be able to be used as an imported binding
name"
https://bugs.webkit.org/show_bug.cgi?id=176573
http://trac.webkit.org/changeset/223022
2017-10-09 Saam Barati <sbarati@apple.com>
3 poly-proto JSC tests timing out on debug after r222827
https://bugs.webkit.org/show_bug.cgi?id=177880
<rdar://problem/34817122>
Unreviewed.
I'm skipping these type profiler tests on debug since they are long running.
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:
2017-10-09 Oleksandr Skachkov <gskachkov@gmail.com>
Safari 10 /11 problem with if (!await get(something)).
https://bugs.webkit.org/show_bug.cgi?id=176685
Reviewed by Saam Barati.
* stress/async-await-basic.js:
(awaitEpression.async):
* stress/async-await-syntax.js:
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
(prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
2017-10-08 Saam Barati <sbarati@apple.com>
Unreviewed. Make some type profiler tests run for less time to avoid debug timeouts.
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:
2017-10-07 Yusuke Suzuki <utatane.tea@gmail.com>
`async` should be able to be used as an imported binding name
https://bugs.webkit.org/show_bug.cgi?id=176573
Reviewed by Darin Adler.
* modules/import-default-async.js: Added.
* modules/import-named-async-as.js: Added.
* modules/import-named-async.js: Added.
* modules/import-named-async/target.js: Added.
* modules/import-namespace-async.js: Added.
2017-09-29 Filip Pizlo <fpizlo@apple.com>
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586
Reviewed by JF Bastien.
Add tests for when Gigacage gets runtime disabled.
* stress/disable-gigacage-arrays.js: Added.
(foo):
* stress/disable-gigacage-strings.js: Added.
(foo):
* stress/disable-gigacage-typed-arrays.js: Added.
(foo):
2017-10-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r222791 and r222873.
https://bugs.webkit.org/show_bug.cgi?id=178031
Caused crashes with workers/wasm LayoutTests (Requested by
ryanhaddad on #webkit).
Reverted changesets:
"WebAssembly: no VM / JS version of everything but Instance"
https://bugs.webkit.org/show_bug.cgi?id=177473
http://trac.webkit.org/changeset/222791
"WebAssembly: address no VM / JS follow-ups"
https://bugs.webkit.org/show_bug.cgi?id=177887
http://trac.webkit.org/changeset/222873
2017-10-05 Saam Barati <sbarati@apple.com>
Make sure all prototypes under poly proto get added into the VM's prototype map
https://bugs.webkit.org/show_bug.cgi?id=177909
Reviewed by Keith Miller.
* stress/poly-proto-prototype-map-having-a-bad-time.js: Added.
(assert):
(foo.C):
(foo):
(set x):
2017-09-30 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Introduce import.meta
https://bugs.webkit.org/show_bug.cgi?id=177703
Reviewed by Filip Pizlo.
* modules/import-meta-syntax.js: Added.
(shouldThrow):
(shouldNotThrow):
* modules/import-meta.js: Added.
* modules/import-meta/cocoa.js: Added.
* modules/resources/assert.js:
(export.shouldNotThrow):
* stress/import-syntax.js:
2017-10-04 Saam Barati <sbarati@apple.com>
Make pertinent AccessCases watch the poly proto watchpoint
https://bugs.webkit.org/show_bug.cgi?id=177765
Reviewed by Keith Miller.
* microbenchmarks/poly-proto-and-non-poly-proto-same-ic.js: Added.
(assert):
(foo.C):
(foo):
(validate):
* stress/poly-proto-clear-stub.js: Added.
(assert):
(foo.C):
(foo):
2017-10-04 Ryan Haddad <ryanhaddad@apple.com>
Remove failure expectation for async-func-decl-dstr-obj-id-put-unresolvable-no-strict.js.
Unreviewed test gardening.
* test262.yaml:
2017-10-04 Saam Barati <sbarati@apple.com>
3 poly-proto JSC tests timing out on debug after r222827
https://bugs.webkit.org/show_bug.cgi?id=177880
Rubber stamped by Mark Lam.
* microbenchmarks/poly-proto-access.js:
* typeProfiler/deltablue-for-of.js:
* typeProfiler/getter-richards.js:
2017-10-04 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed, marking tco-catch.js as a failure after test262 update
https://bugs.webkit.org/show_bug.cgi?id=177859
* test262.yaml:
2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, marking one async iterator test262 test failed
https://bugs.webkit.org/show_bug.cgi?id=177859
* test262.yaml:
2017-10-04 Yusuke Suzuki <utatane.tea@gmail.com>
[Test262] Update Test262 to Oct 4 version
https://bugs.webkit.org/show_bug.cgi?id=177859
Reviewed by Sam Weinig.
Let's rebaseline test262. Since it includes the latest changes to ArrayIterator::next,
we no longer need to mark it skip/fail. Also this update includes bunch of BigInt tests.
* test262.yaml:
* test262/harness/promiseHelper.js: Renamed from JSTests/test262/harness/PromiseHelper.js.
(checkSequence):
* test262/harness/typeCoercion.js:
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testCoercibleToIndexFromIndex):
(testNotCoercibleToIndex.testPrimitiveValue):
(testNotCoercibleToInteger):
(testCoercibleToBigIntZero.testPrimitiveValue):
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne.testPrimitiveValue):
(testCoercibleToBigIntOne):
(testPrimitiveValue):
(testCoercibleToBigIntFromBigInt):
(testNotCoercibleToBigInt.testPrimitiveValue):
(testNotCoercibleToBigInt.testStringValue):
(testNotCoercibleToBigInt):
* test262/test/built-ins/Array/from/proto-from-ctor-realm.js:
* test262/test/built-ins/Array/length/define-own-prop-length-overflow-realm.js:
* test262/test/built-ins/Array/of/proto-from-ctor-realm.js:
* test262/test/built-ins/Array/proto-from-ctor-realm.js:
* test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/concat/create-proto-from-ctor-realm-non-array.js:
* test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/filter/create-proto-from-ctor-realm-non-array.js:
* test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/map/create-proto-from-ctor-realm-non-array.js:
* test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/slice/create-proto-from-ctor-realm-non-array.js:
* test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-array.js:
* test262/test/built-ins/Array/prototype/splice/create-proto-from-ctor-realm-non-array.js:
* test262/test/built-ins/ArrayBuffer/proto-from-ctor-realm.js:
* test262/test/built-ins/BigInt/asIntN/bigint-tobigint.js:
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne):
(testNotCoercibleToBigInt):
(MyError): Deleted.
(valueOf): Deleted.
(toString): Deleted.
(Symbol.toPrimitive): Deleted.
* test262/test/built-ins/BigInt/asIntN/bits-toindex.js:
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testNotCoercibleToIndex):
(MyError): Deleted.
(assert.sameValue.BigInt.asIntN.valueOf): Deleted.
(assert.sameValue.BigInt.asIntN.toString): Deleted.
(BigInt.asIntN.Symbol.toPrimitive): Deleted.
(BigInt.asIntN.valueOf): Deleted.
(BigInt.asIntN.toString): Deleted.
* test262/test/built-ins/BigInt/asUintN/arithmetic.js: Added.
* test262/test/built-ins/BigInt/asUintN/asUintN.js: Added.
* test262/test/built-ins/BigInt/asUintN/bigint-tobigint.js: Added.
(testCoercibleToBigIntZero):
(testCoercibleToBigIntOne):
(testNotCoercibleToBigInt):
* test262/test/built-ins/BigInt/asUintN/bits-toindex.js: Added.
(testCoercibleToIndexZero):
(testCoercibleToIndexOne):
(testNotCoercibleToIndex):
* test262/test/built-ins/BigInt/asUintN/length.js: Added.
* test262/test/built-ins/BigInt/asUintN/name.js: Added.
* test262/test/built-ins/BigInt/asUintN/order-of-steps.js: Added.
(bits.valueOf):
(bigint.valueOf):
* test262/test/built-ins/BigInt/prototype/valueOf/length.js: Added.
* test262/test/built-ins/BigInt/prototype/valueOf/name.js: Added.
* test262/test/built-ins/BigInt/prototype/valueOf/prop-desc.js: Added.
* test262/test/built-ins/BigInt/prototype/valueOf/return.js: Added.
* test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-object-throws.js: Added.
* test262/test/built-ins/BigInt/prototype/valueOf/this-value-invalid-primitive-throws.js: Added.
* test262/test/built-ins/Boolean/proto-from-ctor-realm.js:
* test262/test/built-ins/DataView/proto-from-ctor-realm-sab.js:
* test262/test/built-ins/DataView/proto-from-ctor-realm.js:
* test262/test/built-ins/Date/proto-from-ctor-realm-one.js:
* test262/test/built-ins/Date/proto-from-ctor-realm-two.js:
* test262/test/built-ins/Date/proto-from-ctor-realm-zero.js:
* test262/test/built-ins/Error/proto-from-ctor-realm.js:
* test262/test/built-ins/Function/call-bind-this-realm-undef.js:
* test262/test/built-ins/Function/call-bind-this-realm-value.js:
* test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
* test262/test/built-ins/Function/internals/Construct/base-ctor-revoked-proxy-realm.js:
* test262/test/built-ins/Function/internals/Construct/derived-return-val-realm.js:
* test262/test/built-ins/Function/internals/Construct/derived-this-uninitialized-realm.js:
* test262/test/built-ins/Function/proto-from-ctor-realm.js:
* test262/test/built-ins/Function/prototype/bind/get-fn-realm.js:
* test262/test/built-ins/Function/prototype/bind/proto-from-ctor-realm.js:
* test262/test/built-ins/GeneratorFunction/proto-from-ctor-realm.js:
* test262/test/built-ins/JSON/stringify/bigint-order.js: Added.
(replacer):
(BigInt.prototype.toJSON):
* test262/test/built-ins/JSON/stringify/bigint-replacer.js: Added.
(replacer):
* test262/test/built-ins/JSON/stringify/bigint-tojson.js: Added.
(BigInt.prototype.toJSON):
* test262/test/built-ins/JSON/stringify/bigint.js:
* test262/test/built-ins/Map/proto-from-ctor-realm.js:
* test262/test/built-ins/Number/S9.3.1_A2_U180E.js:
* test262/test/built-ins/Number/S9.3.1_A3_T1_U180E.js:
* test262/test/built-ins/Number/S9.3.1_A3_T2_U180E.js:
* test262/test/built-ins/Number/proto-from-ctor-realm.js:
* test262/test/built-ins/Object/proto-from-ctor.js:
* test262/test/built-ins/Promise/proto-from-ctor-realm.js:
* test262/test/built-ins/Proxy/apply/arguments-realm.js:
* test262/test/built-ins/Proxy/apply/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/construct/arguments-realm.js:
* test262/test/built-ins/Proxy/construct/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/construct/trap-is-undefined-proto-from-ctor-realm.js:
* test262/test/built-ins/Proxy/defineProperty/desc-realm.js:
* test262/test/built-ins/Proxy/defineProperty/null-handler-realm.js:
* test262/test/built-ins/Proxy/defineProperty/targetdesc-configurable-desc-not-configurable-realm.js:
* test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-not-configurable-target-realm.js:
* test262/test/built-ins/Proxy/defineProperty/targetdesc-not-compatible-descriptor-realm.js:
* test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-not-configurable-descriptor-realm.js:
* test262/test/built-ins/Proxy/defineProperty/targetdesc-undefined-target-is-not-extensible-realm.js:
* test262/test/built-ins/Proxy/defineProperty/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/deleteProperty/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/get-fn-realm.js:
* test262/test/built-ins/Proxy/get/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/getOwnPropertyDescriptor/result-type-is-not-object-nor-undefined-realm.js:
* test262/test/built-ins/Proxy/getOwnPropertyDescriptor/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/getPrototypeOf/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/has/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/isExtensible/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/ownKeys/return-not-list-object-throws-realm.js:
* test262/test/built-ins/Proxy/ownKeys/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/preventExtensions/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/set/trap-is-not-callable-realm.js:
* test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable-realm.js:
* test262/test/built-ins/RegExp/S15.10.2.12_A1_T1.js:
(i6.replace):
(i6b.replace):
* test262/test/built-ins/RegExp/dotall/with-dotall-unicode.js:
* test262/test/built-ins/RegExp/dotall/with-dotall.js:
* test262/test/built-ins/RegExp/dotall/without-dotall-unicode.js:
* test262/test/built-ins/RegExp/dotall/without-dotall.js:
* test262/test/built-ins/RegExp/proto-from-ctor-realm.js:
* test262/test/built-ins/RegExp/prototype/Symbol.split/splitter-proto-from-ctor-realm.js:
* test262/test/built-ins/RegExp/u180e.js: Added.
* test262/test/built-ins/Set/proto-from-ctor-realm.js:
* test262/test/built-ins/SharedArrayBuffer/proto-from-ctor-realm.js:
* test262/test/built-ins/String/proto-from-ctor-realm.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Fail_2.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_2.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_3.js:
* test262/test/built-ins/String/prototype/endsWith/String.prototype.endsWith_Success_4.js:
* test262/test/built-ins/String/prototype/endsWith/coerced-values-of-position.js:
* test262/test/built-ins/String/prototype/endsWith/endsWith.js:
* test262/test/built-ins/String/prototype/endsWith/length.js:
* test262/test/built-ins/String/prototype/endsWith/name.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position-as-symbol.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-position.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-as-symbol.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring-regexp-test.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-searchstring.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this-as-symbol.js:
* test262/test/built-ins/String/prototype/endsWith/return-abrupt-from-this.js:
* test262/test/built-ins/String/prototype/endsWith/return-false-if-search-start-is-less-than-zero.js:
* test262/test/built-ins/String/prototype/endsWith/return-true-if-searchstring-is-empty.js:
* test262/test/built-ins/String/prototype/endsWith/searchstring-found-with-position.js:
* test262/test/built-ins/String/prototype/endsWith/searchstring-found-without-position.js:
* test262/test/built-ins/String/prototype/endsWith/searchstring-is-regexp-throws.js:
* test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-with-position.js:
* test262/test/built-ins/String/prototype/endsWith/searchstring-not-found-without-position.js:
* test262/test/built-ins/String/prototype/endsWith/this-is-null-throws.js:
* test262/test/built-ins/String/prototype/endsWith/this-is-undefined-throws.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailBadLocation.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailLocation.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_FailMissingLetter.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_Success.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_SuccessNoLocation.js:
* test262/test/built-ins/String/prototype/includes/String.prototype.includes_lengthProp.js:
* test262/test/built-ins/String/prototype/includes/coerced-values-of-position.js:
* test262/test/built-ins/String/prototype/includes/includes.js:
* test262/test/built-ins/String/prototype/includes/length.js:
* test262/test/built-ins/String/prototype/includes/name.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-position-as-symbol.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-position.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-as-symbol.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring-regexp-test.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-searchstring.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-this-as-symbol.js:
* test262/test/built-ins/String/prototype/includes/return-abrupt-from-this.js:
* test262/test/built-ins/String/prototype/includes/return-false-with-out-of-bounds-position.js:
* test262/test/built-ins/String/prototype/includes/return-true-if-searchstring-is-empty.js:
* test262/test/built-ins/String/prototype/includes/searchstring-found-with-position.js:
* test262/test/built-ins/String/prototype/includes/searchstring-found-without-position.js:
* test262/test/built-ins/String/prototype/includes/searchstring-is-regexp-throws.js:
* test262/test/built-ins/String/prototype/includes/searchstring-not-found-with-position.js:
* test262/test/built-ins/String/prototype/includes/searchstring-not-found-without-position.js:
* test262/test/built-ins/String/prototype/includes/this-is-null-throws.js:
* test262/test/built-ins/String/prototype/includes/this-is-undefined-throws.js:
* test262/test/built-ins/String/prototype/toLocaleLowerCase/Final_Sigma_U180E.js:
* test262/test/built-ins/String/prototype/toLowerCase/Final_Sigma_U180E.js:
* test262/test/built-ins/String/prototype/trim/u180e.js:
* test262/test/built-ins/Symbol/for/cross-realm.js:
* test262/test/built-ins/Symbol/hasInstance/cross-realm.js:
* test262/test/built-ins/Symbol/isConcatSpreadable/cross-realm.js:
* test262/test/built-ins/Symbol/iterator/cross-realm.js:
* test262/test/built-ins/Symbol/keyFor/cross-realm.js:
* test262/test/built-ins/Symbol/match/cross-realm.js:
* test262/test/built-ins/Symbol/replace/cross-realm.js:
* test262/test/built-ins/Symbol/search/cross-realm.js:
* test262/test/built-ins/Symbol/species/cross-realm.js:
* test262/test/built-ins/Symbol/split/cross-realm.js:
* test262/test/built-ins/Symbol/toPrimitive/cross-realm.js:
* test262/test/built-ins/Symbol/toStringTag/cross-realm.js:
* test262/test/built-ins/Symbol/unscopables/cross-realm.js:
* test262/test/built-ins/ThrowTypeError/distinct-cross-realm.js:
* test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm-sab.js:
* test262/test/built-ins/TypedArrays/buffer-arg-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/internals/DefineOwnProperty/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrays/internals/Get/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrays/internals/GetOwnProperty/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrays/internals/HasProperty/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrays/internals/Set/detached-buffer-realm.js:
* test262/test/built-ins/TypedArrays/length-arg-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/no-args-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/object-arg-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/typedarray-arg-other-ctor-buffer-ctor-custom-species-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/typedarray-arg-proto-from-ctor-realm.js:
* test262/test/built-ins/TypedArrays/typedarray-arg-same-ctor-buffer-ctor-species-custom-proto-from-ctor-realm.js:
* test262/test/built-ins/WeakMap/proto-from-ctor-realm.js:
* test262/test/built-ins/WeakSet/proto-from-ctor-realm.js:
* test262/test/built-ins/parseFloat/S15.1.2.3_A2_T10_U180E.js:
* test262/test/built-ins/parseInt/S15.1.2.2_A2_T10_U180E.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/length.js:
* test262/test/language/comments/mongolian-vowel-separator-multi.js:
* test262/test/language/comments/mongolian-vowel-separator-single-eval.js:
* test262/test/language/comments/mongolian-vowel-separator-single.js:
* test262/test/language/eval-code/indirect/realm.js:
* test262/test/language/expressions/assignment/dstr-obj-rest-order.js: Added.
(o.get z):
(o.get a):
* test262/test/language/expressions/call/eval-realm-indirect.js:
* test262/test/language/expressions/generators/eval-body-proto-realm.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js: Added.
* test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js: Added.
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js: Added.
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/greater-than/bigint-and-bigint.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-non-finite.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-number-extremes.js: Added.
* test262/test/language/expressions/greater-than/bigint-and-number.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js: Added.
* test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/less-than/bigint-and-bigint.js: Added.
* test262/test/language/expressions/less-than/bigint-and-non-finite.js: Added.
* test262/test/language/expressions/less-than/bigint-and-number-extremes.js: Added.
* test262/test/language/expressions/less-than/bigint-and-number.js:
* test262/test/language/expressions/new/non-ctor-err-realm.js:
* test262/test/language/expressions/super/realm.js:
* test262/test/language/expressions/tagged-template/cache-realm.js:
* test262/test/language/expressions/template-literal/mongolian-vowel-separator-eval.js:
* test262/test/language/expressions/template-literal/mongolian-vowel-separator.js:
* test262/test/language/literals/regexp/mongolian-vowel-separator-eval.js:
* test262/test/language/literals/regexp/mongolian-vowel-separator.js:
* test262/test/language/literals/string/mongolian-vowel-separator-eval.js:
* test262/test/language/literals/string/mongolian-vowel-separator.js:
* test262/test/language/statements/for-of/dstr-obj-rest-order.js: Added.
(o.get z):
(o.get a):
* test262/test/language/statements/for-of/iterator-next-reference.js:
(next):
(iterator.next): Deleted.
(x.of.iterable.): Deleted.
(x.of.iterable.get return): Deleted.
(x.of.iterable.iterator.next): Deleted.
* test262/test/language/types/reference/get-value-prop-base-primitive-realm.js:
* test262/test/language/types/reference/put-value-prop-base-primitive-realm.js:
* test262/test/language/white-space/mongolian-vowel-separator-eval.js:
* test262/test/language/white-space/mongolian-vowel-separator.js:
* test262/test262-Revision.txt:
2017-10-03 Saam Barati <sbarati@apple.com>
Implement polymorphic prototypes
https://bugs.webkit.org/show_bug.cgi?id=176391
Reviewed by Filip Pizlo.
* microbenchmarks/poly-proto-access.js: Added.
(assert):
(foo.C):
(foo.C.prototype.get bar):
(foo):
(bar):
* microbenchmarks/poly-proto-put-transition-speed.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(performSet):
* microbenchmarks/poly-proto-setter-speed.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo.C.prototype.set p):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(performSet):
* stress/constructor-with-return.js:
(i.tests.forEach.Constructor):
(i.tests.forEach):
(tests.forEach.Constructor): Deleted.
(tests.forEach): Deleted.
* stress/dom-jit-with-poly-proto.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(validate):
* stress/poly-proto-custom-value-and-accessor.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(items.forEach):
(set get for):
* stress/poly-proto-intrinsic-getter-correctness.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(foo):
* stress/poly-proto-miss.js: Added.
(makePolyProtoInstanceWithNullPrototype.foo.C):
(makePolyProtoInstanceWithNullPrototype.foo):
(makePolyProtoInstanceWithNullPrototype):
(assert):
(validate):
* stress/poly-proto-op-in-caching.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(validate):
(validate2):
* stress/poly-proto-put-transition.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(performSet):
(i.obj.__proto__.set p):
* stress/poly-proto-set-prototype.js: Added.
(assert):
(let.alternateProto.get x):
(let.alternateProto2.get y):
(let.alternateProto2.get x):
(foo.C):
(foo):
(validate):
* stress/poly-proto-setter.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo.C.prototype.set p):
(makePolyProtoObject.foo.C.prototype.get p):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(performSet):
* stress/poly-proto-using-inheritance.js: Added.
(assert):
(foo.C):
(foo.C.prototype.get baz):
(foo):
(bar.C):
(bar):
(validate):
* stress/primitive-poly-proto.js: Added.
(makePolyProtoInstance.foo.C):
(makePolyProtoInstance.foo):
(makePolyProtoInstance):
(assert):
(validate):
* stress/prototype-is-not-js-object.js: Added.
(foo.bar):
(foo):
(assert):
(validate):
* stress/try-get-by-id-poly-proto.js: Added.
(assert):
(makePolyProtoObject.foo.C):
(makePolyProtoObject.foo):
(makePolyProtoObject):
(tryGetByIdText):
(x.__proto__.get bar):
(validate):
* typeProfiler/overflow.js:
2017-10-03 JF Bastien <jfbastien@apple.com>
WebAssembly: no VM / JS version of everything but Instance
https://bugs.webkit.org/show_bug.cgi?id=177473
Reviewed by Filip Pizlo.
- Exceeding max on memory growth now returns a range error as per
spec. This is a (very minor) breaking change: it used to throw OOM
error. Update the corresponding test.
* wasm/js-api/memory-grow.js:
(assertEq):
* wasm/js-api/table.js:
(assert.throws):
2017-10-03 Ryan Haddad <ryanhaddad@apple.com>
Skip JSC test stress/regress-159779-2.js on debug.
https://bugs.webkit.org/show_bug.cgi?id=177204
Unreviewed test gardening.
* stress/regress-159779-2.js:
2017-10-02 Caio Lima <ticaiolima@gmail.com>
ChakraCore/test/Function/apply3.js is resulting wrong result in x86_64
https://bugs.webkit.org/show_bug.cgi?id=175642
Reviewed by Darin Adler.
* ChakraCore/test/Function/apply3.baseline-jsc:
2017-10-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r222564.
https://bugs.webkit.org/show_bug.cgi?id=177720
"It regressed JetStream by 2% on iOS caused by a 50%
regression on the bigfib subtest" (Requested by saamyjoon on
#webkit).
Reverted changeset:
"Add Above/Below comparisons for UInt32 patterns"
https://bugs.webkit.org/show_bug.cgi?id=177281
http://trac.webkit.org/changeset/222564
2017-09-29 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Support ArrayPush with multiple args
https://bugs.webkit.org/show_bug.cgi?id=175823
Reviewed by Saam Barati.
* microbenchmarks/array-push-0.js: Added.
(arrayPush0):
* microbenchmarks/array-push-1.js: Added.
(arrayPush1):
* microbenchmarks/array-push-2.js: Added.
(arrayPush2):
* microbenchmarks/array-push-3.js: Added.
(arrayPush3):
* stress/array-push-multiple-contiguous.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-double-nan.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-double.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-contiguous.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-double.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-storage.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-storage.js: Added.
(shouldBe):
(test):
* stress/array-push-with-force-exit.js: Added.
(target.createBuiltin):
2017-09-29 Saam Barati <sbarati@apple.com>
Custom GetterSetterAccessCase does not use the correct slotBase when making call
https://bugs.webkit.org/show_bug.cgi?id=177639
Reviewed by Geoffrey Garen.
* stress/custom-get-set-inline-caching-one-level-up-proto-chain.js: Added.
(assert):
(Class):
(items.forEach):
(set get for):
2017-09-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r222563, r222565, and r222581.
https://bugs.webkit.org/show_bug.cgi?id=177675
"It causes a crash when playing youtube videos" (Requested by
saamyjoon on #webkit).
Reverted changesets:
"[DFG] Support ArrayPush with multiple args"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222563
"Unreviewed, build fix after r222563"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222565
"Unreviewed, fix x86 breaking due to exhausted registers"
https://bugs.webkit.org/show_bug.cgi?id=175823
http://trac.webkit.org/changeset/222581
2017-09-28 Mark Lam <mark.lam@apple.com>
test262: Unexpected passes after r222617 and r222618.
https://bugs.webkit.org/show_bug.cgi?id=177622
<rdar://problem/34725960>
Reviewed by Saam Barati.
Update test262.yaml for tests that are now passing.
* test262.yaml:
2017-09-27 Michael Saboff <msaboff@apple.com>
REGRESSION(210837): RegExp containing failed non-zero minimum greedy groups incorrectly match
https://bugs.webkit.org/show_bug.cgi?id=177570
Reviewed by Filip Pizlo.
New regression test.
* stress/regress-177570.js: Added.
2017-09-28 Michael Saboff <msaboff@apple.com>
Heap out of bounds read in JSC::Yarr::Parser<JSC::Yarr::SyntaxChecker, unsigned char>::peek()
https://bugs.webkit.org/show_bug.cgi?id=177423
Reviewed by Mark Lam.
Updated regression test.
* stress/regress-177423.js:
(catch):
2017-09-27 Mark Lam <mark.lam@apple.com>
JSArray::canFastCopy() should fail if the source and destination arrays are the same.
https://bugs.webkit.org/show_bug.cgi?id=177584
<rdar://problem/34463903>
Reviewed by Saam Barati.
* stress/regress-177584.js: Added.
(assertEqual):
(Array.prototype.Symbol.species):
2017-09-27 Saam Barati <sbarati@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=177523
Reviewed by Mark Lam.
* stress/prototype-chain-has-dictionary-structure-for-in-caching.js: Added.
(assert):
(Test):
(addMethods.Test.prototype.string_appeared_here.i.methodNumber):
(addMethods):
(i.Test.prototype.propName):
2017-09-27 Mark Lam <mark.lam@apple.com>
Yarr::Parser::tryConsumeGroupName() should check for the end of the pattern.
https://bugs.webkit.org/show_bug.cgi?id=177423
<rdar://problem/34621320>
Reviewed by Keith Miller.
* stress/regress-177423.js: Added.
2017-09-27 Yusuke Suzuki <utatane.tea@gmail.com>
Add Above/Below comparisons for UInt32 patterns
https://bugs.webkit.org/show_bug.cgi?id=177281
Reviewed by Saam Barati.
* stress/uint32-comparison-jump.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(notAbove):
(notAboveOrEqual):
(notBelow):
(notBelowOrEqual):
* stress/uint32-comparison.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(aboveTest):
(aboveOrEqualTest):
(belowTest):
(belowOrEqualTest):
2017-09-25 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Support ArrayPush with multiple args
https://bugs.webkit.org/show_bug.cgi?id=175823
Reviewed by Saam Barati.
* microbenchmarks/array-push-0.js: Added.
(arrayPush0):
* microbenchmarks/array-push-1.js: Added.
(arrayPush1):
* microbenchmarks/array-push-2.js: Added.
(arrayPush2):
* microbenchmarks/array-push-3.js: Added.
(arrayPush3):
* stress/array-push-multiple-contiguous.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-double-nan.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-double.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-contiguous.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-double.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-int32.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-many-storage.js: Added.
(shouldBe):
(test):
* stress/array-push-multiple-storage.js: Added.
(shouldBe):
(test):
2017-09-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r222518.
https://bugs.webkit.org/show_bug.cgi?id=177507
Break the High Sierra build (Requested by yusukesuzuki on
#webkit).
Reverted changeset:
"Add Above/Below comparisons for UInt32 patterns"
https://bugs.webkit.org/show_bug.cgi?id=177281
http://trac.webkit.org/changeset/222518
2017-09-26 Yusuke Suzuki <utatane.tea@gmail.com>
Add Above/Below comparisons for UInt32 patterns
https://bugs.webkit.org/show_bug.cgi?id=177281
Reviewed by Saam Barati.
* stress/uint32-comparison-jump.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(notAbove):
(notAboveOrEqual):
(notBelow):
(notBelowOrEqual):
* stress/uint32-comparison.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(aboveTest):
(aboveOrEqualTest):
(belowTest):
(belowOrEqualTest):
2017-09-23 Keith Miller <keith_miller@apple.com>
Fix infinite looping test262 test
https://bugs.webkit.org/show_bug.cgi?id=177412
Reviewed by Yusuke Suzuki.
This test was poorly designed since failing it would cause the vm
to inifinite loop. I've fixed it locally and will fix it on github pending
the results of next weeks tc39 meeting.
* test262.yaml:
* test262/test/language/statements/for-of/iterator-next-reference.js:
2017-09-23 Joseph Pecoraro <pecoraro@apple.com>
test262: $.agent became $262.agent in test262 update
https://bugs.webkit.org/show_bug.cgi?id=177407
Reviewed by Yusuke Suzuki.
* test262.yaml:
~320 tests pass now that we correctly make $262 available.
2017-09-22 Keith Miller <keith_miller@apple.com>
Speculatively change iteration protocall to use the same next function
https://bugs.webkit.org/show_bug.cgi?id=175653
Reviewed by Saam Barati.
Change test to match the new iteration behavior.
* stress/spread-optimized-properly.js:
2017-09-22 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Profile array vector length for array allocation
https://bugs.webkit.org/show_bug.cgi?id=177051
Reviewed by Saam Barati.
* microbenchmarks/new-array-buffer-vector-profile.js: Added.
(target):
2017-09-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r222380.
https://bugs.webkit.org/show_bug.cgi?id=177352
Octane/box2d shows 8% regression (Requested by yusukesuzuki on
#webkit).
Reverted changeset:
"[DFG][FTL] Profile array vector length for array allocation"
https://bugs.webkit.org/show_bug.cgi?id=177051
http://trac.webkit.org/changeset/222380
2017-09-21 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Profile array vector length for array allocation
https://bugs.webkit.org/show_bug.cgi?id=177051
Reviewed by Saam Barati.
* microbenchmarks/new-array-buffer-vector-profile.js: Added.
(target):
2017-09-21 Joseph Pecoraro <pecoraro@apple.com>
Skip new hanging test262 tests.
https://bugs.webkit.org/show_bug.cgi?id=177326
Unreviewed test gardening.
* test262.yaml:
2017-09-21 Ryan Haddad <ryanhaddad@apple.com>
Mark 6 test262 tests as passing.
https://bugs.webkit.org/show_bug.cgi?id=177307
Unreviewed test gardening.
* test262.yaml:
2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed follow-up to r222311.
* test262/harness/sta.js:
* test262/test/built-ins/Array/from/calling-from-valid-1-noStrict.js:
* test262/test/built-ins/Array/from/calling-from-valid-1-onlyStrict.js:
* test262/test/built-ins/Array/from/calling-from-valid-2.js:
* test262/test/built-ins/Array/from/elements-added-after.js:
* test262/test/built-ins/Array/from/elements-deleted-after.js:
* test262/test/built-ins/Array/from/elements-updated-after.js:
* test262/test/built-ins/Array/from/from-array.js:
* test262/test/built-ins/Array/from/mapfn-is-not-callable-typeerror.js:
* test262/test/built-ins/Array/from/mapfn-throws-exception.js:
* test262/test/built-ins/Array/from/source-array-boundary.js:
* test262/test/built-ins/Array/from/source-object-constructor.js:
* test262/test/built-ins/Array/from/source-object-iterator-1.js:
* test262/test/built-ins/Array/from/source-object-iterator-2.js:
* test262/test/built-ins/Array/from/source-object-length.js:
* test262/test/built-ins/Array/from/source-object-missing.js:
* test262/test/built-ins/Array/from/source-object-without.js:
* test262/test/built-ins/Array/from/this-null.js:
* test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
* test262/test/language/line-terminators/S7.3_A3.2_T1.js:
* test262/test/language/literals/numeric/7.8.3-1gs.js:
* test262/test/language/literals/numeric/7.8.3-2gs.js:
* test262/test/language/literals/numeric/7.8.3-3gs.js:
* test262/test/language/literals/regexp/7.8.5-1gs.js:
* test262/test/language/literals/string/7.8.4-1gs.js:
Fix some files that I failed to update when I applied my patch.
2017-09-20 Joseph Pecoraro <pecoraro@apple.com>
Update test262 tests
https://bugs.webkit.org/show_bug.cgi?id=177220
Reviewed by Saam Barati and Yusuke Suzuki.
* test262.yaml:
* test262/test262-Revision.txt:
New rebaselined expectations for all tests.
* test262/*:
Updated.
2017-09-17 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Remove ToThis more aggressively
https://bugs.webkit.org/show_bug.cgi?id=177056
Reviewed by Saam Barati.
* stress/generator-with-this-strict.js: Added.
(shouldBe):
(generator):
(target):
* stress/generator-with-this.js: Added.
(shouldBe):
(generator):
(target):
2017-09-17 Michael Saboff <msaboff@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=177038
Add an option to run-jsc-stress-tests to limit tests variations to a basic set
Reviewed by JF Bastien.
* stress/unshiftCountSlowCase-correct-postCapacity.js: Disabled this test on ARM64 iOS devices
as it dies using too much memory.
2017-09-15 Saam Barati <sbarati@apple.com>
Arity fixup during inlining should do a 2 phase commit so it properly recovers the frame in case of exit
https://bugs.webkit.org/show_bug.cgi?id=176981
Reviewed by Yusuke Suzuki.
* stress/exit-during-inlined-arity-fixup-recover-proper-frame.js: Added.
(assert):
(verify):
(func):
(const.bar.createBuiltin):
2017-09-14 Saam Barati <sbarati@apple.com>
It should be valid to exit before each set when doing arity fixup when inlining
https://bugs.webkit.org/show_bug.cgi?id=176948
Reviewed by Keith Miller.
* stress/arity-fixup-inlining-dont-generate-invalid-use.js: Added.
(baz):
(bar):
(foo):
2017-09-14 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add PrivateSymbolMode::{Include,Exclude} for PropertyNameArray
https://bugs.webkit.org/show_bug.cgi?id=176867
Reviewed by Sam Weinig.
* microbenchmarks/object-get-own-property-symbols.js: Added.
(test):
2017-09-13 Mark Lam <mark.lam@apple.com>
Rolling out r221832: Regresses Speedometer by ~4% and Dromaeo CSS YUI by ~20%.
https://bugs.webkit.org/show_bug.cgi?id=176888
<rdar://problem/34381832>
Not reviewed.
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
2017-09-13 Ryan Haddad <ryanhaddad@apple.com>
Skip 3 op_mod tests on Debug JSC bots.
https://bugs.webkit.org/show_bug.cgi?id=176630
Unreviewed test gardening.
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
2017-09-13 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Fix Array allocation in Object.keys
https://bugs.webkit.org/show_bug.cgi?id=176826
Reviewed by Saam Barati.
* stress/object-own-property-keys.js: Added.
(shouldBe):
2017-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Optimize WeakMap::get by adding intrinsic and fixup
https://bugs.webkit.org/show_bug.cgi?id=176010
Reviewed by Filip Pizlo.
* microbenchmarks/weak-map-key.js: Added.
(assert):
(objectKey):
(let.start.Date.now):
2017-09-12 Mark Lam <mark.lam@apple.com>
REGRESSION: 3 stress/op_mod (and op_div) tests timing out on Debug JSC bots.
https://bugs.webkit.org/show_bug.cgi?id=176630
Reviewed by JF Bastien.
Debug builds are just slow, and these tests do a lot. They pass when I run them
locally on my MacBook Pro. So, I'm bumping their timing multiplier to 2.0x as
a speculative fix for the bots that are seeing these fail.
I also undid the skipping of the op_mod tests for debug builds.
* stress/op_div-ConstVar.js:
* stress/op_div-VarConst.js:
* stress/op_div-VarVar.js:
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
2017-09-12 Ryan Haddad <ryanhaddad@apple.com>
Skip stress/value-to-boolean.js on Debug bots.
https://bugs.webkit.org/show_bug.cgi?id=176787
Unreviewed test gardening.
* stress/value-to-boolean.js:
2017-09-11 Mark Lam <mark.lam@apple.com>
Change test expectation for test262/test/language/statements/try/tco-catch.js
https://bugs.webkit.org/show_bug.cgi?id=176749
Rubber stamped by Keith Miller.
It's been failing since at least r221821. I'm changing the test expectation to
fail to green the bots while I investigate some more.
* test262.yaml:
2017-09-11 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r221854.
The test added with this change fails on 32-bit JSC bots.
Reverted changeset:
"[DFG] Optimize WeakMap::get by adding intrinsic and fixup"
https://bugs.webkit.org/show_bug.cgi?id=176010
http://trac.webkit.org/changeset/221854
2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Optimize WeakMap::get by adding intrinsic and fixup
https://bugs.webkit.org/show_bug.cgi?id=176010
Reviewed by Filip Pizlo.
* microbenchmarks/weak-map-key.js: Added.
(assert):
(objectKey):
(let.start.Date.now):
2017-09-09 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Optimize Object.keys by using careful array allocation
https://bugs.webkit.org/show_bug.cgi?id=176654
Reviewed by Darin Adler.
* microbenchmarks/object-keys.js: Added.
(test):
2017-09-09 Filip Pizlo <fpizlo@apple.com>
Error should compute .stack and friends lazily
https://bugs.webkit.org/show_bug.cgi?id=176645
Reviewed by Saam Barati.
* ChakraCore.yaml: Skip test that was testing non-standard behavior of these fields.
* microbenchmarks/new-error.js: Added.
* microbenchmarks/throw.js: Added.
2017-09-09 Mark Lam <mark.lam@apple.com>
[Re-landing] Use JIT probes for DFG OSR exit.
https://bugs.webkit.org/show_bug.cgi?id=175144
<rdar://problem/33437050>
Not reviewed. Original patch reviewed by Saam Barati.
Disable these tests for debug builds because they run too slow with the new OSR exit.
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] NewArrayWithSize(size)'s size does not care negative zero
https://bugs.webkit.org/show_bug.cgi?id=176300
Reviewed by Saam Barati.
* stress/new-array-with-size-div.js: Added.
(shouldBe):
(test):
(i.i):
2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] PutByVal with Array::Generic is too generic
https://bugs.webkit.org/show_bug.cgi?id=176345
Reviewed by Filip Pizlo.
* stress/object-assign-symbols.js: Added.
(shouldBe):
(test):
* stress/object-assign.js: Added.
(shouldBe):
(test):
(i.shouldBe.JSON.stringify.test):
2017-09-08 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] GetByVal(ObjectUse with Array::Generic, StringUse/SymbolUse) should be supported
https://bugs.webkit.org/show_bug.cgi?id=176590
Reviewed by Saam Barati.
* microbenchmarks/object-iterate-symbols.js: Added.
(test):
* microbenchmarks/object-iterate.js: Added.
(test):
* stress/object-iterate-symbols.js: Added.
(shouldBe):
(test):
* stress/object-iterate.js: Added.
(shouldBe):
(test):
2017-09-07 Per Arne Vollan <pvollan@apple.com>
[Win32] 10 JSC stress tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=176538
Reviewed by Mark Lam.
Skip tests on Windows to make the bots green.
* ChakraCore.yaml:
* stress/date-relaxed.js:
2017-09-06 Mark Lam <mark.lam@apple.com>
constructGenericTypedArrayViewWithArguments() is missing an exception check.
https://bugs.webkit.org/show_bug.cgi?id=176485
<rdar://problem/33898874>
Reviewed by Keith Miller.
* stress/regress-176485.js: Added.
2017-09-05 Saam Barati <sbarati@apple.com>
isNotCellSpeculation is wrong with respect to SpecEmpty
https://bugs.webkit.org/show_bug.cgi?id=176429
Reviewed by Michael Saboff.
* microbenchmarks/is-not-cell-speculation-for-empty-value.js: Added.
(Foo):
2017-09-05 Joseph Pecoraro <pecoraro@apple.com>
test262: Completion values for control flow do not match the spec
https://bugs.webkit.org/show_bug.cgi?id=171265
Reviewed by Saam Barati.
* stress/completion-value.js:
Condensed test for completion values in top level statements.
* stress/super-get-by-id.js:
ClassDeclaration when evaled no longer produce values. Convert
these to ClassExpressions so they produce the class value.
* ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
This is a progression for currect spec behavior.
* mozilla/mozilla-tests.yaml:
This test is now outdated, so mark it as failing for that reason.
* test262.yaml:
Passing all "cptn" completion value tests.
2017-09-04 Saam Barati <sbarati@apple.com>
typeCheckHoistingPhase may emit a CheckStructure on the empty value which leads to a dereference of zero on 64 bit platforms
https://bugs.webkit.org/show_bug.cgi?id=176317
Reviewed by Keith Miller.
* stress/dont-crash-when-hoist-check-structure-on-tdz.js: Added.
(Foo):
2017-09-03 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Efficiently execute number#toString()
https://bugs.webkit.org/show_bug.cgi?id=170007
Reviewed by Keith Miller.
* microbenchmarks/number-to-string-strength-reduction.js: Added.
(test):
* microbenchmarks/number-to-string-with-radix-10.js: Added.
(test):
* microbenchmarks/number-to-string-with-radix-cse.js: Added.
(test):
* microbenchmarks/number-to-string-with-radix.js: Added.
(test):
* stress/number-to-string-strength-reduction.js: Added.
(shouldBe):
(test):
* stress/number-to-string-with-radix-10.js: Added.
(shouldBe):
(test):
* stress/number-to-string-with-radix-cse.js: Added.
(shouldBe):
(test):
* stress/number-to-string-with-radix-invalid.js: Added.
(shouldThrow):
* stress/number-to-string-with-radix-watchpoint.js: Added.
(shouldBe):
(test):
(i.i.1e3.Number.prototype.toString):
* stress/number-to-string-with-radix.js: Added.
(shouldBe):
(test):
2017-09-02 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Relax arity requirement
https://bugs.webkit.org/show_bug.cgi?id=175523
Reviewed by Saam Barati.
* stress/arity-mismatch-arguments-length.js: Added.
(shouldBe):
(test1):
(test):
* stress/arity-mismatch-get-argument.js: Added.
(shouldBe):
(builtin.createBuiltin):
(test):
* stress/arity-mismatch-inlining-extra-slots.js: Added.
(shouldBe):
(inlineTarget):
(test):
* stress/arity-mismatch-inlining.js: Added.
(shouldBe):
(inlineTarget):
(test):
* stress/arity-mismatch-rest.js: Added.
(shouldBe):
(test2):
(test1):
(test):
2017-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Fix "name" and "length" of Proxy revoke function
https://bugs.webkit.org/show_bug.cgi?id=176155
Reviewed by Mark Lam.
* test262.yaml:
2017-08-31 Saam Barati <sbarati@apple.com>
Graph::methodOfGettingAValueProfileFor compares NodeOrigin instead of the semantic CodeOrigin
https://bugs.webkit.org/show_bug.cgi?id=176206
Reviewed by Keith Miller.
* stress/compare-semantic-origin-op-negate-method-of-getting-a-value-profile.js: Added.
(a):
(b):
(foo):
2017-08-31 Ryan Haddad <ryanhaddad@apple.com>
Skip two slow JSC tests after r221422.
Unreviewed test gardening.
* stress/regexp-prototype-match-on-too-long-rope.js:
* stress/regexp-prototype-test-on-too-long-rope.js:
2017-08-31 Filip Pizlo <fpizlo@apple.com>
Unreviewed, skipping slow tests.
These tests are now timing out. They would have always been slow. The timeouts are probably because OOMs
work differently now.
* stress/regexp-prototype-exec-on-too-long-rope.js:
* stress/string-prototype-charCodeAt-on-too-long-rope.js:
2017-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use reifying system for "name" property of builtin JSFunction
https://bugs.webkit.org/show_bug.cgi?id=175260
Reviewed by Saam Barati.
* stress/accessors-get-set-prefix.js:
* stress/builtin-function-name.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
* stress/private-name-as-anonymous-builtin.js: Added.
(shouldBe):
(NotPromise):
2017-08-30 Saam Barati <sbarati@apple.com>
Unreviewed. Make test stop printing.
* microbenchmarks/fake-iterators-that-throw-when-finished.js:
2017-08-30 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r221327.
This change caused test262 failures.
Reverted changeset:
"[JSC] Use reifying system for "name" property of builtin
JSFunction"
https://bugs.webkit.org/show_bug.cgi?id=175260
http://trac.webkit.org/changeset/221327
2017-08-30 Saam Barati <sbarati@apple.com>
semicolon is being interpreted as an = in the LiteralParser
https://bugs.webkit.org/show_bug.cgi?id=176114
Reviewed by Oliver Hunt.
* stress/jsonp-literal-parser-semicolon-is-not-assignment.js: Added.
* stress/resources/literal-parser-test-case.js: Added.
2017-08-30 Oleksandr Skachkov <gskachkov@gmail.com>
[ESNext] Async iteration - Implement async iteration statement: for-await-of
https://bugs.webkit.org/show_bug.cgi?id=166698
Reviewed by Yusuke Suzuki.
* stress/async-iteration-for-await-of-syntax.js: Added.
(assert):
(checkSyntax):
(checkSyntaxError):
(checkSimpleAsyncGeneratorSloppyMode):
(checkSimpleAsyncGeneratorStrictMode):
(checkNestedAsyncGenerators):
(checkSimpleAsyncGeneratorSyntaxErrorInStrictMode):
* stress/async-iteration-for-await-of.js: Added.
(assert):
(async.foo):
(async.boo):
(const.boo.async):
2017-08-29 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use reifying system for "name" property of builtin JSFunction
https://bugs.webkit.org/show_bug.cgi?id=175260
Reviewed by Saam Barati.
* stress/accessors-get-set-prefix.js:
* stress/builtin-function-name.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
2017-08-25 Saam Barati <sbarati@apple.com>
Support compiling catch in the DFG
https://bugs.webkit.org/show_bug.cgi?id=174590
<rdar://problem/34047845>
Reviewed by Filip Pizlo.
* microbenchmarks/delta-blue-try-catch.js: Added.
(exception):
(value):
(OrderedCollection):
(OrderedCollection.prototype.add):
(OrderedCollection.prototype.at):
(OrderedCollection.prototype.size):
(OrderedCollection.prototype.removeFirst):
(OrderedCollection.prototype.remove):
(Strength):
(Strength.stronger):
(Strength.weaker):
(Strength.weakestOf):
(Strength.strongest):
(Strength.prototype.nextWeaker):
(Constraint):
(Constraint.prototype.addConstraint):
(Constraint.prototype.satisfy):
(Constraint.prototype.destroyConstraint):
(Constraint.prototype.isInput):
(UnaryConstraint):
(UnaryConstraint.prototype.addToGraph):
(UnaryConstraint.prototype.chooseMethod):
(UnaryConstraint.prototype.isSatisfied):
(UnaryConstraint.prototype.markInputs):
(UnaryConstraint.prototype.output):
(UnaryConstraint.prototype.recalculate):
(UnaryConstraint.prototype.markUnsatisfied):
(UnaryConstraint.prototype.inputsKnown):
(UnaryConstraint.prototype.removeFromGraph):
(StayConstraint):
(StayConstraint.prototype.execute):
(EditConstraint.prototype.isInput):
(EditConstraint.prototype.execute):
(BinaryConstraint):
(BinaryConstraint.prototype.chooseMethod):
(BinaryConstraint.prototype.addToGraph):
(BinaryConstraint.prototype.isSatisfied):
(BinaryConstraint.prototype.markInputs):
(BinaryConstraint.prototype.input):
(BinaryConstraint.prototype.output):
(BinaryConstraint.prototype.recalculate):
(BinaryConstraint.prototype.markUnsatisfied):
(BinaryConstraint.prototype.inputsKnown):
(BinaryConstraint.prototype.removeFromGraph):
(ScaleConstraint):
(ScaleConstraint.prototype.addToGraph):
(ScaleConstraint.prototype.removeFromGraph):
(ScaleConstraint.prototype.markInputs):
(ScaleConstraint.prototype.execute):
(ScaleConstraint.prototype.recalculate):
(EqualityConstraint):
(EqualityConstraint.prototype.execute):
(Variable):
(Variable.prototype.addConstraint):
(Variable.prototype.removeConstraint):
(Planner):
(Planner.prototype.incrementalAdd):
(Planner.prototype.incrementalRemove):
(Planner.prototype.newMark):
(Planner.prototype.makePlan):
(Planner.prototype.extractPlanFromConstraints):
(Planner.prototype.addPropagate):
(Planner.prototype.removePropagateFrom):
(Planner.prototype.addConstraintsConsumingTo):
(Plan):
(Plan.prototype.addConstraint):
(Plan.prototype.size):
(Plan.prototype.constraintAt):
(Plan.prototype.execute):
(chainTest):
(projectionTest):
(change):
(deltaBlue):
* microbenchmarks/fake-iterators-that-throw-when-finished.js: Added.
(assert):
(Numbers):
(Numbers.prototype.next):
(return.Transpose):
(return.Transpose.prototype.next):
(transpose):
(verifyEven):
(verifyString):
(foo):
(runIterators):
* microbenchmarks/try-catch-word-count.js: Added.
(let.assert):
(EOF):
(let.texts):
(let.o.apply):
(foo):
(bar):
(f):
(run):
(test1):
(test2):
(test3):
(fn):
(A):
(B):
(A.prototype.getValue):
(B.prototype.getParentValue):
(strlen):
(sum.0):
(test):
(result.test.o):
(set add.set add):
(set forEach):
(stringHash):
(set if):
(testFunction):
(set delete.set has.set add):
* stress/catch-set-argument-speculation-failure.js: Added.
(o):
(e):
(e2):
(escape):
(baz):
(noInline.run):
(noInline):
* stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added.
(foo):
(e):
(baz):
(bar):
2017-08-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r221119, r221124, and r221143.
https://bugs.webkit.org/show_bug.cgi?id=175973
"I think it regressed JSBench by 20%" (Requested by saamyjoon
on #webkit).
Reverted changesets:
"Support compiling catch in the DFG"
https://bugs.webkit.org/show_bug.cgi?id=174590
http://trac.webkit.org/changeset/221119
"Unreviewed, build fix in GTK port"
https://bugs.webkit.org/show_bug.cgi?id=174590
http://trac.webkit.org/changeset/221124
"DFG::JITCode::osrEntry should get sorted since we perform a
binary search on it"
https://bugs.webkit.org/show_bug.cgi?id=175893
http://trac.webkit.org/changeset/221143
2017-08-24 Michael Saboff <msaboff@apple.com>
Add support for RegExp "dotAll" flag
https://bugs.webkit.org/show_bug.cgi?id=175924
Reviewed by Keith Miller.
Updated tests for new dotAll ('s' flag) changes.
* es6/Proxy_internal_get_calls_RegExp.prototype.flags.js:
* stress/static-getter-in-names.js:
2017-08-24 Mark Lam <mark.lam@apple.com>
Land regression test for https://bugs.webkit.org/show_bug.cgi?id=164081.
https://bugs.webkit.org/show_bug.cgi?id=175940
<rdar://problem/29003921>
Reviewed by Saam Barati.
* stress/regress-164081.js: Added.
(shouldEqual):
(testcase):
2017-08-24 Ryan Haddad <ryanhaddad@apple.com>
Skip flaky JSC test stress/test-finally.js.
https://bugs.webkit.org/show_bug.cgi?id=160283
Unreviewed test gardening.
* stress/test-finally.js:
2017-08-23 Saam Barati <sbarati@apple.com>
Support compiling catch in the DFG
https://bugs.webkit.org/show_bug.cgi?id=174590
Reviewed by Filip Pizlo.
* microbenchmarks/delta-blue-try-catch.js: Added.
(exception):
(value):
(OrderedCollection):
(OrderedCollection.prototype.add):
(OrderedCollection.prototype.at):
(OrderedCollection.prototype.size):
(OrderedCollection.prototype.removeFirst):
(OrderedCollection.prototype.remove):
(Strength):
(Strength.stronger):
(Strength.weaker):
(Strength.weakestOf):
(Strength.strongest):
(Strength.prototype.nextWeaker):
(Constraint):
(Constraint.prototype.addConstraint):
(Constraint.prototype.satisfy):
(Constraint.prototype.destroyConstraint):
(Constraint.prototype.isInput):
(UnaryConstraint):
(UnaryConstraint.prototype.addToGraph):
(UnaryConstraint.prototype.chooseMethod):
(UnaryConstraint.prototype.isSatisfied):
(UnaryConstraint.prototype.markInputs):
(UnaryConstraint.prototype.output):
(UnaryConstraint.prototype.recalculate):
(UnaryConstraint.prototype.markUnsatisfied):
(UnaryConstraint.prototype.inputsKnown):
(UnaryConstraint.prototype.removeFromGraph):
(StayConstraint):
(StayConstraint.prototype.execute):
(EditConstraint.prototype.isInput):
(EditConstraint.prototype.execute):
(BinaryConstraint):
(BinaryConstraint.prototype.chooseMethod):
(BinaryConstraint.prototype.addToGraph):
(BinaryConstraint.prototype.isSatisfied):
(BinaryConstraint.prototype.markInputs):
(BinaryConstraint.prototype.input):
(BinaryConstraint.prototype.output):
(BinaryConstraint.prototype.recalculate):
(BinaryConstraint.prototype.markUnsatisfied):
(BinaryConstraint.prototype.inputsKnown):
(BinaryConstraint.prototype.removeFromGraph):
(ScaleConstraint):
(ScaleConstraint.prototype.addToGraph):
(ScaleConstraint.prototype.removeFromGraph):
(ScaleConstraint.prototype.markInputs):
(ScaleConstraint.prototype.execute):
(ScaleConstraint.prototype.recalculate):
(EqualityConstraint):
(EqualityConstraint.prototype.execute):
(Variable):
(Variable.prototype.addConstraint):
(Variable.prototype.removeConstraint):
(Planner):
(Planner.prototype.incrementalAdd):
(Planner.prototype.incrementalRemove):
(Planner.prototype.newMark):
(Planner.prototype.makePlan):
(Planner.prototype.extractPlanFromConstraints):
(Planner.prototype.addPropagate):
(Planner.prototype.removePropagateFrom):
(Planner.prototype.addConstraintsConsumingTo):
(Plan):
(Plan.prototype.addConstraint):
(Plan.prototype.size):
(Plan.prototype.constraintAt):
(Plan.prototype.execute):
(chainTest):
(projectionTest):
(change):
(deltaBlue):
* microbenchmarks/fake-iterators-that-throw-when-finished.js: Added.
(assert):
(Numbers):
(Numbers.prototype.next):
(return.Transpose):
(return.Transpose.prototype.next):
(transpose):
(verifyEven):
(verifyString):
(foo):
(runIterators):
* microbenchmarks/try-catch-word-count.js: Added.
(let.assert):
(EOF):
(let.texts):
(let.o.apply):
(foo):
(bar):
(f):
(run):
(test1):
(test2):
(test3):
(fn):
(A):
(B):
(A.prototype.getValue):
(B.prototype.getParentValue):
(strlen):
(sum.0):
(test):
(result.test.o):
(set add.set add):
(set forEach):
(stringHash):
(set if):
(testFunction):
(set delete.set has.set add):
* stress/catch-set-argument-speculation-failure.js: Added.
(o):
(e):
(e2):
(escape):
(baz):
(noInline.run):
(noInline):
* stress/osr-enter-to-catch-with-set-local-type-check-failure.js: Added.
(foo):
(e):
(baz):
(bar):
2017-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Optimize Map iteration with intrinsic
https://bugs.webkit.org/show_bug.cgi?id=174355
Reviewed by Saam Barati.
* stress/map-iterator-result-should-have-expected-shape.js: Added.
(shouldBe):
(throw.new.Error):
* stress/set-iterator-result-should-have-expected-shape.js: Added.
(shouldBe):
(throw.new.Error.let.iterator.set Symbol):
(throw.new.Error.set add):
(let.iterator.set Symbol):
2017-08-23 Robin Morisset <rmorisset@apple.com>
Add a micro-benchmark for checking that accessing a variable within a 'with'
block does not automatically prevent type prediction.
https://bugs.webkit.org/show_bug.cgi?id=175738
Reviewed by Saam Barati.
* stress/with_and_arith.js: Added.
(with):
2017-08-23 Skachkov Oleksandr <gskachkov@gmail.com>
[ESNext] Async iteration - Implement Async Generator - runtime
https://bugs.webkit.org/show_bug.cgi?id=175240
Reviewed by Yusuke Suzuki.
* stress/async-iteration-async-from-sync.js: Added.
(assert):
(const.Logger):
(this.fullfilled):
(this.fullfilledDone):
(this.rejected):
(this.catched):
(this.isFinal):
(_assertLogger):
(const.assertLogger):
(const.getPromise.promiseHolder.return.new.Promise):
(foo):
(async.boo):
(bar):
(async.baz):
(async.goo):
* stress/async-iteration-basic.js: Added.
(assert):
(const.Logger):
(this.fullfilled):
(this.fullfilledDone):
(this.rejected):
(this.catched):
(this.isFinal):
(_assertLogger):
(const.assertLogger):
(const.getPromise.promiseHolder.return.new.Promise):
(async.generator):
(iterator.next.then):
(async.baz):
(async.boo):
(async.foo):
(async.goo):
(A.prototype.async.foo):
(A.prototype.async.boo):
(A):
(asyncGenExp.async):
(async.joo):
(j.next.then):
(then):
(async.koo):
(async.loo):
(async.moo):
(async.noo):
(async.ooo):
(async.roo):
(async.poo):
(async.soo):
(async.too):
* stress/async-iteration-evaluation.js: Added.
(assert):
(async.foo):
(catch):
* stress/async-iteration-syntax.js:
* stress/async-iteration-yield-promise.js: Added.
(assert):
(const.Logger):
(this.fullfilled):
(this.fullfilledDone):
(this.rejected):
(this.catched):
(this.isFinal):
(_assertLogger):
(const.assertLogger):
(const.getPromise.promiseHolder.return.new.Promise):
(async.foo):
(async.boo):
(async.bar):
* stress/async-iteration-yield-star-interface.js: Added.
(assert):
(const.getPromise.promiseHolder.return.new.Promise):
(const.Logger):
(this.fullfilled):
(this.fullfilledDone):
(this.rejected):
(this.catched):
(this.custom):
(this.isFinal):
(_assertLogger):
(const.assertLogger):
(let.asyncIter.Symbol.asyncIterator):
(let.asyncIter.next):
(let.asyncIter.throw):
(let.asyncIter.return):
(async.foo):
(asyncIter.Symbol.asyncIterator):
(asyncIter.next):
(async.boo):
(asyncIter.return):
(async.bar):
(async.baz):
(async.foobar):
* stress/async-iteration-yield-star.js: Added.
(assert):
(const.Logger):
(this.fullfilled):
(this.fullfilledDone):
(this.rejected):
(this.catched):
(this.custom):
(this.isFinal):
(_assertLogger):
(const.assertLogger):
(const.getPromise.promiseHolder.return.new.Promise):
(async.foo):
(async.boo):
(async.bar):
(async.baz):
(async.joo):
(async.goo):
(async.koo):
(async.loo):
(let.asyncIter.Symbol.asyncIterator):
(let.asyncIter.next):
(let.asyncIter.throw):
(let.asyncIter.return):
(async.moo):
(async.noo):
* test262.yaml:
2017-08-23 JF Bastien <jfbastien@apple.com>
Fix printing in test
Unreviewed: fixing verbosity, shouldn't have been there.
* wasm/regress/175693.js:
(else.else):
(catch):
2017-08-18 Ryan Haddad <ryanhaddad@apple.com>
Skip flaky JSC test microbenchmarks/generator-with-several-types.js.
https://bugs.webkit.org/show_bug.cgi?id=172543
Unreviewed test gardening.
* microbenchmarks/generator-with-several-types.js:
2017-08-17 JF Bastien <jfbastien@apple.com>
WebAssembly: const in unreachable code decoded incorrectly, erroneously rejects binary as invalid
https://bugs.webkit.org/show_bug.cgi?id=175693
<rdar://problem/33952443>
Reviewed by Saam Barati.
Add a regression directory for WebAssembly tests.
* wasm.yaml:
* wasm/regress/175693.js: Added.
(else.else):
(instance.new.WebAssembly.Instance.new.WebAssembly.Module):
(catch):
* wasm/regress/175693.wasm: Added.
2017-08-15 Robin Morisset <rmorisset@apple.com>
Support the 'with' keyword in FTL.
https://bugs.webkit.org/show_bug.cgi?id=175585
Reviewed by Saam Barati.
Also improve the JSTest/stress/with.js file to test
what happens when non-objects are passed to with.
* stress/with.js:
(foo):
(i.catch):
(i.with): Deleted.
2017-08-14 Keith Miller <keith_miller@apple.com>
Add testing tool to lie to the DFG about profiles
https://bugs.webkit.org/show_bug.cgi?id=175487
Reviewed by Saam Barati.
* stress/compare-eq-incomplete-profile.js: Added.
(const.test.createBuiltin):
2017-08-14 Robin Morisset <rmorisset@apple.com>
Support the with keyword in DFG
https://bugs.webkit.org/show_bug.cgi?id=175470
Reviewed by Saam Barati.
Added a new stress-test for the 'with' keyword, that caught a bug in a
previous version of this code.
* stress/with.js: Added.
(i.with):
2017-08-14 Ryan Haddad <ryanhaddad@apple.com>
Skip flaky JSC test test/fieldopts/objtypespec-newobj-invalidation.1.js
https://bugs.webkit.org/show_bug.cgi?id=175544
Unreviewed test gardening.
* ChakraCore.yaml:
2017-08-09 Caitlin Potter <caitp@igalia.com>
Early error on ANY operator before new.target
https://bugs.webkit.org/show_bug.cgi?id=157970
Reviewed by Saam Barati.
Instead of throwing if any unary operator precedes new.target, only
throw if the unary operator updates the reference.
The following become legal in JSC:
```
!new.target
~new.target
typeof new.target
delete new.target
void new.target
```
All of which are legal in v8 and SpiderMonkey in strict and sloppy mode
* stress/new-target-syntax-errors.js:
* stress/new-target.js:
2017-08-09 Ryan Haddad <ryanhaddad@apple.com>
Skip failing JSC tests stress/regress-169783.js and wasm.yaml/wasm/stress/oom.js.
https://bugs.webkit.org/show_bug.cgi?id=175255
Unreviewed test gardening.
* stress/regress-169783.js:
* wasm/stress/oom.js:
2017-08-09 Oleksandr Skachkov <gskachkov@gmail.com>
REGRESSION: 2 test262/test/language/statements/async-function failures
https://bugs.webkit.org/show_bug.cgi?id=175334
Reviewed by Yusuke Suzuki.
Add @skip parameters to tests, and remove test for async iterator from
async await syntax test because it is already covered by async-iterator-syntax.js
* stress/async-await-syntax.js:
* stress/async-iteration-syntax.js:
2017-08-08 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, gardening test262 for Promise resolve / reject function length
https://bugs.webkit.org/show_bug.cgi?id=175333
* test262.yaml:
2017-08-07 Robin Morisset <rmorisset@apple.com>
GetOwnProperty of TypedArray indexed fields is wrongly configurable
https://bugs.webkit.org/show_bug.cgi?id=175307
Reviewed by Saam Barati.
* stress/typedarray-getownproperty-not-configurable.js: Added.
(assert):
(foo):
2017-08-06 Yusuke Suzuki <utatane.tea@gmail.com>
Promise resolve and reject function should have length = 1
https://bugs.webkit.org/show_bug.cgi?id=175242
Reviewed by Saam Barati.
* stress/builtin-function-length.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.JSON.stringify.Object.getOwnPropertyDescriptor):
(shouldBe.JSON.stringify.Object.getOwnPropertyNames.Array.prototype.filter.sort):
2017-08-06 Oleksandr Skachkov <gskachkov@gmail.com>
[ESNext] Async iteration - Implement Async Generator - parser
https://bugs.webkit.org/show_bug.cgi?id=175210
Reviewed by Yusuke Suzuki.
* stress/async-await-syntax.js:
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
* stress/async-iteration-syntax.js: Added.
(assert):
(checkSyntax):
(checkSyntaxError):
(checkSimpleAsyncGeneratorSloppyMode):
(checkSimpleAsyncGeneratorStrictMode):
(checkNestedAsyncGenerators):
(checkSimpleAsyncGeneratorSyntaxErrorInStrictMode):
* stress/generator-class-methods-syntax.js:
2017-08-03 Carlos Alberto Lopez Perez <clopez@igalia.com>
JSC test wasm/js-api/test_memory_constructor.js should be skipped on memoryLimited
https://bugs.webkit.org/show_bug.cgi?id=175150
Unreviewed test gardening.
* wasm/js-api/test_memory_constructor.js:
2017-08-02 Carlos Alberto Lopez Perez <clopez@igalia.com>
[Linux] JSTests/wasm/stress/oom.js should not run on Linux
https://bugs.webkit.org/show_bug.cgi?id=175100
Reviewed by Mark Lam.
The JSC test JSTests/wasm/stress/oom.js tries to use all the
available memory until an out of memory exception happens.
The Linux kernel is more tuned for server workloads than for GUI
responsiveness. When a process tries to use a lot of memory, Linux
will do its best to serve the request. This usually translates to
free physical RAM by writing to disk dirty pages and/or moving out
less recently used pages to swap (disk storage).
Meanwhile it does this, the system will become unresponsive and this
leads to freezes that can last even some minutes on the worst cases.
Therefore, let's skip this test on Linux as it will cause more harm
than good on the Linux bots or on the machines of Linux developers.
* wasm/stress/oom.js:
2017-08-01 Oleksandr Skachkov <gskachkov@gmail.com>
[JSC] Remove unnecessary print from stress\promise-finally.js test
https://bugs.webkit.org/show_bug.cgi?id=175015
Reviewed by Yusuke Suzuki.
* stress/promise-finally.js:
(p.finally):
(then):
2017-07-31 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, update test262 results for optional catch binding
* test262.yaml:
2017-07-31 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Support optional catch binding
https://bugs.webkit.org/show_bug.cgi?id=174981
Reviewed by Saam Barati.
* stress/optional-catch-binding-syntax.js: Added.
(testSyntax):
(testSyntaxError):
(catch.catch):
* stress/optional-catch-binding.js: Added.
(shouldBe):
(throwException):
2017-07-28 Mark Lam <mark.lam@apple.com>
ObjectToStringAdaptiveStructureWatchpoint should not fire if it's dying imminently.
https://bugs.webkit.org/show_bug.cgi?id=174948
<rdar://problem/33495680>
Reviewed by Filip Pizlo.
* stress/regress-174948.js: Added.
2017-07-28 Yusuke Suzuki <utatane.tea@gmail.com>
ASSERTION FAILED: candidate->op() == PhantomCreateRest || candidate->op() == PhantomDirectArguments || candidate->op() == PhantomClonedArguments || candidate->op() == PhantomSpread || candidate->op() == PhantomNewArrayWithSpread
https://bugs.webkit.org/show_bug.cgi?id=174900
Reviewed by Saam Barati.
* stress/arguments-elimination-candidate-listings-should-respect-pseudo-terminals.js: Added.
(sideEffect):
(args):
(test):
2017-07-27 Yusuke Suzuki <utatane.tea@gmail.com>
Hoist DOM binding attribute getter prologue into JavaScriptCore taking advantage of DOMJIT / CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=171637
Reviewed by Darin Adler.
* stress/domjit-getter-complex-with-incorrect-object.js:
(i.shouldThrow):
* stress/domjit-getter-type-check.js: Copied from JSTests/stress/domjit-getter-complex-with-incorrect-object.js.
(shouldBe):
(i.shouldThrow):
2017-07-26 JF Bastien <jfbastien@apple.com>
WebAssembly: test throwing out of the start function
https://bugs.webkit.org/show_bug.cgi?id=165714
<rdar://problem/29760251>
Reviewed by Keith Miller.
* wasm/assert.js:
* wasm/function-tests/trap-from-start.js: Added.
(StartTraps):
* wasm/function-tests/trap-from-start-async.js: Added.
(async.StartTrapsAsync):
2017-07-21 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Arguments elimination is suppressed by unreachable blocks
https://bugs.webkit.org/show_bug.cgi?id=174352
Reviewed by Filip Pizlo.
* stress/arguments-elimination-force-exit.js: Added.
(shouldBe):
(strict):
(sloppy):
* stress/arguments-elimination-throw.js: Added.
(shouldBe):
(shouldThrow):
(sloppy):
(isArguments):
2017-07-13 Mark Lam <mark.lam@apple.com>
Add some additional test cases for bug 170896.
https://bugs.webkit.org/show_bug.cgi?id=174491
Reviewed by Filip Pizlo.
* stress/regress-170896-with-contiguous-shape-profile.js: Copied from JSTests/stress/regress-170896.js.
* stress/regress-170896-with-double-shape-profile.js: Added.
(test):
* stress/regress-170896-with-int32-shape-profile.js: Added.
(test):
* stress/regress-170896.js: Removed.
2017-07-13 Saam Barati <sbarati@apple.com>
Missing exception check in JSObject::hasInstance
https://bugs.webkit.org/show_bug.cgi?id=174455
<rdar://problem/31384608>
Reviewed by Mark Lam.
* stress/has-instance-exception-check.js: Added.
(assert):
(let.getter.Object.getOwnPropertyDescriptor.get foo):
2017-07-13 Caio Lima <ticaiolima@gmail.com>
[ESnext] Implement Object Spread
https://bugs.webkit.org/show_bug.cgi?id=167963
Reviewed by Saam Barati.
* stress/obj-rest-destructuring-order.js: Added.
(assert):
(o.get z):
(o.get a):
* stress/obj-spread-order.js: Added.
(assert):
(o.get z):
(o.get a):
* stress/object-spread.js: Added.
(let.assert):
(assert.sameValue):
(let.o.get a):
(let.obj.get c):
(cthulhu.get x):
(let.obj.set c):
(calls.o.get z):
(calls.o.get a):
(try.let.obj.get foo):
(get calls):
2017-07-12 Saam Barati <sbarati@apple.com>
GenericArguments consults the wrong state when tracking modified argument descriptors and mapped arguments
https://bugs.webkit.org/show_bug.cgi?id=174411
<rdar://problem/31696186>
Reviewed by Mark Lam.
* stress/generic-arguments-correct-delete-behavior.js: Added.
(assert):
(makeTest):
2017-07-07 Mark Lam <mark.lam@apple.com>
\n\r is not the same as \r\n.
https://bugs.webkit.org/show_bug.cgi?id=173053
Reviewed by Keith Miller.
* stress/regress-173053.js: Added.
* stress/template-literal-line-terminators.js:
2017-07-06 Saam Barati <sbarati@apple.com>
We are missing places where we invalidate the for-in context
https://bugs.webkit.org/show_bug.cgi?id=174184
Reviewed by Geoffrey Garen.
* stress/for-in-invalidate-context-weird-assignments.js: Added.
(assert):
(test):
2017-07-05 Saam Barati <sbarati@apple.com>
NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time
https://bugs.webkit.org/show_bug.cgi?id=174188
<rdar://problem/30581423>
Reviewed by Mark Lam.
* stress/new-array-having-a-bad-time-double.js: Added.
(assert):
(foo):
2017-07-05 Yusuke Suzuki <utatane.tea@gmail.com>
WTF::StringImpl::copyChars segfaults when built with GCC 7
https://bugs.webkit.org/show_bug.cgi?id=173407
Reviewed by Andreas Kling.
* stress/string-repeat-copy-chars-crash.js: Added.
(shouldBe):
2017-07-03 Saam Barati <sbarati@apple.com>
Skip unshiftCountSlowCase-correct-postCapacity.js on debug builds since it takes a long time to run.
* stress/unshiftCountSlowCase-correct-postCapacity.js:
2017-07-03 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, annotate dont--reserve-huge-capacity-lexer.js with $memoryLimited
It requires too much memory.
* stress/dont-reserve-huge-capacity-lexer.js:
2017-06-30 Michael Saboff <msaboff@apple.com>
Skip a test on ARM64 platform since we run out of address space.
Rubber stamped by Saam Barati.
* stress/dont-reserve-huge-capacity-lexer.js:
2017-06-30 Michael Saboff <msaboff@apple.com>
RegExp's anchored with .* with \g flag can return wrong match start for strings with multiple matches
https://bugs.webkit.org/show_bug.cgi?id=174044
Reviewed by Oliver Hunt.
New regression test.
* stress/regress-174044.js: Added.
(test1):
(test2):
2017-06-30 Filip Pizlo <fpizlo@apple.com>
RegExpCachedResult::setInput should reify left and right contexts
https://bugs.webkit.org/show_bug.cgi?id=173818
Reviewed by Keith Miller.
* stress/right-left-context-invalidated-by-input.js: Added.
(test.validateContexts):
(test):
2017-06-29 Saam Barati <sbarati@apple.com>
Calculating postCapacity in unshiftCountSlowCase is wrong
https://bugs.webkit.org/show_bug.cgi?id=173992
<rdar://problem/32283199>
Reviewed by Keith Miller.
* stress/unshiftCountSlowCase-correct-postCapacity.js: Added.
(temp):
2017-06-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r218512.
https://bugs.webkit.org/show_bug.cgi?id=173981
"It changes the behavior of the JS API's JSEvaluateScript
which breaks TurboTax" (Requested by saamyjoon on #webkit).
Reverted changeset:
"test262: Completion values for control flow do not match the
spec"
https://bugs.webkit.org/show_bug.cgi?id=171265
http://trac.webkit.org/changeset/218512
2017-06-27 JF Bastien <jfbastien@apple.com>
WebAssembly: running out of executable memory should throw OoM
https://bugs.webkit.org/show_bug.cgi?id=171537
<rdar://problem/32963338>
Reviewed by Saam Barati.
* wasm.yaml:
* wasm/lowExecutableMemory/executable-memory-oom.js: Added.
(const.invoke):
(failCount.0.catch):
(failCount.0.module.undefined.catch):
* wasm/lowExecutableMemory/exports-oom.js: Added.
(const.type):
(const.params):
(const.randomProgram):
(failCount.0.catch):
(failCount.0.module.undefined.catch):
* wasm/lowExecutableMemory/imports-oom.js: Added.
(const.type):
(const.params):
(const.randomProgram):
(f.imports.push):
(failCount.0.catch):
(failCount.0.module.undefined.catch):
2017-06-27 Caio Lima <ticaiolima@gmail.com>
[ESnext] Implement Object Rest - Implementing Object Rest Destructuring
https://bugs.webkit.org/show_bug.cgi?id=167962
Reviewed by Saam Barati.
* stress/object-rest-deconstruct.js: Added.
(let.assert):
(let.assertPropDescriptor):
(catch):
(get 3):
(foo):
(let.src.get y):
(let.src.set y):
(let.gen):
2017-06-27 Saam Barati <sbarati@apple.com>
Function constructor needs to follow the spec and validate parameters and body independently
https://bugs.webkit.org/show_bug.cgi?id=173303
<rdar://problem/32732526>
Reviewed by Keith Miller.
* ChakraCore/test/Function/FuncBodyES5.baseline-jsc:
* stress/function-constructor-semantics.js: Added.
(assert):
(hasSyntaxError):
(foo):
(async.foo):
(testError):
(testOK.toString):
(toString):
2017-06-26 Saam Barati <sbarati@apple.com>
RegExpPrototype.js builtin uses for-of iteration which is almost certainly incorrect
https://bugs.webkit.org/show_bug.cgi?id=173740
Reviewed by Mark Lam.
* stress/regexp-prototype-replace-builtin-should-not-use-for-of.js: Added.
(Array.prototype.Symbol.iterator):
2017-06-26 Saam Barati <sbarati@apple.com>
Skip a test on 32-bit platforms since we run out of address space.
Rubber stamped by Mark Lam.
* stress/dont-reserve-huge-capacity-lexer.js:
2017-06-26 Saam Barati <sbarati@apple.com>
Crash in JSC::Lexer<unsigned char>::setCode
https://bugs.webkit.org/show_bug.cgi?id=172754
Reviewed by Mark Lam.
* stress/dont-reserve-huge-capacity-lexer.js: Added.
(catch):
2017-06-24 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Clean up Object.entries implementation
https://bugs.webkit.org/show_bug.cgi?id=173759
Reviewed by Sam Weinig.
* microbenchmarks/object-entries.js: Added.
(test):
2017-06-24 Joseph Pecoraro <pecoraro@apple.com>
Remove Reflect.enumerate
https://bugs.webkit.org/show_bug.cgi?id=173806
Reviewed by Yusuke Suzuki.
* ChakraCore.yaml:
* es6.yaml:
These tests now fail because they use Reflect.enumerate.
* test262.yaml:
This test now passes, it checked that Reflect.enumerate is undefined!
* stress/property-name-enumerator-should-not-look-into-indexed-values-when-it-is-a-dictionary.js:
Convert to for..in which presented the original issue. See bug <https://webkit.org/b/149811>
* stress/reflect-enumerate.js: Removed.
Remove a test solely for Reflect.enumerate.
2017-06-22 Saam Barati <sbarati@apple.com>
ValueRep(DoubleRep(@v)) can not simply convert to @v
https://bugs.webkit.org/show_bug.cgi?id=173687
<rdar://problem/32855563>
Reviewed by Mark Lam.
* stress/dont-strength-reduce-valuerep-of-doublerep.js: Added.
(i.catch):
2017-06-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Object.values should be implemented in C++
https://bugs.webkit.org/show_bug.cgi?id=173703
Reviewed by Sam Weinig.
* microbenchmarks/object-keys-map-values.js: Added.
(test):
* microbenchmarks/object-values.js: Added.
(test):
* stress/object-values-changing-properties.js: Added.
(shouldBe):
(throw.new.Error.let.source.get x):
(throw.new.Error):
(shouldBe.let.handler.get order):
(get let):
(shouldBe.let.handler.get return):
(let.handler.get order):
2017-06-21 Saam Barati <sbarati@apple.com>
eval virtual call is incorrect in the baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=173587
<rdar://problem/32867897>
Reviewed by Michael Saboff.
* stress/do-eval-virtual-call-correctly.js: Added.
(assert):
(f):
(i.test):
(catch):
2017-06-20 Ryan Haddad <ryanhaddad@apple.com>
Update test262 test expectations after r218581.
Unreviewed test gardening.
* test262.yaml:
2017-06-20 Oleksandr Skachkov <gskachkov@gmail.com>
Revert changes in bug#160417 about extending `null` not being a derived class
https://bugs.webkit.org/show_bug.cgi?id=169293
Reviewed by Saam Barati.
* stress/class-derived-from-null.js:
(assertThrow):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
2017-06-13 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] More ArrayIndexOf fixups for various types
https://bugs.webkit.org/show_bug.cgi?id=173176
Reviewed by Saam Barati.
* stress/array-indexof-arraystorage.js: Added.
(shouldBe):
(indexOfInt32Other):
(indexOfInt32Cell):
(indexOfInt32Boolean):
(indexOfDoubleOther):
(indexOfDoubleCell):
(indexOfDoubleBoolean):
(indexOfInt32):
(indexOfDouble):
* stress/array-indexof-constant-folding.js: Added.
(shouldBe):
(indexOfInt32Other):
(indexOfInt32Cell):
(indexOfInt32Boolean):
(indexOfDoubleOther):
(indexOfDoubleCell):
(indexOfDoubleBoolean):
* stress/array-indexof-hole-and-other.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-other.js: Added.
(shouldBe):
(indexOfInt32):
(indexOfDouble):
(indexOfString):
(indexOfObject):
* stress/array-indexof-symbol.js: Added.
(shouldBe):
(indexOfInt32):
(indexOfDouble):
(indexOfString):
(indexOfObject):
2017-06-19 Joseph Pecoraro <pecoraro@apple.com>
test262: Completion values for control flow do not match the spec
https://bugs.webkit.org/show_bug.cgi?id=171265
Reviewed by Saam Barati.
* stress/completion-value.js:
Condensed test for completion values in top level statements.
* stress/super-get-by-id.js:
ClassDeclaration when evaled no longer produce values. Convert
these to ClassExpressions so they produce the class value.
* ChakraCore/test/GlobalFunctions/evalreturns3.baseline-jsc:
This is a progression for currect spec behavior.
* mozilla/mozilla-tests.yaml:
This test is now outdated, so mark it as failing for that reason.
* test262.yaml:
Passing all "cptn" completion value tests.
2017-06-17 Keith Miller <keith_miller@apple.com>
ArrayBuffer constructor needs to create subclass structures before its buffer
https://bugs.webkit.org/show_bug.cgi?id=173510
Reviewed by Yusuke Suzuki.
* test262.yaml:
2017-06-17 Keith Miller <keith_miller@apple.com>
ArrayPrototype methods should use JSValue::toLength for non-Arrays.
https://bugs.webkit.org/show_bug.cgi?id=173506
Reviewed by Ryosuke Niwa.
Re-baseline tests.
* ChakraCore/test/Function/apply3.baseline-jsc:
* test262.yaml:
2017-06-16 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add fast path for Object.assign
https://bugs.webkit.org/show_bug.cgi?id=173416
Reviewed by Mark Lam.
* stress/object-assign-changing-properties.js: Added.
(shouldBe):
(throw.new.Error.let.source.get x):
(throw.new.Error):
(shouldBe.let.source.get x):
(shouldBe.let.target.set x):
(shouldBe.let.target.get x):
* stress/object-assign-proxy.js: Added.
(shouldBe):
(throw.new.Error.let.handler.get order):
2017-06-15 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement Object.assign in C++
https://bugs.webkit.org/show_bug.cgi?id=173414
Reviewed by Saam Barati.
* stress/object-assign-string-first.js: Added.
(shouldBe):
(source.get Symbol):
(source.get 1):
(source.get cocoa):
2017-06-14 JF Bastien <jfbastien@apple.com>
WebAssembly: remove empty test files
https://bugs.webkit.org/show_bug.cgi?id=173382
Reviewed by Saam Barati.
The following files:
JSTests/wasm/function-tests/call-indirect-params.js
JSTests/wasm/function-tests/call-indirect.js
JSTests/wasm/js-api/call-indirect-results.js
Were changed to empty files in https://trac.webkit.org/changeset/209771
They were testing call_indirect with the wrong semantics, before
we implemented tables. That change implemented tables and
therefore removed the erroneous tests.
We have a few tests for call_indirect which already do the right thing:
JSTests/wasm/function-tests/context-switch.js
JSTests/wasm/function-tests/exceptions.js
JSTests/wasm/function-tests/grow-memory-2.js
JSTests/wasm/function-tests/stack-overflow.js
JSTests/wasm/function-tests/table-basic-2.js
JSTests/wasm/function-tests/table-basic.js
JSTests/wasm/js-api/call-indirect.js
JSTests/wasm/js-api/table.js
JSTests/wasm/js-api/unique-signature.js
JSTests/wasm/js-api/wrapper-function.js
I also just imported the updated spec tests which, among other
things, test call_indirect:
core/br.wast
core/br_table.wast
core/call_indirect.wast
core/func.wast
core/func_ptrs.wast
core/imports.wast
core/left-to-right.wast
core/linking.wast
core/nop.wast
core/return.wast
core/typecheck.wast
core/unreachable.wast
So I think it's OK to just delete the tests which should just have
been deleted back when tables were added.
* wasm/function-tests/call-indirect-params.js: Removed.
* wasm/function-tests/call-indirect.js: Removed.
* wasm/js-api/call-indirect-results.js: Removed.
2017-06-13 JF Bastien <jfbastien@apple.com>
WebAssembly: import updated spec tests
https://bugs.webkit.org/show_bug.cgi?id=173287
<rdar://problem/32725975>
Reviewed by Saam Barati.
Import spec tests as of 31c641cc15f2aedbec2fa45a5185f68416df578b,
with a few modifications so things work.
Fix a bunch of bugs found through this process, and punt a few tests (which I
marked as blocked by this bug).
Fixes:
Fix load / store alignment: r216908 erroneously implemented it as bit alignment
instead of byte alignment. It was also missing memory-alignment.js despite it
being in the ChangeLog, so add it too. This allows spec-test/align.wast.js to
pass.
Tables can be imported or in a section. There can be only one, but sections can
be empty. An Elements section can exist if there's no Table, as long as it is
also empty.
Memories can be imported or in a section. There can be only one, but sections
can be empty. A Data section can exist if there's no Memory, as long as it is
also empty.
Prototypes: stringify without .prototype. in the string.
WebAssembly.Table.prototype.grow was plain wrong: it takes a delta parameter,
not a final size, and throws a RangeError on failure, not a TypeError.
Fix compile / instantiate so the reject the promise if given an argument of the
wrong type (instead of failing instantly).
Fix async on neuter test.
Element section shouldn't affect any Table if any of the elements are out of
bounds. We need to process it in two passes.
Segment section shouldn't affect any Data if any of the segments are out of
bounds. We need to process it in two passes.
Empty data segments are valid, but only when there is no memory. Their index
still gets validated, and has to be zero.
Punts:
Error messages with context, the test seems overly restrictive but this is
minor.
compile/instantiate/validate property descriptors.
UTF-8 bugs.
Temporarily disable NaN tests. We need to go back and implement the following
semantics: https://github.com/WebAssembly/spec/pull/414 This doesn't matter as
much as getting all the other tests passing.
Worth noting for NaNs: f64.no_fold_mul_one (also a NaN test) as well as
no_fold_promote_demote (an interesting corner case which we get wrong). mul by
one is (assert_return (invoke \"f64.no_fold_mul_one\" (i64.const
0x7ff4000000000000)) (i64.const 0x7ff8000000000000)) which means converting sNaN
to qNaN, and promote/demote is (assert_return (invoke \"no_fold_promote_demote\"
(i32.const 0x7fa00000)) (i32.const 0x7fc00000)) which is the same. I'm not sure
why they're not allowed.
* wasm.yaml:
* wasm/function-tests/i32-load8-s.js:
* wasm/function-tests/memory-access-past-4gib.js:
(const.op.of.WASM.opcodes):
* wasm/function-tests/memory-alignment.js: Added.
(const.op.of.WASM.opcodes):
* wasm/function-tests/memory-section-and-import.js:
* wasm/js-api/Module-compile.js:
(async.testPromiseAPI):
* wasm/js-api/dont-mmap-zero-byte-memory.js:
(testMems):
* wasm/js-api/element.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
* wasm/js-api/neutered-inputs.js:
(const.testFunction): Deleted.
(const.testConstructor): Deleted.
* wasm/js-api/table.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
(new.WebAssembly.Module):
(assert.throws):
(assertBadTableImport):
(assert.throws.WebAssembly.Table.prototype.grow):
(assertBadTableInstance): Deleted.
* wasm/js-api/test_Data.js:
(DataSectionWithoutMemory):
* wasm/spec-harness/index.js:
(module):
(uniqueTest): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(register): Deleted.
(call): Deleted.
(get instance): Deleted.
(exports): Deleted.
(run): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(try.f): Deleted.
(catch): Deleted.
(assert_exhaustion): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-harness/testharness.css: Removed.
* wasm/spec-harness/testharness.js: Removed.
* wasm/spec-harness/testharnessreport.js: Removed.
* wasm/spec-harness/wasm-constants.js:
(assertTraps):
(assertWasmThrows):
* wasm/spec-harness/wasm-module-builder.js:
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.end):
(WasmFunctionBuilder):
(WasmModuleBuilder.prototype.stringToBytes):
(WasmModuleBuilder.prototype.addCustomSection):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):
(WasmModuleBuilder):
* wasm/spec-tests/address.wast.js:
* wasm/spec-tests/align.wast.js: Added.
* wasm/spec-tests/binary.wast.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/br_if.wast.js:
* wasm/spec-tests/br_table.wast.js:
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/comments.wast.js:
* wasm/spec-tests/const.wast.js: Added.
* wasm/spec-tests/conversions.wast.js: Added.
* wasm/spec-tests/custom_section.wast.js:
* wasm/spec-tests/exports.wast.js:
* wasm/spec-tests/f32.wast.js: Added.
* wasm/spec-tests/f64.wast.js: Added.
* wasm/spec-tests/fac.wast.js:
* wasm/spec-tests/float_exprs.wast.js: Added.
* wasm/spec-tests/float_misc.wast.js: Added.
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/globals.wast.js:
* wasm/spec-tests/if.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/inline-module.wast.js: Added.
* wasm/spec-tests/jsapi.js:
(testJSAPI.test):
(testJSAPI):
* wasm/spec-tests/labels.wast.js:
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/memory.wast.js:
* wasm/spec-tests/memory_trap.wast.js: Added.
* wasm/spec-tests/names.wast.js:
* wasm/spec-tests/nop.wast.js:
* wasm/spec-tests/return.wast.js:
* wasm/spec-tests/stack.wast.js:
* wasm/spec-tests/token.wast.js: Added.
* wasm/spec-tests/type.wast.js: Added.
* wasm/spec-tests/typecheck.wast.js:
* wasm/spec-tests/unreachable.wast.js:
* wasm/spec-tests/unreached-invalid.wast.js:
* wasm/spec-tests/unwind.wast.js:
* wasm/spec-tests/utf8-custom-section-id.wast.js: Added.
* wasm/spec-tests/utf8-import-field.wast.js: Added.
* wasm/spec-tests/utf8-import-module.wast.js: Added.
2017-06-13 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed JSC test gardening.
* stress/check-string-ident.js:
* stress/new-largeish-contiguous-array-with-size.js:
2017-06-13 Michael Saboff <msaboff@apple.com>
DFG doesn't properly handle a property that is change to read only in a prototype
https://bugs.webkit.org/show_bug.cgi?id=173321
Reviewed by Filip Pizlo.
* ChakraCore.yaml: Renabled fieldopts/objtypespec-newobj-invalidation.1.js.
* stress/regress-173321.js: Added new regression test.
(shouldBe):
(SimpleObject):
(test):
2017-06-12 Saam Barati <sbarati@apple.com>
Update test262 test expectation since r218082 makes new tests pass.
* test262.yaml:
2017-06-12 Saam Barati <sbarati@apple.com>
We should not claim that SpecEmpty is filtered out of cell checks on 64 bit platforms
https://bugs.webkit.org/show_bug.cgi?id=172957
<rdar://problem/32602704>
Reviewed by Filip Pizlo.
* stress/spec-empty-flows-through-cell-checks.js: Added.
(A):
(B):
(i.catch):
2017-06-12 Oleksandr Skachkov <gskachkov@gmail.com>
We incorrectly allow escaped characters in keyword tokens
https://bugs.webkit.org/show_bug.cgi?id=171310
Reviewed by Yusuke Suzuki.
* stress/destructuring-assignment-syntax.js:
* stress/error-messages-for-in-operator-should-not-crash.js:
(catch):
* stress/reserved-word-with-escape.js:
(testSyntaxError.String.raw.v):
(String.raw.SyntaxError.Cannot.use.the.keyword.string_appeared_here.as.a.name):
(testSyntaxError.String.raw.a):
* JSTests/ChakraCore/test/Basics/IdsWithEscapes.baseline-jsc:
2017-06-09 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Add ArrayIndexOf intrinsic
https://bugs.webkit.org/show_bug.cgi?id=172421
Reviewed by Saam Barati.
* stress/array-indexof-array-prototype-change.js: Added.
(shouldBe):
(indexOfInt32):
* stress/array-indexof-have-a-bad-time-getter.js: Added.
(shouldBe):
(indexOfInt32):
* stress/array-indexof-have-a-bad-time.js: Added.
(shouldBe):
(indexOfInt32):
* stress/array-indexof-hole-with-prototype.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-hole.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-index.js: Added.
(shouldBe):
(indexOfInt32):
(indexOfDouble):
(indexOfString):
(indexOfObject):
(indexOfValue):
* stress/array-indexof-negative-index.js: Added.
(shouldBe):
(indexOfInt32):
(indexOfDouble):
(indexOfString):
(indexOfObject):
(indexOfValue):
* stress/array-indexof-non-int32-start-index.js: Added.
(shouldBe):
(indexOf):
(object.valueOf):
* stress/array-indexof-object-prototype-change.js: Added.
(shouldBe):
(indexOfInt32):
* stress/array-indexof-object.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-original-array.js: Added.
(shouldBe):
(indexOfInt32):
* stress/array-indexof-string.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-structure-change-convert.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof-structure-change.js: Added.
(shouldBe):
(indexOf):
* stress/array-indexof.js: Added.
(shouldBe):
(indexOf):
2017-06-11 Keith Miller <keith_miller@apple.com>
TypedArray constructor with string shouldn't throw
https://bugs.webkit.org/show_bug.cgi?id=173181
Reviewed by JF Bastien.
We should be coercing primitive arguments to numbers in the various
TypedArray constructors.
* stress/typedarray-constructor.js:
2017-06-11 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, update test results part 3
https://bugs.webkit.org/show_bug.cgi?id=173227
* microbenchmarks/regexp-prototype-search-observable-side-effects.js:
2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, update test results part 2
https://bugs.webkit.org/show_bug.cgi?id=173227
* test262.yaml:
2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, update test results
https://bugs.webkit.org/show_bug.cgi?id=173227
* microbenchmarks/string-prototype-search-observable-side-effects.js:
* test262.yaml:
2017-06-10 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Update RegExp.prototype.[@@search]] implementation according to the latest spec
https://bugs.webkit.org/show_bug.cgi?id=173227
Reviewed by Mark Lam.
Update the test.
* es6/Proxy_internal_get_calls_RegExp.prototype[Symbol.search].js:
2017-06-08 Keith Miller <keith_miller@apple.com>
WebAssembly: We should only create wrappers for functions that can be exported
https://bugs.webkit.org/show_bug.cgi?id=173088
Reviewed by Saam Barati.
Remove a bunch of old tests that are actually duplicates of the spec-tests and rely
on the old testWasmModuleFunctions api, which has been removed.
* wasm/function-tests/copysign.js: Removed.
* wasm/function-tests/ctz.js: Removed.
* wasm/function-tests/drop.js: Removed.
* wasm/function-tests/dumb-eq-if-then-else.js: Removed.
* wasm/function-tests/dumb-less-than-fallthrough.js: Removed.
* wasm/function-tests/dumb-less-than-ite.js: Removed.
* wasm/function-tests/eqz.js: Removed.
* wasm/function-tests/i32-trunc-s-f32.js: Removed.
* wasm/function-tests/i32-trunc-s-f64.js: Removed.
* wasm/function-tests/i32-trunc-u-f32.js: Removed.
* wasm/function-tests/i32-trunc-u-f64.js: Removed.
* wasm/function-tests/i64-trunc-s-f32.js: Removed.
* wasm/function-tests/i64-trunc-s-f64.js: Removed.
* wasm/function-tests/i64-trunc-u-f32.js: Removed.
* wasm/function-tests/i64-trunc-u-f64.js: Removed.
* wasm/function-tests/if-then-else-fallthrough.js: Removed.
* wasm/function-tests/if-then-fallthrough.js: Removed.
* wasm/function-tests/int-to-floating-point.js: Removed.
* wasm/function-tests/loop-mult.js:
* wasm/function-tests/loop-sum.js:
* wasm/function-tests/max.js: Removed.
* wasm/function-tests/min.js: Removed.
* wasm/function-tests/nearest.js: Removed.
* wasm/function-tests/nop.js: Removed.
* wasm/function-tests/popcnt.js: Removed.
* wasm/function-tests/ret5.js:
* wasm/function-tests/select.js: Removed.
* wasm/function-tests/tee-local.js: Removed.
* wasm/function-tests/trunc.js: Removed.
2017-06-07 JF Bastien <jfbastien@apple.com>
WebAssembly: test imports and exports with 16-bit characters
https://bugs.webkit.org/show_bug.cgi?id=165977
<rdar://problem/29760130>
Reviewed by Saam Barati.
The output for import failure was improved, so many tests need to
be updated here. Only one has new tests as noted below.
* wasm/function-tests/memory-import-and-grow.js:
* wasm/js-api/Instance.imports.exports.unicode.js: Added. Main new test.
(idxModule):
* wasm/js-api/global-error.js:
(new.Number):
(assert.throws):
* wasm/js-api/table.js:
(assert.throws):
(new.WebAssembly.Table):
* wasm/js-api/test_memory.js:
(test):
* wasm/js-api/wasm-to-wasm-bad-signature.js:
(BadSignatureDropStartParams.):
(BadSignatureDropStartParams):
(BadSignatureDropEndParams.):
(BadSignatureSwapParam.):
(BadSignatureRet.):
* wasm/js-api/web-assembly-instantiate.js:
(assert.asyncTest.async.test):
(assert.asyncTest):
* wasm/js-api/wrapper-function.js:
(return.new.WebAssembly.Module):
2017-06-07 Mark Lam <mark.lam@apple.com>
Restrict the regress-173035.js test to only run on Darwin x86-64.
https://bugs.webkit.org/show_bug.cgi?id=173075
Reviewed by Saam Barati.
This is because the 32-bit x86 build will fail to mmap the 0x3f900000 bytes that
this test will require to succeed. Here's an example of this failure:
https://build.webkit.org/builders/Apple%20Sierra%2032-bit%20JSC%20%28BuildAndTest%29/builds/866/steps/webkit-32bit-jsc-test/logs/stdio
Since the issue is due to allocation of a very large amount of memory, the test
will probably fail on iOS and other platforms as well. Hence, we should just
skip this test for any platforms that is not Darwin x86-64.
* stress/regress-173035.js:
2017-06-07 Mark Lam <mark.lam@apple.com>
ASSERTION failure: !masqueradesAsUndefinedWatchpointIsStillValid() || !isKnownCell(operand.node())
https://bugs.webkit.org/show_bug.cgi?id=168587
Not reviewed.
Unskipping the test because the issue has been fixed in https://bugs.webkit.org/show_bug.cgi?id=172673.
* stress/test-finally.js:
2017-06-06 Mark Lam <mark.lam@apple.com>
Contiguous storage butterfly length should not exceed MAX_STORAGE_VECTOR_LENGTH.
https://bugs.webkit.org/show_bug.cgi?id=173035
<rdar://problem/32554593>
Reviewed by Geoffrey Garen and Filip Pizlo.
* stress/regress-173035.js: Added.
2017-06-06 Saam Barati <sbarati@apple.com>
Make sure we restore SP when doing calls that could be to JS
https://bugs.webkit.org/show_bug.cgi?id=172946
<rdar://problem/32579026>
Reviewed by JF Bastien.
* wasm/function-tests/many-args-tail-call-sp-restored.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f1):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.end):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.f2):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.instance.new.WebAssembly.Instance.new.WebAssembly.Module.builder.WebAssembly):
2017-06-06 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed rollout r217807. Caused a test to crash.
* heapProfiler/class-names.js: Removed.
* heapProfiler/driver/driver.js:
(CheapHeapSnapshotNode):
(CheapHeapSnapshot):
(createCheapHeapSnapshot):
(HeapSnapshot):
(createHeapSnapshot):
* typeProfiler/inheritance.js:
(wrapper.A):
(wrapper.B):
(wrapper.C):
(wrapper):
2017-06-06 Filip Pizlo <fpizlo@apple.com>
index out of bound in bytecodebasicblock
https://bugs.webkit.org/show_bug.cgi?id=172963
Reviewed by Saam Barati and Mark Lam.
* stress/dfg-call-class-constructor.js: Added.
(Foo):
(i.catch):
2017-06-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
https://bugs.webkit.org/show_bug.cgi?id=172848
<rdar://problem/25709212>
Reviewed by Saam Barati.
* typeProfiler/inheritance.js:
Rewrite the test slightly for clarity. The hoisting was confusing.
* heapProfiler/class-names.js: Added.
(MyES5Class):
(MyES6Class):
(MyES6Subclass):
Test object types and improved class names.
* heapProfiler/driver/driver.js:
(CheapHeapSnapshotNode):
(CheapHeapSnapshot):
(createCheapHeapSnapshot):
(HeapSnapshot):
(createHeapSnapshot):
Update snapshot parsing from version 1 to version 2.
2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
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
https://bugs.webkit.org/show_bug.cgi?id=168844
Reviewed by Saam Barati.
* modules/async-function-export.js: Added.
(f):
(export.async.f):
2017-06-02 Yusuke Suzuki <utatane.tea@gmail.com>
ES2015 modules - Export default function hoisting
https://bugs.webkit.org/show_bug.cgi?id=170174
Reviewed by Saam Barati.
This issue itself is solved by fixing function declaration hoisting rules.
This patch just adds the specific test to modules tests to ensure the bug
is fixed.
* modules/export-default-function-hoisting.js: Added.
* modules/export-default-function-hoisting/cappuccino.js: Added.
(import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):
* modules/export-default-function-hoisting/cocoa.js: Added.
(export.default.drinkCocoa):
2017-06-01 Oleksandr Skachkov <gskachkov@gmail.com>
Class Proxy can't be extended
https://bugs.webkit.org/show_bug.cgi?id=169040
Reviewed by Saam Barati.
Adding tests that check correctness of Proxy to ES6 `class`
Bug is already fixed in https://bugs.webkit.org/show_bug.cgi?id=164849
* stress/proxy-class.js: Added.
(assert):
(throw.new.Error.SuperClass):
(throw.new.Error.A):
(throw.new.Error):
2017-05-31 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement String.prototype.concat in JS builtins
https://bugs.webkit.org/show_bug.cgi?id=172798
Reviewed by Sam Weinig.
* microbenchmarks/string-concat-convert.js: Added.
(test):
* microbenchmarks/string-concat-long-convert.js: Added.
(test):
* microbenchmarks/string-concat-long.js: Added.
(test):
* microbenchmarks/string-concat.js: Added.
(test):
2017-05-31 Oleksandr Skachkov <gskachkov@gmail.com>
Rolling out: Prevent async methods named 'function'
https://bugs.webkit.org/show_bug.cgi?id=172776
Reviewed by Mark Lam.
* stress/async-await-syntax.js:
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
(testTopLevelAsyncAwaitSyntaxSloppyMode):
(prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
(prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
2017-05-31 Ryan Haddad <ryanhaddad@apple.com>
Skip flaky JSC test stress/test-finally.js
https://bugs.webkit.org/show_bug.cgi?id=168587
Unreviewed test gardening.
* stress/test-finally.js:
2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
Prevent async methods named 'function' in Object literal
https://bugs.webkit.org/show_bug.cgi?id=172660
Reviewed by Saam Barati.
* stress/async-await-syntax.js:
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
2017-05-30 Oleksandr Skachkov <gskachkov@gmail.com>
ASSERTION FAILED: generator.isConstructor() || generator.derivedContextType() == DerivedContextType::DerivedConstructorContext
https://bugs.webkit.org/show_bug.cgi?id=171274
Reviewed by Saam Barati.
* stress/async-arrow-functions-lexical-binding-in-class.js:
(shouldBeAsync):
(shouldBeAsyncAndStoreBind):
(promise.new.Promise):
(ChildClass4):
(ChildClass4.prototype.classValue):
(ChildClass4.prototype.get classProperty):
* stress/async-arrow-functions-lexical-super-binding.js:
(A):
(const.childA1.new.prototype.var.f.async):
(const.childA1.new.var):
(const.childA1.new):
(const.childA2.new.prototype.var.f.async):
(const.childA2.new.var):
(const.childA2.new):
(const.childA3.new.prototype.var.f.async):
(const.childA3.new.var):
(const.childA3.new):
(try.childA4.new.prototype.var.f.async):
(try.childA4.new.var):
(try.childA4.new):
(catch):
(const.childA5.new.prototype.var.f.async):
(const.childA5.new.var):
(const.childA5.new):
(checkClass):
(checkClass.new.prototype.var.f.async):
(checkClass.new.var):
(checkClass.new):
(checkClass.new.prototype.method):
(checkClass.new.prototype.prop):
2017-05-27 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Map and Set constructors should have fast path for cloning
https://bugs.webkit.org/show_bug.cgi?id=172413
Reviewed by Saam Barati.
* stress/map-clone-instance-iterator-change.js: Added.
(shouldBe):
(map.Symbol.iterator):
* stress/map-clone-iterator-change.js: Added.
(shouldBe):
(Map.prototype.Symbol.iterator):
* stress/map-clone-next-change.js: Added.
(shouldBe):
(map.Symbol.iterator.__proto__.next):
* stress/map-clone.js: Added.
(shouldBe):
(Map.prototype):
* stress/map-inherit-set.js: Added.
(shouldBe):
(DerivedMap):
(set for):
* stress/set-clone-instance-iterator-change.js: Added.
(shouldBe):
(set Symbol.iterator):
* stress/set-clone-iterator-change.js: Added.
(shouldBe):
(set Set.prototype.Symbol.iterator):
* stress/set-clone-next-change.js: Added.
(shouldBe):
(set Symbol.iterator.__proto__.next):
* stress/set-clone.js: Added.
(shouldBe):
(set Set.prototype.add):
* stress/set-inherit-add.js: Added.
(shouldBe):
(DerivedSet.set add):
2017-05-26 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r217458.
This change caused 55 JSC test failures.
Reverted changeset:
"Date should use historical data if it's available."
https://bugs.webkit.org/show_bug.cgi?id=172592
http://trac.webkit.org/changeset/217458
2017-05-26 Yusuke Suzuki <utatane.tea@gmail.com>
Give ModuleProgram the same treatment that we did for ProgramCode in bug#167725
https://bugs.webkit.org/show_bug.cgi?id=167805
Reviewed by Saam Barati.
* modules/module-jit-reachability.js: Added.
2017-05-26 Oleksandr Skachkov <gskachkov@gmail.com>
Prevent async methods named 'function'
https://bugs.webkit.org/show_bug.cgi?id=172598
Reviewed by Mark Lam.
* stress/async-await-syntax.js:
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
(testTopLevelAsyncAwaitSyntaxSloppyMode):
(prototype.testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
(prototype.testTopLevelAsyncAwaitSyntaxStrictMode):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
2017-05-25 Keith Miller <keith_miller@apple.com>
Date should use historical data if it's available.
https://bugs.webkit.org/show_bug.cgi?id=172592
Reviewed by Mark Lam.
Remove parts of the date tests that rely on the absence of
historical data in Date.
* mozilla/ecma/Date/15.9.5.31-1.js:
(getTestCases):
* mozilla/ecma/Date/15.9.5.35-1.js:
(getTestCases):
2017-05-25 Saam Barati <sbarati@apple.com>
Our for-in optimization in the bytecode generator does its static analysis incorrectly
https://bugs.webkit.org/show_bug.cgi?id=172532
<rdar://problem/32369452>
Reviewed by Mark Lam.
* stress/for-in-invalidation-for-any-write.js: Added.
(assert):
(test):
(test.i):
2017-05-25 Mark Lam <mark.lam@apple.com>
ObjectToStringAdaptiveInferredPropertyValueWatchpoint should not reinstall itself nor handleFire if it's dying shortly.
https://bugs.webkit.org/show_bug.cgi?id=172548
<rdar://problem/31458393>
Reviewed by Filip Pizlo.
* stress/regress-172548.patch: Added.
2017-05-23 Saam Barati <sbarati@apple.com>
We should not mmap zero bytes for a memory in Wasm
https://bugs.webkit.org/show_bug.cgi?id=172528
<rdar://problem/32257076>
Reviewed by Mark Lam.
* wasm/js-api/dont-mmap-zero-byte-memory.js: Added.
(testMems):
2017-05-23 Saam Barati <sbarati@apple.com>
CFGSimplificationPhase should not merge a block with itself
https://bugs.webkit.org/show_bug.cgi?id=172508
<rdar://problem/28424006>
Reviewed by Keith Miller.
* stress/dont-crash-in-cfg-simplification.js: Added.
(bar):
(baz):
(foo):
2017-05-20 Yusuke Suzuki <utatane.tea@gmail.com>
[FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=172216
Reviewed by Saam Barati.
* stress/array-storage-get-by-val.js: Added.
(shouldBe):
(testOutOfBound):
(testInBound):
(testSlowPutOutOfBound):
(testSlowPutInBound):
2017-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, fix commented out tests
https://bugs.webkit.org/show_bug.cgi?id=172225
* stress/get-by-val-string.js:
(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):
(shouldBe):
(throw.new.Error): Deleted.
2017-05-21 Saam Barati <sbarati@apple.com>
We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=171041
<rdar://problem/32082516>
Reviewed by Yusuke Suzuki.
* stress/lexical-scoping-for-loop.js: Added.
(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(let.test7):
(let.test8):
(let.test9):
(let.test10):
(let.test11):
(let.test12):
2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Make get_by_val & string "499" to number 499
https://bugs.webkit.org/show_bug.cgi?id=172225
Reviewed by Saam Barati.
* stress/get-by-val-string.js: Added.
(shouldBe):
(shouldThrow):
(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):
2017-05-19 Mark Lam <mark.lam@apple.com>
[Re-landing] DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>
Reviewed by Filip Pizlo.
* stress/regress-172383.js: Added.
2017-05-19 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r217156.
This change broke the iOS build.
Reverted changeset:
"DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring
result registers."
https://bugs.webkit.org/show_bug.cgi?id=172383
http://trac.webkit.org/changeset/217156
2017-05-19 Mark Lam <mark.lam@apple.com>
Add missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=172346
<rdar://problem/32289640>
Reviewed by Geoffrey Garen.
* stress/regress-172346.js: Added.
2017-05-19 Mark Lam <mark.lam@apple.com>
DFG::SpeculativeJIT::pickCanTrample() is wrongly ignoring result registers.
https://bugs.webkit.org/show_bug.cgi?id=172383
<rdar://problem/31418651>
Reviewed by Filip Pizlo.
* stress/regress-172383.js: Added.
2017-05-19 Filip Pizlo <fpizlo@apple.com>
arrayProtoPrivateFuncConcatMemcpy needs to be down with firstArray being undecided
https://bugs.webkit.org/show_bug.cgi?id=172369
Reviewed by Mark Lam.
* stress/undecided-concat.js: Added.
2017-05-19 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=172098
Reviewed by Saam Barati.
* stress/check-sub-class.js: Added.
(shouldBe):
(shouldThrow):
(calling):
(array.forEach):
(i.array.forEach):
2017-05-18 JF Bastien <jfbastien@apple.com>
WebAssembly: exports is a getter
https://bugs.webkit.org/show_bug.cgi?id=172129
Reviewed by Saam Barati.
Update test to reflect new semantics.
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2017-05-18 Saam Barati <sbarati@apple.com>
Proxy's [[Get]] passes incorrect receiver
https://bugs.webkit.org/show_bug.cgi?id=164849
<rdar://problem/31767058>
Reviewed by Yusuke Suzuki.
* stress/proxy-get-set-correct-receiver.js: Added.
(assert):
(test):
(test.let.target.set prop):
(test.let.target.get prop):
(test.get let):
* stress/proxy-set.js:
(let.target.get x):
* stress/reflect-set-proxy-set.js:
(let.target.get x):
* stress/reflect-set-receiver-proxy-set.js:
(let.target.get x):
2017-05-18 Filip Pizlo <fpizlo@apple.com>
Constructor calls set this too early
https://bugs.webkit.org/show_bug.cgi?id=172302
Reviewed by Saam Barati.
This tests all three kinds of constructs in BytecodeGenerator. All three were previously
wrong.
* stress/construct-overwritten-variable.js: Added.
(new.x.x):
* stress/construct-spread-overwritten-variable-2.js: Added.
(new.x.x):
* stress/construct-spread-overwritten-variable.js: Added.
(new.x.x):
2017-05-18 Saam Barati <sbarati@apple.com>
WebAssembly: perform stack checks
https://bugs.webkit.org/show_bug.cgi?id=165546
<rdar://problem/29760307>
Reviewed by Filip Pizlo.
* wasm.yaml:
* wasm/function-tests/factorial.js:
* wasm/function-tests/float-sub.js:
* wasm/function-tests/stack-overflow.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.assertOverflows):
(assertOverflows.makeInstance):
(assertOverflows.makeInstance2):
(assertOverflows.assertThrows):
(assertOverflows):
(assertThrows.test.makeSignature):
(assertThrows.test.makeInstance):
(assertThrows.test):
(assertThrows):
2017-05-18 Keith Miller <keith_miller@apple.com>
WebAssembly API: test with neutered inputs
https://bugs.webkit.org/show_bug.cgi?id=163899
Reviewed by JF Bastien.
* wasm/js-api/neutered-inputs.js: Added.
(const.testFunction):
(const.testConstructor):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2017-05-18 Filip Pizlo <fpizlo@apple.com>
DFG inlining should be hardened for the no-result case
https://bugs.webkit.org/show_bug.cgi?id=172290
Reviewed by Saam Barati.
* stress/array-constructor-no-result.js: Added.
(foo):
* stress/pow-no-result.js: Added.
(foo):
2017-05-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r217031, r217032, and r217037.
https://bugs.webkit.org/show_bug.cgi?id=172293
cause linking errors in Windows (Requested by yusukesuzuki on
#webkit).
Reverted changesets:
"[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217031
"Unreviewed, rebaseline for newly added ClassInfo"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217032
"Unreviewed, fix debug and non-JIT build"
https://bugs.webkit.org/show_bug.cgi?id=172098
http://trac.webkit.org/changeset/217037
2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC][DFG][DOMJIT] Extend CheckDOM to CheckSubClass
https://bugs.webkit.org/show_bug.cgi?id=172098
Reviewed by Saam Barati.
* stress/check-sub-class.js: Added.
(shouldBe):
(shouldThrow):
(calling):
(array.forEach):
(i.array.forEach):
2017-05-17 Filip Pizlo <fpizlo@apple.com>
Unreviewed, address mlam's review feedback.
* stress/arguments-elimination-varargs-too-many-args-arg-count.js:
2017-05-17 Saam Barati <sbarati@apple.com>
We don't do context switches for Wasm->Wasm call indirect
https://bugs.webkit.org/show_bug.cgi?id=172188
<rdar://problem/32231828>
Reviewed by Keith Miller.
* wasm/function-tests/context-switch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance2):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.i2.makeInstance2):
(makeInstance):
(makeInstance2):
(assert.eq.makeInstance):
(assert.eq.makeInstance2):
(assert.eq):
2017-05-17 Filip Pizlo <fpizlo@apple.com>
JSC: Incorrect LoadVarargs handling in ArgumentsEliminationPhase::transform
https://bugs.webkit.org/show_bug.cgi?id=172208
Reviewed by Saam Barati.
* stress/arguments-elimination-varargs-too-many-args-arg-count.js: Added.
(foo):
(bar):
(baz):
2017-05-16 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Constant Folding Phase should convert MakeRope("", String) => Identity(String)
https://bugs.webkit.org/show_bug.cgi?id=172115
Reviewed by Saam Barati.
* stress/constant-folding-should-fold-make-rope-with-empty-strings.js: Added.
(shouldBe):
(unknown):
(readWord1):
(readWord2):
(readWord3):
(readWord4):
2017-05-16 JF Bastien <jfbastien@apple.com>
WebAssembly: add memory fuzzer
https://bugs.webkit.org/show_bug.cgi?id=169976
<rdar://problem/31965328>
Reviewed by Keith Miller.
* wasm/fuzz/memory.js: Added.
(const.insert):
(const.action.string_appeared_here):
(const.performAction):
(catch):
2017-05-16 JF Bastien <jfbastien@apple.com>
WebAssembly: validate load / store alignment
https://bugs.webkit.org/show_bug.cgi?id=168836
<rdar://problem/31965349>
Reviewed by Keith Miller.
* wasm/WASM.js: fix regular expression greed
* wasm/function-tests/memory-alignment.js: Added.
(const.op.of.WASM.opcodes):
* wasm/wasm.json: fix formatting
2017-05-15 Mark Lam <mark.lam@apple.com>
Rolling out r214038 and r213697: Crashes when using computed properties with rest destructuring and object spread.
https://bugs.webkit.org/show_bug.cgi?id=172147
Rubber-stamped by Saam Barati.
* stress/object-rest-deconstruct.js: Removed.
* stress/object-spread.js: Removed.
2017-05-11 JF Bastien <jfbastien@apple.com>
WebAssembly: stop supporting 0xD
https://bugs.webkit.org/show_bug.cgi?id=168788
<rdar://problem/31880922>
Reviewed by Saam Barati.
Test that only version 1 is supported.
* wasm/js-api/version.js: Added.
2017-05-10 JF Bastien <jfbastien@apple.com>
WebAssemby: builder doesn't do Memory section maximum correctly
https://bugs.webkit.org/show_bug.cgi?id=171931
Reviewed by Keith Miller.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Memory):
* wasm/function-tests/memory-grow-invalid.js: Added.
2017-05-10 JF Bastien <jfbastien@apple.com>
WebAssembly: support name section
https://bugs.webkit.org/show_bug.cgi?id=171263
Reviewed by Keith Miller.
* wasm/function-tests/nameSection.js: Added.
(const.compile):
* wasm/function-tests/nameSection.wasm: Added.
* wasm/function-tests/stack-trace.js: Update format
2017-05-10 Filip Pizlo <fpizlo@apple.com>
Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
https://bugs.webkit.org/show_bug.cgi?id=171801
Reviewed by Michael Saboff.
These tests used to crash. The prefix and postfix tests cover different paths, except
postfix-ignored goes down the same path as prefix due to an optimization.
* stress/for-in-postfix-ignored-index.js: Added.
(foo):
* stress/for-in-postfix-index.js: Added.
(foo):
* stress/for-in-prefix-index.js: Added.
(foo):
2017-05-08 Mark Lam <mark.lam@apple.com>
op_throw_static_error's use of its first operand should be reflected in DFG BytecodeUseDef as well.
https://bugs.webkit.org/show_bug.cgi?id=171786
<rdar://problem/32051023>
Reviewed by Saam Barati.
* stress/bug-171786.js: Added.
2017-05-06 Oleksandr Skachkov <gskachkov@gmail.com>
[ES6] Arrow function. Issue in access to this after eval('super()') within constructor
https://bugs.webkit.org/show_bug.cgi?id=171543
Reviewed by Saam Barati.
* stress/arrowfunction-lexical-bind-supercall-4.js:
(J):
(K):
2017-05-05 Saam Barati <sbarati@apple.com>
putDirectIndex does not properly do defineOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=171591
<rdar://problem/31735695>
Reviewed by Geoffrey Garen.
* stress/array-prototype-splice-making-typed-array.js:
(test):
* stress/array-species-config-array-constructor.js:
(shouldThrow):
(test):
* stress/put-direct-index-broken-2.js: Added.
(assert):
(test):
(makeLengthWritable):
(set get restoreOldDesc):
* stress/put-direct-index-broken.js: Added.
(whatToTest):
(tryRunning):
(tryItOut):
* stress/put-indexed-getter-setter.js: Added.
(foo.X.prototype.set 7):
(foo.X.prototype.get 7):
(foo.X):
(foo):
2017-05-04 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Math unary functions should be handled by DFG
https://bugs.webkit.org/show_bug.cgi?id=171269
Reviewed by Saam Barati.
* stress/arith-acos-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueACosNoArgument):
(testNoArgument):
(opaqueAllTypesACos):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueACosForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueACosForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueACosForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueACosWithException):
(testException):
* stress/arith-acosh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueACoshNoArgument):
(testNoArgument):
(opaqueAllTypesACosh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueACoshForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueACoshForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueACoshForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueACoshWithException):
(testException):
* stress/arith-asin-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueASinNoArgument):
(testNoArgument):
(opaqueAllTypesASin):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueASinForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueASinForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueASinForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueASinWithException):
(testException):
* stress/arith-asinh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueASinhNoArgument):
(testNoArgument):
(opaqueAllTypesASinh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueASinhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueASinhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueASinhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueASinhWithException):
(testException):
* stress/arith-atan-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueATanNoArgument):
(testNoArgument):
(opaqueAllTypesATan):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueATanForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueATanForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueATanForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueATanWithException):
(testException):
* stress/arith-atanh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueATanhNoArgument):
(testNoArgument):
(opaqueAllTypesATanh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueATanhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueATanhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueATanhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueATanhWithException):
(testException):
* stress/arith-cbrt-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueCbrtNoArgument):
(testNoArgument):
(opaqueAllTypesCbrt):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueCbrtForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueCbrtForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueCbrtForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueCbrtWithException):
(testException):
* stress/arith-cosh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueCoshNoArgument):
(testNoArgument):
(opaqueAllTypesCosh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueCoshForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueCoshForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueCoshForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueCoshWithException):
(testException):
* stress/arith-expm1-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueExpm1NoArgument):
(testNoArgument):
(opaqueAllTypesExpm1):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueExpm1ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueExpm1ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueExpm1ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueExpm1WithException):
(testException):
* stress/arith-log10-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueLog10NoArgument):
(testNoArgument):
(opaqueAllTypesLog10):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueLog10ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueLog10ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueLog10ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueLog10WithException):
(testException):
* stress/arith-log2-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueLog2NoArgument):
(testNoArgument):
(opaqueAllTypesLog2):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueLog2ForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueLog2ForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueLog2ForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueLog2WithException):
(testException):
* stress/arith-sinh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueSinhNoArgument):
(testNoArgument):
(opaqueAllTypesSinh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueSinhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueSinhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueSinhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueSinhWithException):
(testException):
* stress/arith-tan-on-various-types.js:
(isIdentical):
* stress/arith-tanh-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueTanhNoArgument):
(testNoArgument):
(opaqueAllTypesTanh):
(testAllTypesCall):
(testSingleTypeCall):
(testConstant):
(opaqueTanhForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueTanhForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueTanhForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueTanhWithException):
(testException):
2017-05-03 Keith Miller <keith_miller@apple.com>
Array.prototype.sort should also allow a null comparator
https://bugs.webkit.org/show_bug.cgi?id=171621
Reviewed by Michael Saboff.
Add test to make it less likely we revert to the incompatable behavior.
Also, fix now incorrect tests.
* ChakraCore/test/Array/array_sort.baseline-jsc:
* stress/array-sort-bad-comparator.js:
(test):
* stress/sort-null-comparator.js: Added.
(assertEq):
2017-05-03 Caitlin Potter <caitp@igalia.com>
[JSC] remove unneeded asyncFunctionTests.yaml
https://bugs.webkit.org/show_bug.cgi?id=171611
Reviewed by Yusuke Suzuki.
Async functions have shipped, and those tests are run as part of
JSTests/stress and JSTests/test262.yaml. The file is no longer needed.
* asyncFunctionTests.yaml: Removed.
* stress/async-await-long-loop.js:
* stress/async-await-throw-loop.js:
2017-05-03 Keith Miller <keith_miller@apple.com>
Different behaviour with the .sort(callback) method (unlike Firefox & Chrome)
https://bugs.webkit.org/show_bug.cgi?id=47825
Reviewed by Saam Barati.
* stress/sorting-boolean-result-comparator.js: Added.
(checkArray):
2017-05-02 David Kilzer <ddkilzer@apple.com>
check-webkit-style should keep JavaScript test functions in sync
<https://webkit.org/b/171424>
Reviewed by Joseph Pecoraro.
This change makes shouldBe(), shouldNotBe(), shouldNotThrow()
and shouldThrow() in sync with other copies of these methods.
* stress/resources/standalone-pre.js:
(shouldBe): Fix whitespace. Prefix 'exception' and 'quiet'
variables with underscore.
(shouldThrow): Fix whitespace.
2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
We initialize functions too early in an eval
https://bugs.webkit.org/show_bug.cgi?id=161099
Reviewed by Saam Barati.
* stress/eval-func-decl-with-let-const-class.js: Added.
2017-04-30 Oleksandr Skachkov <gskachkov@gmail.com>
[ES6]. Implement Annex B.3.3 function hoisting rules for eval
https://bugs.webkit.org/show_bug.cgi?id=163208
Reviewed by Saam Barati.
* stress/eval-func-decl-block-scoping-reassign.js: Added.
(assert):
(throw.new.Error.f):
(throw.new.Error):
* stress/eval-func-decl-block-with-remove.js: Added.
(assert):
(foo.boo):
(foo):
* stress/eval-func-decl-block-with-var-and-remove.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(joo):
(koo):
* stress/eval-func-decl-block-with-var-sinthesize.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(hoo):
(joo):
(koo):
* stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
* stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
* stress/eval-func-decl-in-eval-within-with-scope.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(boo.let.val2):
(boo.let.val3):
* stress/eval-func-decl-in-frozen-global.js: Added.
(assert):
(assertThrow):
(throw.new.Error):
(Object.freeze):
* stress/eval-func-decl-in-global-of-eval.js: Added.
(assert):
(assertThrow):
(bar):
(baz):
(foobar):
* stress/eval-func-decl-in-global.js: Added.
(assert):
(assertThrow):
* stress/eval-func-decl-in-if.js: Added.
(assert):
* stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(foobar):
(hoo):
(joo):
(koo):
(loo):
* stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
* stress/variable-under-tdz-eval-tricky.js:
(assert):
* test262.yaml:
2017-04-27 Mark Lam <mark.lam@apple.com>
Fix some RELEASE_ASSERT failures caused by OutOfMemoryErrors.
https://bugs.webkit.org/show_bug.cgi?id=171404
<rdar://problem/31876178>
Reviewed by Saam Barati.
* stress/js-fixed-array-out-of-memory.js: Added.
2017-04-27 David Kilzer <ddkilzer@apple.com>
Enhance shouldBe()/shouldNotBe() to accept anonymous function arguments
<https://webkit.org/b/171362>
<rdar://problem/31867686>
Reviewed by Joseph Pecoraro.
* stress/resources/standalone-pre.js:
(shouldBe):
(shouldNotThrow):
(shouldThrow):
- Update shouldBe() to accept anonymous function arguments.
(The shouldNotBe() function was never copied over.)
- Also fix shouldThrow()/shouldNotThrow() to accept anonymous
function arguments (which were missed in r202609 for Bug
159232).
2017-04-27 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Handle PhantomSpread in LoadVarargs as the same to the others
https://bugs.webkit.org/show_bug.cgi?id=171262
Reviewed by Saam Barati.
* stress/spread-outer-create-rest.js: Added.
(assert):
(foo):
(bar):
(baz):
2017-04-26 Saam Barati <sbarati@apple.com>
Print Wasm function index in stack trace
https://bugs.webkit.org/show_bug.cgi?id=171349
Reviewed by JF Bastien.
* wasm/function-tests/stack-trace.js: Added.
(import.Builder.from.string_appeared_here.assert):
(let.imp):
* wasm/function-tests/trap-after-cross-instance-call.js:
(wasmFrameCountFromError):
* wasm/function-tests/trap-load-2.js:
(wasmFrameCountFromError):
* wasm/function-tests/trap-load.js:
(wasmFrameCountFromError):
2017-04-26 Saam Barati <sbarati@apple.com>
ASSERTION FAILED: inIndex != notFound in JSC::invalidParameterInSourceAppender()
https://bugs.webkit.org/show_bug.cgi?id=170924
<rdar://problem/31721052>
Reviewed by Mark Lam.
* stress/error-message-for-function-base-not-found.js: Added.
(assert):
(throw.new.Error):
* stress/error-messages-for-in-operator-should-not-crash.js: Added.
(catch):
2017-04-26 Keith Miller <keith_miller@apple.com>
WebAssembly: Implement tier up
https://bugs.webkit.org/show_bug.cgi?id=170134
Reviewed by Filip Pizlo.
* wasm/function-tests/trap-after-cross-instance-call.js:
* wasm/tier-up/js-to-wasm.js: Added.
(async.test):
* wasm/tier-up/wasm-to-wasm.js: Added.
(async.test):
2017-04-26 Caitlin Potter <caitp@igalia.com>
[JSC] Object.keys() must discard property names with no PropertyDescriptor
https://bugs.webkit.org/show_bug.cgi?id=171291
Reviewed by Yusuke Suzuki.
* es6/Proxy_ownKeys_duplicates.js:
* stress/proxy-own-keys.js:
(let.handler.getOwnPropertyDescriptor):
(let.handler.ownKeys):
2017-04-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r215476.
https://bugs.webkit.org/show_bug.cgi?id=171304
"It broke JSBench" (Requested by saamyjoon on #webkit).
Reverted changeset:
"[ES6]. Implement Annex B.3.3 function hoisting rules for
eval"
https://bugs.webkit.org/show_bug.cgi?id=163208
http://trac.webkit.org/changeset/215476
2017-04-25 Saam Barati <sbarati@apple.com>
JSArray::isArrayPrototypeIteratorProtocolFastAndNonObservable is wrong because it does not do the necessary checks on the base object
https://bugs.webkit.org/show_bug.cgi?id=171150
<rdar://problem/31771880>
Reviewed by Sam Weinig.
* stress/spread-optimized-properly.js: Added.
(assert):
(test):
(shallowEq):
(makeArrayIterator):
(test.bar):
(test.callback):
(test.arr.__proto__.Symbol.iterator):
(test.arr.Symbol.iterator):
(test.get bar):
(test.hackedNext):
(test.test):
(test.):
2017-04-25 Mark Lam <mark.lam@apple.com>
[Follow up] Array.prototype.slice() should ensure that end >= begin.
https://bugs.webkit.org/show_bug.cgi?id=170989
<rdar://problem/31705652>
Not reviewed.
Follow up to rename a test file that was accidentally named wrongly.
* stress/regress-170989.js: Copied from JSTests/stress/regress-170989.patch.
* stress/regress-170989.patch: Removed.
2017-04-25 Mark Lam <mark.lam@apple.com>
Array.prototype.slice() should ensure that end >= begin.
https://bugs.webkit.org/show_bug.cgi?id=170989
<rdar://problem/31705652>
Reviewed by Saam Barati.
* stress/regress-170989.patch: Added.
2017-04-25 Mark Lam <mark.lam@apple.com>
Local CSE wrongly CSEs array accesses with different result types.
https://bugs.webkit.org/show_bug.cgi?id=170990
<rdar://problem/31705945>
Reviewed by Saam Barati.
* stress/regress-170990.js: Added.
2017-04-25 Yusuke Suzuki <utatane.tea@gmail.com>
WebAssembly: exporting a property with a name that's a number doesn't work
https://bugs.webkit.org/show_bug.cgi?id=168857
Reviewed by JF Bastien.
r213453 allows Wasm instances to expose indexed properties. We activate the tests.
* wasm/js-api/test_Instance.js:
(ExportedNumber):
2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
https://bugs.webkit.org/show_bug.cgi?id=171190
Reviewed by Saam Barati.
* stress/async-await-syntax.js:
* test262.yaml:
2017-04-24 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use JSFixedArray directly when using call_varargs
https://bugs.webkit.org/show_bug.cgi?id=171057
Reviewed by Saam Barati.
* stress/spread-capture-rest.js: Added.
(shouldBe):
(capture):
(a):
(b):
* stress/spread-multi-layers.js: Added.
(shouldBe):
(a):
(b):
(c):
(d):
* stress/spread-non-varargs.js: Added.
(shouldBe):
(a):
(b):
2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
https://bugs.webkit.org/show_bug.cgi?id=170897
Reviewed by Saam Barati.
* test262.yaml:
2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
Address some FIXMEs in JavaScript tests for bugs that have been fixed
https://bugs.webkit.org/show_bug.cgi?id=171191
Reviewed by JF Bastien.
* stress/proxy-is-extensible.js:
2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
https://bugs.webkit.org/show_bug.cgi?id=171160
Reviewed by JF Bastien.
* stress/inferred-names.js:
* test262.yaml:
2017-04-24 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/expressions/generators/yield-as-label.js
https://bugs.webkit.org/show_bug.cgi?id=170979
Reviewed by Saam Barati.
* stress/async-await-module-reserved-word.js:
* stress/async-await-reserved-word.js:
Converge on "Cannot" instead of "Can't".
* catch-parameter-syntax.js:
* yield-named-variable-generator.js:
* yield-named-variable.js:
* stress/yield-label-generator.js:
* stress/yield-label.js:
* stress/yield-reserved-word.js: Added.
More complete list of when 'yield' is allowed.
* ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
* test262.yaml:
2017-04-23 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r215674.
https://bugs.webkit.org/show_bug.cgi?id=171212
Possible unintended commit. This patch was on the wrong bug.
(Requested by JoePeck on #webkit).
Reverted changeset:
"test262: test262/test/language/expressions/generators/yield-
as-label.js"
https://bugs.webkit.org/show_bug.cgi?id=170979
http://trac.webkit.org/changeset/215674
2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
https://bugs.webkit.org/show_bug.cgi?id=171197
Reviewed by Saam Barati.
* test262.yaml:
2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/expressions/generators/yield-as-label.js
https://bugs.webkit.org/show_bug.cgi?id=170979
Reviewed by Saam Barati.
* stress/async-await-module-reserved-word.js:
* stress/async-await-reserved-word.js:
Converge on "Cannot" instead of "Can't".
* catch-parameter-syntax.js:
* yield-named-variable-generator.js:
* yield-named-variable.js:
* stress/yield-label-generator.js:
* stress/yield-label.js:
* stress/yield-reserved-word.js: Added.
More complete list of when 'yield' is allowed.
* ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
* test262.yaml:
2017-04-23 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Number/parseFloat.js
https://bugs.webkit.org/show_bug.cgi?id=171193
Reviewed by Yusuke Suzuki.
* test262.yaml:
2017-04-22 JF Bastien <jfbastien@apple.com>
WebAssembly: Module.exports, Module.imports, Module.customSections are wrong
https://bugs.webkit.org/show_bug.cgi?id=171078
Reviewed by Saam Barati.
They're static properties of Module, not instance properties of a module.
https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymoduleexports
* wasm/js-api/Module.customSection.js:
(assert.throws.WebAssembly.Module.customSections):
(assert.eq):
(assert.throws.WebAssembly.Module.prototype.customSections): Deleted.
* wasm/js-api/Module.exports.js:
(assert.throws.WebAssembly.Module.exports):
(assert.truthy):
(assert.throws.WebAssembly.Module.prototype.exports): Deleted.
* wasm/js-api/Module.imports.js:
(assert.throws.WebAssembly.Module.imports):
(assert.truthy):
(assert.throws.WebAssembly.Module.prototype.imports): Deleted.
2017-04-21 JF Bastien <jfbastien@apple.com>
Silence noisy test
Unreviewed, Fil / Michael and I talked about it in the corridor. I
just forgot to set verbose to false before commit.
* wasm/stress/oom.js:
2017-04-20 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC][FTL] FTL should support Arrayify
https://bugs.webkit.org/show_bug.cgi?id=169596
Reviewed by Saam Barati.
* stress/arrayify.js: Added.
(arrayifyInt32):
(arrayifyDouble):
(arrayifyContiguous):
2017-04-20 Mark Lam <mark.lam@apple.com>
virtualThunkFor() needs to materialize its of tagMaskRegister for tail calls.
https://bugs.webkit.org/show_bug.cgi?id=171079
<rdar://problem/31684756>
Reviewed by Saam Barati.
* stress/regress-171079.js: Added.
2017-04-15 Filip Pizlo <fpizlo@apple.com>
Optimize SharedArrayBuffer in the DFG+FTL
https://bugs.webkit.org/show_bug.cgi?id=164108
Reviewed by Saam Barati.
Added a fairly comprehensive test of the intrinsics. This creates a function for each possible
combination of type and operation, and then first uses it nicely and then tries a bunch of
erroneous conditions like OOB.
* stress/SharedArrayBuffer-opt.js: Added.
(string_appeared_here.switch):
(string_appeared_here.str):
(runAtomic):
(shouldFail):
(Symbol):
(string_appeared_here.a.of.arrays.m.of.atomics):
* stress/SharedArrayBuffer.js:
2017-04-19 Mark Lam <mark.lam@apple.com>
B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
https://bugs.webkit.org/show_bug.cgi?id=170973
<rdar://problem/30318657>
Reviewed by Filip Pizlo.
* stress/regress-170973.js: Added.
2017-04-19 JF Bastien <jfbastien@apple.com>
WebAssembly: limit slow memories
https://bugs.webkit.org/show_bug.cgi?id=170825
Reviewed by Saam Barati.
* wasm.yaml:
* wasm/stress/oom.js: Added.
(try.true.WebAssemblyMemoryMode):
(catch):
2017-04-19 JF Bastien <jfbastien@apple.com>
WebAssembly: don't expose any WebAssembly JS object if JIT is off
https://bugs.webkit.org/show_bug.cgi?id=170782
Reviewed by Saam Barati.
* wasm.yaml:
* wasm/noJIT/noJIT.js: Added.
2017-04-18 Mark Lam <mark.lam@apple.com>
r211670 broke double to int conversion.
https://bugs.webkit.org/show_bug.cgi?id=170961
<rdar://problem/31687696>
Reviewed by Yusuke Suzuki.
* microbenchmarks/double-to-int32.js: Added.
* stress/to-int32-sensible2.js: Added.
2017-04-18 Oleksandr Skachkov <gskachkov@gmail.com>
[ES6]. Implement Annex B.3.3 function hoisting rules for eval
https://bugs.webkit.org/show_bug.cgi?id=163208
Reviewed by Saam Barati.
* stress/eval-func-decl-block-scoping-reassign.js: Added.
(assert):
(throw.new.Error.f):
(throw.new.Error):
* stress/eval-func-decl-block-with-remove.js: Added.
(assert):
(foo.boo):
(foo):
* stress/eval-func-decl-block-with-var-and-remove.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(joo):
(koo):
* stress/eval-func-decl-block-with-var-sinthesize.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(hoo):
(joo):
(koo):
* stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
* stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
* stress/eval-func-decl-in-eval-within-with-scope.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(boo.let.val2):
(boo.let.val3):
* stress/eval-func-decl-in-frozen-global.js: Added.
(assert):
(assertThrow):
(throw.new.Error):
(Object.freeze):
* stress/eval-func-decl-in-global-of-eval.js: Added.
(assert):
(assertThrow):
(bar):
(baz):
(foobar):
* stress/eval-func-decl-in-global.js: Added.
(assert):
(assertThrow):
* stress/eval-func-decl-in-if.js: Added.
(assert):
* stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(foobar):
(hoo):
(joo):
(koo):
(loo):
* stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
* stress/variable-under-tdz-eval-tricky.js:
(assert):
* test262.yaml:
2017-04-18 Filip Pizlo <fpizlo@apple.com>
wasm/function-tests/memory-multiagent times out sometimes
https://bugs.webkit.org/show_bug.cgi?id=170958
Reviewed by Keith Miller.
Add the ability to skip tests easily. Skip the test.
* wasm.yaml:
* wasm/function-tests/memory-multiagent.js:
2017-04-18 Saam Barati <sbarati@apple.com>
Follow up to debug build stack overflow in test after r215453
Rubber stamped by Mark Lam.
* stress/call-apply-exponential-bytecode-size.js: Decrease the call
size to prevent stack overflow errors on debug builds.
2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
https://bugs.webkit.org/show_bug.cgi?id=170943
Reviewed by Geoffrey Garen.
* microbenchmarks/number-to-string-with-add-empty.js: Added.
(toStringLeft):
(toStringRight):
* microbenchmarks/number-to-string-with-add-in-loop.js: Added.
(toStringLeft):
(toStringRight):
* microbenchmarks/number-to-string-with-add.js: Added.
(toStringLeft):
(toStringRight):
* stress/number-to-string-with-add.js: Added.
(shouldBe):
(toStringRight):
(toStringLeftEmpty):
(toStringRightEmpty):
2017-04-18 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
https://bugs.webkit.org/show_bug.cgi?id=170940
Reviewed by Filip Pizlo.
* microbenchmarks/for-of-array.js: Added.
(fn):
2017-04-17 Saam Barati <sbarati@apple.com>
BytecodeGenerator ".call" and ".apply" is exponential in nesting depth
https://bugs.webkit.org/show_bug.cgi?id=139847
<rdar://problem/19321122>
Reviewed by Oliver Hunt.
* stress/call-apply-exponential-bytecode-size.js: Added.
(assert):
(const.inc):
(const.inc2):
(bar):
(randomApplyOrCall):
(baz):
(jaz):
(haz):
(foo):
2017-04-17 Mark Lam <mark.lam@apple.com>
JSArray::appendMemcpy() needs to handle copying from Undecided indexing type too.
https://bugs.webkit.org/show_bug.cgi?id=170896
<rdar://problem/31651319>
Reviewed by JF Bastien and Keith Miller.
* stress/regress-170896.js: Added.
2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Object/prototype/toLocaleString/primitive_this_value.js
https://bugs.webkit.org/show_bug.cgi?id=170882
Reviewed by Saam Barati.
* test262.yaml:
2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/isNaN/toprimitive-not-callable-throws.js
https://bugs.webkit.org/show_bug.cgi?id=170888
Reviewed by Saam Barati.
* stress/computed-accessor.js:
* stress/eval-in-arrow-function.js:
* stress/rest-elements.js:
* stress/string-object-define-own-property.js:
Remove unused shouldThrow.
* stress/symbol-toprimitive-errors.js: Added.
Check for ToPrimitive TypeErrors.
* test262.yaml:
2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/expressions/tagged-template/template-object.js
https://bugs.webkit.org/show_bug.cgi?id=170878
Reviewed by Saam Barati.
* stress/array-length-not-writable.js: Added.
(assert):
* test262.yaml:
2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js
https://bugs.webkit.org/show_bug.cgi?id=170879
Reviewed by Saam Barati.
* ChakraCore/test/es5/enumerable.baseline-jsc:
* test262.yaml:
2017-04-16 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Date/prototype/Symbol.toPrimitive/name.js
https://bugs.webkit.org/show_bug.cgi?id=170884
Reviewed by Yusuke Suzuki.
* test262.yaml:
2017-04-15 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/global-code/new.target-arrow.js
https://bugs.webkit.org/show_bug.cgi?id=170872
Reviewed by Saam Barati.
* stress/async-arrow-functions-lexical-new.target-binding.js:
(shouldThrowAsync): Deleted.
(shouldThrowAsync.async): Deleted.
This code should have thrown a SyntaxError. Instead it was throwing
a ReferenceError for the internal @newTargetLocal variable.
* stress/new-target-syntax-errors.js:
Cover the arrow function in global code cases.
* ChakraCore.yaml:
* ChakraCore/test/es6/globalLambdaNewTargetSyntaxError.baseline-jsc:
We now pass with an expected SyntaxError. Our error message is different.
* test262.yaml:
2017-04-14 Saam Barati <sbarati@apple.com>
ParseInt intrinsic in DFG backend doesn't properly flush its operands
https://bugs.webkit.org/show_bug.cgi?id=170865
Reviewed by Mark Lam and Geoffrey Garen.
* stress/parse-int-intrinsic-dfg-backend-flush.js: Added.
(assert):
(foo):
2017-04-14 Caitlin Potter <caitp@igalia.com>
[JSC] use ExpressionErrorClassifier for AwaitExpression operand
https://bugs.webkit.org/show_bug.cgi?id=170844
Reviewed by Saam Barati.
* stress/regress-170732.js: Added.
2017-04-14 Oleksandr Skachkov <gskachkov@gmail.com>
Safari 10.1 JSON.parse returns incorrect object for numeric keys with decimal values
https://bugs.webkit.org/show_bug.cgi?id=170442
Reviewed by Yusuke Suzuki.
* stress/object-number-properties.js:
2017-04-13 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Date.parse should accept wider range of representation
https://bugs.webkit.org/show_bug.cgi?id=170720
Reviewed by Darin Adler.
* stress/date-relaxed.js: Added.
(shouldBe):
(throw.new.Error):
2017-04-13 Mark Lam <mark.lam@apple.com>
Should use flushDirect() when flushing the scopeRegister due to needsScopeRegister().
https://bugs.webkit.org/show_bug.cgi?id=170661
<rdar://problem/31579046>
Reviewed by Filip Pizlo.
* stress/regress-170661.js: Added.
2017-04-13 JF Bastien <jfbastien@apple.com>
WebAssembly: manage memory better
https://bugs.webkit.org/show_bug.cgi?id=170628
Reviewed by Keith Miller, Michael Saboff.
* wasm/Builder.js: move a helper out so tests can use it
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/WASM.js: add utilities to classify opcodes
(export.opcodes):
(export.const.memoryAccessInfo.op.const.sign):
* wasm/function-tests/memory-access-past-4gib.js: Added. This test
fails before this patch.
(const.op.of.WASM.opcodes):
* wasm/function-tests/memory-many.js: Added. This simple tests
just shouldn't crash. In verbose mode it's useful at determining
if the GC falls behind or not.
* wasm/function-tests/memory-multiagent.js: Added. Emulate postMessage.
(const.startAgents.numAgentsToStart.a.agent.receiveBroadcast):
(const.startAgents.numAgentsToStart.a.write.const.idx.Math.random):
(const.broadcastToAgents):
* wasm/js-api/extension-MemoryMode.js: verbose logging.
(testMemoryNoMax):
(testMemory):
(testInstanceNoMemory):
(testInstanceNoMax):
(testInstance):
* wasm/utilities.js: move a utility here.
2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/NativeErrors/EvalError/proto.js
https://bugs.webkit.org/show_bug.cgi?id=170668
Reviewed by Keith Miller.
* ChakraCore.yaml:
* ChakraCore/test/Lib/error.baseline-jsc: Added.
This test does not match the spec.
* test262.yaml:
2017-04-12 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/language/literals/regexp/u-dec-esc.js
https://bugs.webkit.org/show_bug.cgi?id=170687
Reviewed by Michael Saboff.
* test262.yaml:
2017-04-11 Michael Saboff <msaboff@apple.com>
Implement Object.isFrozen() and Object.isSealed() per ECMA spec
https://bugs.webkit.org/show_bug.cgi?id=170753
Reviewed by Mark Lam.
Added JSC baseline and enabled defineIndexProperty test.
Note that JSC differs from Chakra in that a JSC doesn't use indexed
properties placed on the Array prototype when sorting the indexed
properties of an Object. This is behavior is considered undefined
in the standard.
* ChakraCore.yaml:
* ChakraCore/test/es5/defineIndexProperty.baseline-jsc: Added.
2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/annexB/language/comments/multi-line-html-close.js
https://bugs.webkit.org/show_bug.cgi?id=170648
Reviewed by Keith Miller.
* test262.yaml:
2017-04-11 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/built-ins/Array/S15.4.3_A2.2.js
https://bugs.webkit.org/show_bug.cgi?id=170652
Reviewed by Michael Saboff.
* stress/native-constructors-length.js: Added.
(assertLengthDescriptorAttributes):
Add a quick test for the length properties of all native constructors.
* ChakraCore/test/es5/enumerable.baseline-jsc:
Rebaseline expectations for this test.
* test262.yaml:
2017-04-10 Keith Miller <keith_miller@apple.com>
WebAssembly: Update spec tests
https://bugs.webkit.org/show_bug.cgi?id=170683
Rubber-stamped by JF Bastien.
* wasm.yaml:
* wasm/spec-tests/br_table.wast.js:
* wasm/spec-tests/conversions.wast.js: Removed.
* wasm/spec-tests/f32_bitwise.wast.js: Added.
* wasm/spec-tests/f32_cmp.wast.js:
* wasm/spec-tests/f64_bitwise.wast.js: Added.
* wasm/spec-tests/f64_cmp.wast.js:
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/spec-tests/int_exprs.wast.js:
* wasm/spec-tests/memory.wast.js:
2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/annexB/language/expressions/object/__proto__-fn-name.js
https://bugs.webkit.org/show_bug.cgi?id=170650
Reviewed by Saam Barati.
* stress/inferred-names.js:
* test262.yaml:
2017-04-09 Joseph Pecoraro <pecoraro@apple.com>
test262: test262/test/annexB/language/literals/regexp/identity-escape.js
https://bugs.webkit.org/show_bug.cgi?id=170651
Reviewed by Saam Barati.
* test262.yaml:
2017-04-07 Michael Saboff <msaboff@apple.com>
Fix and enable ChakraCore/test/es6/ES6Function_bugs.js after r215072
https://bugs.webkit.org/show_bug.cgi?id=170580
Reviewed by JF Bastien.
Commented out subtest that expects defineProperty("length") to a getter on a
sealed function shouldn't throw.
* ChakraCore.yaml:
* ChakraCore/test/es6/ES6Function_bugs.js:
2017-04-06 Michael Saboff <msaboff@apple.com>
Cannot Object.seal() or Object.freeze() global "this"
https://bugs.webkit.org/show_bug.cgi?id=170549
Reviewed by Mark Lam.
Enabled failing tests fixed by the corresponding code change:
ChakraCore/test/LetConst/delete.js
ChakraCore/test/LetConst/dop.js
ChakraCore/test/LetConst/dop1.js
* ChakraCore.yaml:
* ChakraCore/test/LetConst/dop.baseline-jsc: Added JSC specific expected output.
* ChakraCore/test/LetConst/dop1.baseline-jsc: Added JSC specific expected output.
2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
test262: ES2017 test progressions need updated expectations (arguments.caller removed)
https://bugs.webkit.org/show_bug.cgi?id=170536
Reviewed by Mark Lam.
* test262.yaml:
After r208867 the tests are out of date and are now expected to fail.
2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
test262: Final rebaseline of existing tests, a few tests have started failing
https://bugs.webkit.org/show_bug.cgi?id=170538
Reviewed by Mark Lam.
* test262.yaml:
These tests started failing a while ago. Mark them as legitmate failures.
2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
test262: Rebaseline expectations for now passing tests
https://bugs.webkit.org/show_bug.cgi?id=170532
Reviewed by Ryosuke Niwa.
* test262.yaml:
Update expectations for tests we are now passing.
2017-04-05 Joseph Pecoraro <pecoraro@apple.com>
test262: module test progressions need updated expectations (@@iterator changes)
https://bugs.webkit.org/show_bug.cgi?id=170535
Reviewed by Saam Barati.
* test262.yaml:
After r212430 the tests are out of date and are now expected to fail.
2017-04-05 Michael Saboff <msaboff@apple.com>
Unreviewed rollout of r214642 as the test still intermittently fails.
Disabled ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js.
* ChakraCore.yaml:
2017-04-05 Michael Saboff <msaboff@apple.com>
REGRESSION (Safari 10.1): Inserting elements into arrays fails when array contains very large numbers
https://bugs.webkit.org/show_bug.cgi?id=170264
<rdar://problem/31375593>
Rubber-stamped by Saam Barati.
The original bug was fixed in: https://trac.webkit.org/changeset/214714
I'm just adding another test for good measure.
* stress/double-array-to-array-storage.js: Added.
(assert):
2017-04-05 Keith Miller <keith_miller@apple.com>
WebAssembly: We shouldn't need to pin size registers if we have a fast memory.
https://bugs.webkit.org/show_bug.cgi?id=170504
Reviewed by Mark Lam.
* wasm/function-tests/trap-after-cross-instance-call.js: Added.
(b.new.WebAssembly.Memory):
(importObject.foo.bar):
(wasmFrameCountFromError):
2017-03-16 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Generate TemplateObjects at linking time
https://bugs.webkit.org/show_bug.cgi?id=169743
Reviewed by Keith Miller.
* stress/template-string-tags-eval.js: Added.
(shouldBe):
(tag):
2017-04-04 Mark Lam <mark.lam@apple.com>
On ARM64, DFG::SpeculativeJIT::compileArithMod() failed to ensure result is of DataFormatInt32.
https://bugs.webkit.org/show_bug.cgi?id=170473
<rdar://problem/29912391>
Reviewed by Saam Barati.
* stress/regress-170473.js: Added.
2017-04-03 Mark Lam <mark.lam@apple.com>
Fix incorrect capacity delta calculation reported in SparseArrayValueMap::add().
https://bugs.webkit.org/show_bug.cgi?id=170412
<rdar://problem/29697336>
Reviewed by Filip Pizlo.
* stress/regress-170412.js: Added.
2017-04-03 Keith Miller <keith_miller@apple.com>
WebAssembly: Update spec tests
https://bugs.webkit.org/show_bug.cgi?id=170361
Rubber-stamped by Saam Barati.
Update the spec tests to run tests generated by the newer spec
test builder wasm-spec/test/builder.py. This patch also adds the
necessary harness code in spec-harness.js so we can run the tests.
* wasm.yaml:
* wasm/import-spec-tests.rb:
* wasm/spec-harness.js: Added.
(import.string_appeared_here.then):
(test):
(promise_test):
(let.assert_unreached):
* wasm/spec-harness/index.js: Added.
(let.testNum):
(assertThrows):
(_assert):
(ValueResult):
(ErrorResult):
(Result.prototype.isError):
(binary):
(module):
(uniqueTest):
(assert_invalid):
(assert_soft_invalid):
(register):
(call):
(get instance):
(exports):
(run):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(try.f):
(catch):
(assert_exhaustion):
(assert_return):
(assert_return_nan):
* wasm/spec-harness/testharness.css: Added.
(html):
(#log .warning,):
(#log .error,):
(section#summary):
(table#results):
(table#results th:first-child,):
(table#results th:last-child,):
(table#results.assertions th:last-child,):
(table#results th):
(table#results td):
(tr.pass > td:first-child):
(tr.fail > td:first-child):
(tr.timeout > td:first-child):
(tr.notrun > td:first-child):
(.pass > td:first-child, .fail > td:first-child, .timeout > td:first-child, .notrun > td:first-child):
(table#results span):
(table#results span.expected):
(table#results span.actual):
(span.ok):
(tr.error):
(span.timeout):
(span.ok, span.timeout, span.error):
* wasm/spec-harness/testharness.js: Added.
(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.on_tests_ready):
(WindowTestEnvironment.prototype.setup_messages):
(WindowTestEnvironment.prototype.next_default_test_name):
(WindowTestEnvironment.prototype.on_new_harness_properties):
(WindowTestEnvironment.prototype.add_on_loaded_callback):
(WindowTestEnvironment.prototype.test_timeout):
(WindowTestEnvironment.prototype.global_scope):
(WorkerTestEnvironment):
(WorkerTestEnvironment.prototype._dispatch):
(WorkerTestEnvironment.prototype._add_message_port):
(WorkerTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.on_new_harness_properties):
(WorkerTestEnvironment.prototype.on_tests_ready):
(WorkerTestEnvironment.prototype.add_on_loaded_callback):
(WorkerTestEnvironment.prototype.test_timeout):
(WorkerTestEnvironment.prototype.global_scope):
(DedicatedWorkerTestEnvironment):
(DedicatedWorkerTestEnvironment.prototype.on_tests_ready):
(SharedWorkerTestEnvironment):
(SharedWorkerTestEnvironment.prototype.on_tests_ready):
(ServiceWorkerTestEnvironment):
(ServiceWorkerTestEnvironment.prototype.add_on_loaded_callback):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(async_test):
(promise_test):
(this.wait_for):
(EventWatcher):
(setup):
(done):
(generate_tests):
(step_timeout):
(truncate):
(is_node):
(format_value):
* wasm/spec-harness/testharnessreport.js: Added.
* wasm/spec-harness/wasm-constants.js: Added.
(bytes):
(bytesWithHeader):
(makeSig):
(makeSig_v_x):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(assertTraps):
(assertWasmThrows):
* wasm/spec-harness/wasm-module-builder.js: Added.
(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(Binary):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addFunctionTableInit):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setFunctionTableLength):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.instantiate):
* wasm/spec-harness/wast.js: Added.
(normalize):
(require.else._registry.name):
(require):
(add_hex_char):
(add_char):
(string_with):
(list_of_opt):
(break_bytes.f):
(break_bytes):
(f):
(decls):
(func_type):
(limits):
(global_type):
(testop):
(relop):
(unop):
(binop):
(cvtop):
(oper):
(mem_size):
(extension):
(memop):
(storeop):
(var):
(constop):
(instr.else.switch.case.0.f):
(instr.else.switch.case.1.f.1):
(instr.else.switch.case.2.f.2):
(instr):
(func_with_name):
(func):
(start):
(table):
(memory):
(segment):
(elems):
(data):
(typedef):
(import_kind):
(import):
(export_kind):
(export):
(var_opt):
(is_func_import):
(is_table_import):
(is_memory_import):
(is_global_import):
(f.1):
(f.2):
(f.3):
(module_with_var_opt):
(module_):
(literal):
(definition):
(access):
(action):
(script):
(_registry.string_appeared_here):
(init):
(make_matrix):
(copy):
(append):
(sub):
(fill):
(blit):
(iter):
(map):
(iteri):
(mapi):
(to_list):
(list_length):
(of_list):
(fold_left):
(fold_right):
(maxson):
(trickle):
(bubble):
(trickleup):
(sort):
(merge):
(isortto):
(sortto):
(stable_sort):
(import_type):
(export_type):
(dims.n):
(dims.d.i):
(dims):
(map_file):
(create):
(of_array):
(slice_left):
(slice_right):
(slice_left_1):
(slice_right_1):
(slice_left_2):
(slice_right_2):
(array1_of_genarray):
(array2_of_genarray):
(array3_of_genarray):
(reshape_1):
(reshape_2):
(reshape_3):
(reshape):
(__):
(contents):
(to_bytes):
(nth):
(length):
(clear):
(reset):
(resize):
(add_substring):
(add_subbytes):
(add_string):
(add_bytes):
(add_buffer):
(add_channel):
(output_buffer):
(closing):
(advance_to_closing):
(advance_to_non_alpha):
(find_ident):
(add_substitute):
(make):
(to_string):
(of_string):
(sub_string):
(extend):
(blit_string):
(concat):
(cat):
(is_space):
(trim):
(escaped):
(uppercase):
(lowercase):
(apply1):
(capitalize):
(uncapitalize):
(index_rec):
(index):
(index_from):
(rindex_rec):
(rindex):
(rindex_from):
(contains_from):
(contains):
(rcontains_from):
(caml_array_sub):
(len):
(caml_array_concat):
(caml_make_vect):
(caml_array_blit):
(get if):
(caml_set_oo_id):
(get_id):
(caml_int32_float_of_bits):
(caml_int32_bits_of_float):
(caml_classify_float):
(caml_modf_float):
(caml_ldexp_float):
(caml_frexp_float):
(caml_copysign_float):
(caml_expm1_float):
(caml_hypot_float):
(caml_log10_float):
(caml_failwith):
(parse_digit):
(int_of_string_base):
(parse_sign_and_base):
(caml_int_of_string.aux):
(caml_int_of_string):
(caml_int64_of_string.aux):
(caml_int64_of_string):
(int_of_base):
(parse_format):
(finish_formatting):
(caml_format_int):
(caml_int64_format):
(caml_format_float):
(float_of_string):
(div):
(mod_):
(caml_bswap16):
(caml_int32_bswap):
(imul):
(neg_signed):
(not):
(eq):
(neg):
(lsl_):
(lsr_):
(asr_):
(is_zero):
(mul):
(swap):
(xor):
(or_):
(and_):
(ge):
(lt):
(gt):
(le):
(to_float):
(of_float):
(div_mod):
(compare):
(of_int32):
(to_int32):
(to_hex.aux):
(to_hex):
(discard_sign):
(float_of_bits):
(bits_of_float.to_nat):
(bits_of_float):
(get64):
(erase_rel):
(concat_fmtty):
(concat_fmt):
(create_char_set):
(add_in_char_set):
(rev_char_set):
(is_in_char_set):
(prec_of_prec_opt):
(param_format_of_ignored_format):
(buffer_check_size):
(buffer_add_char):
(buffer_add_string):
(buffer_contents):
(char_of_iconv):
(char_of_fconv):
(char_of_counter):
(print_char):
(set while.set var):
(set while.set else):
(set var):
(set else):
(set print_char):
(set if):
(bprint_padty):
(bprint_ignored_flag):
(bprint_pad_opt):
(bprint_padding):
(bprint_precision):
(bprint_iconv_flag):
(bprint_int_fmt):
(bprint_altint_fmt):
(bprint_fconv_flag):
(bprint_float_fmt):
(string_of_formatting_lit):
(string_of_formatting_gen):
(bprint_char_literal):
(bprint_string_literal):
(bprint_fmtty):
(int_of_custom_arity):
(bprint_fmt):
(string_of_fmt):
(symm):
(fmtty_rel_det):
(trans):
(fmtty_of_formatting_gen):
(fmtty_of_fmt):
(fmtty_of_custom):
(fmtty_of_padding_fmtty):
(fmtty_of_precision_fmtty):
(type_padding):
(type_padprec):
(type_ignored_param_one):
(type_format_gen):
(type_ignored_format_substitution):
(type_format):
(recast):
(fix_padding):
(fix_int_precision):
(string_to_caml_string):
(format_of_iconv):
(format_of_aconv):
(format_of_fconv):
(convert_int):
(convert_int32):
(convert_nativeint):
(convert_int64):
(else.is_valid):
(convert_float):
(format_caml_char):
(string_of_fmtty):
(else.switch.):
(else.switch.k.prime):
(else.switch.else.):
(else.switch.else.k.prime.1):
(make_printf):
(make_from_fmtty):
(make_invalid_arg):
(make_string_padding):
(make_int_padding_precision):
(make_custom):
(output_acc):
(bufput_acc):
(strput_acc):
(failwith_message.k):
(failwith_message):
(open_box_of_string.else.invalid_box):
(open_box_of_string.else.parse_spaces):
(open_box_of_string.else.parse_lword):
(open_box_of_string.else.parse_int):
(open_box_of_string):
(make_padding_fmt_ebb):
(make_precision_fmt_ebb):
(make_padprec_fmt_ebb):
(invalid_format_message):
(invalid_format_without):
(expected_character):
(compute_int_conv):
(incompatible_flag):
(parse_positive):
(parse_conv):
(parse_after_precision):
(else.parse_literal):
(parse_after_padding):
(parse_literal):
(parse_after_at):
(add_literal):
(parse_spaces):
(parse_integer):
(compute_float_conv):
(search_subformat_end):
(check_no_0):
(opt_of_pad):
(get_prec_opt):
(else.switch.case.99.char_format):
(else.switch.scan_format):
(parse_conversion):
(set_flag):
(parse_flags):
(is_int_base):
(counter_of_char):
(add_range):
(fail_single_percent):
(parse_char_set_after_char):
(parse_char_set_content):
(parse_char_set_start):
(parse_char_set):
(check_open_box):
(parse_tag):
(fmt_ebb_of_string):
(format_of_string_fmtty):
(format_of_string_format):
(caret):
(caml_ml_open_descriptor_in):
(caml_ml_open_descriptor_out):
(caml_ml_flush):
(node_std_output):
(caml_ml_output_char):
(caml_ml_input):
(caml_ml_input_char):
(caml_ml_out_channels_list):
(fail):
(caml_lex_array):
(caml_lex_engine):
(caml_lex_run_mem):
(caml_lex_run_tag):
(caml_new_lex_engine):
(caml_obj_dup):
(caml_obj_truncate):
(caml_lazy_make_forward):
(caml_update_dummy):
(caml_int_compare):
(caml_compare):
(caml_equal):
(caml_notequal):
(caml_greaterequal):
(caml_lessequal):
(else.aux):
(caml_get_public_method):
(caml_parse_engine):
(caml_set_parser_trace):
(js_string_of_char):
(caml_string_get):
(caml_create_string):
(caml_string_compare):
(caml_fill_string):
(caml_blit_string):
(caml_blit_bytes):
(bytes_of_string):
(bytes_to_string):
(caml_string_of_char_array):
(caml_is_printable):
(caml_string_get16):
(caml_string_get32):
(repeat):
(chr):
(app):
(js):
(curry_1):
(_1):
(js1):
(__1):
(curry_2):
(_2):
(js2):
(__2):
(curry_3):
(_3):
(js3):
(__3):
(curry_4):
(_4):
(js4):
(__4):
(curry_5):
(_5):
(js5):
(__5):
(curry_6):
(_6):
(js6):
(__6):
(curry_7):
(_7):
(js7):
(__7):
(curry_8):
(_8):
(js8):
(__8):
(stream):
(eos):
(skip):
(read):
(peek):
(string_of_byte):
(position):
(region):
(error):
(guard):
(get 1):
(get expect):
(get illegal):
(at):
(u32):
(u64):
(get require):
(vuN):
(get var):
(vsN):
(vu32):
(vs32):
(vs64):
(f32):
(f64):
(len32):
(string):
(opt):
(vec):
(sized):
(value_type):
(elem_type):
(stack_type):
(table_type):
(memory_type):
(mutability.get if):
(mutability):
(instr.get if):
(instr_block):
(const):
(id):
(section):
(type_section):
(import_kind.get if):
(import_section):
(func_section):
(table_section):
(memory_section):
(global):
(global_section):
(export_kind.get if):
(export_section):
(start_section):
(local):
(code):
(code_section):
(table_segment):
(elem_section):
(memory_segment):
(data_section):
(partial_arg.1):
(custom):
(custom_section):
(iterate):
(decode):
(patch):
(encode.u8):
(encode.u16):
(encode.u32):
(encode.vu64):
(encode.vs64):
(encode.vu32):
(encode.len):
(encode.bool):
(encode.string):
(encode.vec):
(encode.gap32):
(encode.patch_gap32):
(encode.value_type):
(encode.stack_type):
(encode.func_type):
(encode.limits):
(encode.table_type):
(encode.memory_type):
(encode.global_type):
(encode.memop):
(encode):
(encode.instr):
(encode.const):
(encode.section):
(encode.type_section):
(encode.import):
(encode.import_section):
(encode.func):
(encode.func_section):
(encode.table):
(encode.table_section):
(encode.memory):
(encode.memory_section):
(encode.global):
(encode.global_section):
(encode.export_kind):
(encode.export):
(encode.export_section):
(encode.start_section):
(encode.combine):
(encode.compress):
(encode.local):
(encode.code):
(encode.code_section):
(encode.segment):
(encode.table_segment):
(encode.elem_section):
(encode.memory_segment):
(encode.module_):
(Make.warn):
(Make.error):
(Make):
(print_nan_significand_digits):
(Make.of_bits):
(Make.to_bits):
(Make.is_nan):
(Make.canonicalize_nan):
(Make.determine_binary_nan):
(Make.determine_unary_nan):
(Make.binary):
(Make.unary):
(Make.add):
(Make.sub):
(Make.mul):
(Make.div):
(Make.sqrt):
(Make.ceil):
(Make.floor):
(Make.trunc):
(Make.nearest):
(Make.min):
(Make.max):
(Make.abs):
(Make.neg):
(Make.copysign):
(Make.eq):
(Make.ne):
(Make.lt):
(Make.gt):
(Make.le):
(Make.ge):
(Make.of_signless_string):
(Make.of_string):
(Make.to_string):
(add_queue):
(peek_queue):
(take_queue):
(pp_enqueue):
(pp_clear_queue):
(pp_output_string):
(break_new_line):
(break_same_line):
(pp_force_break_line):
(switch.add_tab):
(else.switch.find):
(format_pp_token):
(advance_left):
(enqueue_advance):
(enqueue_string_as):
(set_size):
(scan_push):
(pp_open_box_gen):
(pp_close_box):
(pp_open_tag):
(pp_close_tag):
(pp_set_print_tags):
(pp_set_mark_tags):
(pp_get_print_tags):
(pp_get_mark_tags):
(pp_set_tags):
(pp_get_formatter_tag_functions):
(pp_set_formatter_tag_functions):
(pp_rinit):
(pp_flush_queue):
(pp_print_as_size):
(pp_print_string):
(pp_print_int):
(pp_print_float):
(pp_print_bool):
(pp_open_hbox):
(pp_open_vbox):
(pp_open_hvbox):
(pp_open_hovbox):
(pp_open_box):
(pp_print_newline):
(pp_print_flush):
(pp_force_newline):
(pp_print_if_newline):
(pp_print_break):
(pp_print_space):
(pp_print_cut):
(pp_open_tbox):
(pp_close_tbox):
(pp_print_tbreak):
(pp_print_tab):
(pp_set_tab):
(pp_print_list):
(flush):
(pp_print_text):
(pp_set_max_boxes):
(pp_get_max_boxes):
(pp_over_max_boxes):
(pp_get_ellipsis_text):
(pp_limit):
(pp_set_max_indent):
(pp_get_max_indent):
(pp_set_margin):
(pp_get_margin):
(pp_set_formatter_out_functions):
(pp_get_formatter_out_functions):
(pp_set_formatter_output_functions):
(pp_get_formatter_output_functions):
(pp_set_all_formatter_output_functions):
(pp_get_all_formatter_output_functions):
(display_newline):
(display_blanks):
(state.16):
(state.17):
(state.18):
(state.19):
(pp_set_formatter_out_channel):
(default_pp_mark_open_tag):
(default_pp_mark_close_tag):
(default_pp_print_open_tag):
(default_pp_print_close_tag):
(pp_make_formatter):
(ppf.18):
(ppf.19):
(make_formatter):
(formatter_of_out_channel):
(formatter_of_buffer):
(flush_str_formatter):
(flush_buf_formatter):
(open_hbox):
(open_vbox):
(open_hvbox):
(open_hovbox):
(open_box):
(close_box):
(open_tag):
(close_tag):
(print_as):
(print_string):
(print_int):
(print_float):
(print_bool):
(print_cut):
(print_space):
(force_newline):
(print_flush):
(print_newline):
(print_if_newline):
(open_tbox):
(close_tbox):
(print_tbreak):
(set_tab):
(print_tab):
(set_margin):
(get_margin):
(set_max_indent):
(get_max_indent):
(set_max_boxes):
(get_max_boxes):
(over_max_boxes):
(set_ellipsis_text):
(get_ellipsis_text):
(set_formatter_out_channel):
(set_formatter_out_functions):
(get_formatter_out_functions):
(set_formatter_output_functions):
(get_formatter_output_functions):
(set_all_formatter_output_functions):
(get_all_formatter_output_functions):
(set_formatter_tag_functions):
(get_formatter_tag_functions):
(set_print_tags):
(get_print_tags):
(set_mark_tags):
(get_mark_tags):
(set_tags):
(compute_tag):
(output_formatting_lit):
(kfprintf):
(ikfprintf):
(fprintf):
(ifprintf):
(printf):
(eprintf):
(k.prime):
(ksprintf):
(sprintf):
(asprintf.k.prime):
(asprintf):
(k):
(bprintf):
(succ):
(pred):
(abs):
(lognot):
(Make.cmp_u):
(Make.divrem_u):
(Make.div_s):
(Make.div_u):
(Make.rem_s):
(Make.rem_u):
(Make.shift):
(Make.shl):
(Make.shr_s):
(Make.shr_u):
(Make.clamp_rotate_count):
(Make.rotl):
(Make.rotr):
(Make.loop):
(Make.clz):
(Make.ctz):
(Make.popcnt):
(Make.eqz):
(Make.lt_u):
(Make.le_u):
(Make.gt_u):
(Make.ge_u):
(Make.of_int_u):
(Make.to_string_u):
(Make.require):
(Make.dec_digit):
(Make.hex_digit):
(Make.parse_int):
(Make.of_string_s):
(Make.of_string_u):
(convert_pos):
(error_nest):
(text):
(intop):
(floatop):
(numop):
(memsz):
(ext):
(token.else.switch):
(token.else.switch.):
(token):
(__ocaml_lex_comment_rec):
(engine):
(new_engine):
(from_function):
(from_channel):
(from_string):
(lexeme):
(sub_lexeme):
(sub_lexeme_opt):
(sub_lexeme_char):
(sub_lexeme_char_opt):
(lexeme_char):
(lexeme_start):
(lexeme_end):
(lexeme_start_p):
(lexeme_end_p):
(new_line):
(flush_input):
(take):
(drop):
(last):
(split_last):
(index_of):
(index_of_int32):
(dim):
(set 1):
(get 2):
(log2):
(is_power_of_two):
(loop):
(breakup):
(hd):
(tl):
(rev_append):
(rev):
(flatten):
(rev_map):
(map2):
(rev_map2):
(iter2):
(fold_left2):
(fold_right2):
(for_all):
(exists):
(for_all2):
(exists2):
(mem):
(memq):
(assoc):
(assq):
(mem_assoc):
(mem_assq):
(remove_assoc):
(remove_assq):
(find):
(find_all):
(partition):
(split):
(combine):
(chop):
(rev_sort):
(sort_uniq):
(Make.height):
(Make.create):
(Make.singleton):
(Make.bal):
(Make.is_empty):
(Make.find):
(Make.mem):
(Make.min_binding):
(Make.max_binding):
(Make.remove_min_binding):
(Make.remove):
(Make.iter):
(Make.map):
(Make.mapi):
(Make.fold):
(Make.for_all):
(Make.exists):
(Make.add_min_binding):
(Make.add_max_binding):
(Make.join):
(Make.concat):
(Make.concat_or_join):
(Make.split):
(Make.merge):
(Make.filter):
(Make.partition):
(Make.cons_enum):
(Make.compare):
(Make.equal):
(Make.cardinal):
(Make.bindings_aux):
(Make.bindings):
(double_field):
(set_double_field):
(marshal):
(unmarshal):
(extension_slot):
(extension_name):
(extension_id):
(i32_const):
(i64_const):
(f32_const):
(f64_const):
(block):
(br):
(br_if):
(br_table):
(if_):
(call):
(call_indirect):
(get_local):
(set_local):
(tee_local):
(get_global):
(set_global):
(i32_load):
(i64_load):
(f32_load):
(f64_load):
(i32_load8_s):
(i32_load8_u):
(i32_load16_s):
(i32_load16_u):
(i64_load8_s):
(i64_load8_u):
(i64_load16_s):
(i64_load16_u):
(i64_load32_s):
(i64_load32_u):
(i32_store):
(i64_store):
(f32_store):
(f64_store):
(i32_store8):
(i32_store16):
(i64_store8):
(i64_store16):
(i64_store32):
(parse):
(string_to):
(string_to_script):
(string_to_module):
(parse_error):
(position_to_pos):
(positions_to_region):
(ati):
(nat):
(nat32):
(empty_context):
(enter_func):
(type_):
(lookup):
(label):
(anon_type):
(bind):
(bind_func):
(bind_local):
(bind_global):
(bind_table):
(bind_memory):
(anon):
(anon_func):
(anon_locals):
(anon_global):
(anon_table):
(anon_memory):
(anon_label):
(explicit_sig):
(inline_type):
(yyact):
(script1):
(module1):
(grow_stacks):
(clear_parser):
(current_lookahead_fun):
(catch.else.current_lookahead_fun.0):
(yyparse):
(peek_val):
(symbol_start_pos):
(symbol_end_pos):
(rhs_start_pos):
(rhs_end_pos):
(symbol_start):
(symbol_end):
(rhs_start):
(rhs_end):
(is_current_lookahead):
(failwith):
(invalid_arg):
(min):
(max):
(lnot):
(char_of_int):
(string_of_bool):
(bool_of_string):
(string_of_int):
(valid_float_lexem):
(string_of_float):
(open_out_gen):
(open_out):
(open_out_bin):
(flush_all):
(output_bytes):
(output_string):
(output):
(output_substring):
(output_value):
(close_out):
(close_out_noerr):
(open_in_gen):
(open_in):
(open_in_bin):
(input):
(else.r):
(unsafe_really_input):
(really_input):
(really_input_string):
(input_line.build_result):
(input_line.n):
(input_line.scan):
(input_line):
(close_in_noerr):
(print_bytes):
(print_endline):
(prerr_char):
(prerr_string):
(prerr_bytes):
(prerr_int):
(prerr_float):
(prerr_endline):
(prerr_newline):
(read_line):
(read_int):
(read_float):
(string_of_format):
(at_exit.exit_function.0):
(at_exit):
(do_at_exit):
(exit):
(output_binary_int):
(seek_out):
(pos_out):
(out_channel_length):
(set_binary_mode_out):
(input_binary_int):
(input_value):
(seek_in):
(pos_in):
(in_channel_length):
(close_in):
(set_binary_mode_in):
(LargeFile_000):
(LargeFile_001):
(LargeFile_002):
(LargeFile_003):
(LargeFile_004):
(LargeFile_005):
(kbprintf):
(plus):
(pp):
(print):
(string_of_pos):
(string_of_region):
(escaped.needs_escape):
(set_signal):
(catch_break):
(size):
(string_of_value_type):
(string_of_value_types):
(string_of_elem_type):
(string_of_limits):
(string_of_table_type):
(string_of_global_type):
(string_of_stack_type):
(string_of_func_type):
(type_of):
(default_value):
(value_of_bool):
(string_of_values):
(to_value):
(of_value):
(g):
(binary):
(bytes):
* wasm/spec-tests/address.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/binary.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/block.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br_if.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/br_table.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/break-drop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/call.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/call_indirect.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/comments.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/conversions.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/custom_section.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/endianness.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/exports.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/f32.wast.js: Removed.
* wasm/spec-tests/f32_cmp.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/f64.wast.js: Removed.
* wasm/spec-tests/f64_cmp.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/fac.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_exprs.wast.js: Removed.
* wasm/spec-tests/float_literals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_memory.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/float_misc.wast.js: Removed.
* wasm/spec-tests/forward.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/func.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/func_ptrs.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/get_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/globals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/i32.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/i64.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/if.wast.js: Added.
* wasm/spec-tests/imports.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/int_exprs.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/int_literals.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/jsapi.js: Added.
(testJSAPI.get test):
(testJSAPI.test):
(testJSAPI.set test):
(testJSAPI.assertCompileError):
(testJSAPI.assertCompileSuccess):
(testJSAPI):
* wasm/spec-tests/labels.wast.js: Added.
* wasm/spec-tests/left-to-right.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/linking.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/loop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory_redundancy.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/memory_trap.wast.js: Removed.
* wasm/spec-tests/names.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/nop.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/resizing.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/return.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/select.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/set_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/skip-stack-guard-page.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/stack.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/start.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/store_retval.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/switch.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/tee_local.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/traps.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/typecheck.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/unreachable.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
* wasm/spec-tests/unreached-invalid.wast.js: Added.
* wasm/spec-tests/unwind.wast.js:
(register): Deleted.
(module): Deleted.
(instance): Deleted.
(assert_malformed): Deleted.
(assert_invalid): Deleted.
(assert_soft_invalid): Deleted.
(assert_unlinkable): Deleted.
(assert_uninstantiable): Deleted.
(assert_trap): Deleted.
(assert_return): Deleted.
(assert_return_nan): Deleted.
2017-04-01 Oleksandr Skachkov <gskachkov@gmail.com>
Object with numerical keys with gaps gets filled by NaN values
https://bugs.webkit.org/show_bug.cgi?id=164412
Reviewed by Merk Lam.
* stress/object-number-properties.js: Added.
(assert):
(boo):
2017-03-30 Michael Saboff <msaboff@apple.com>
Turning ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js back as it appears to always work
https://bugs.webkit.org/show_bug.cgi?id=170313
Reviewed by Saam Barati.
Enable ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js as it seems solid.
* ChakraCore.yaml:
2017-03-30 Michael Saboff <msaboff@apple.com>
Enable ChakraCore/Function/FuncBody.js test as it now works
https://bugs.webkit.org/show_bug.cgi?id=170301
Reviewed by Mark Lam.
This test no longer crashes, so enable it and create a JSC specific
expected file.
* ChakraCore.yaml:
* ChakraCore/test/Function/FuncBodyES5.baseline-jsc: Added.
2017-03-30 JF Bastien <jfbastien@apple.com>
WebAssembly: fix misc JS API implementation inconsistencies
https://bugs.webkit.org/show_bug.cgi?id=170187
Reviewed by Keith Miller.
Verify that WebAssembly function are on the object's __proto__.
* wasm/js-api/Module-compile.js:
* wasm/js-api/validate.js:
* wasm/js-api/web-assembly-instantiate.js:
2017-03-29 JF Bastien <jfbastien@apple.com>
WebAssembly: add shell-only Memory mode helper
https://bugs.webkit.org/show_bug.cgi?id=170227
Reviewed by Mark Lam.
* wasm/assert.js: fix a prior debug thing I forgot to remove
* wasm/function-tests/memory-section-and-import.js: the assert
issue was hiding a failure in error message here
* wasm/js-api/element.js: the assert issue was hiding a failure in
error message here
(badInstantiation.test):
(badInstantiation):
* wasm/js-api/extension-MemoryMode.js: Added.
(const.validateMode.what.switch):
(testMemoryNoMax):
(testMemory):
(testInstanceNoMemory):
(testInstanceNoMax):
(testInstance):
* wasm/js-api/test_memory.js: the assert issue was hiding a
failure in error message here
(test):
2017-03-28 Keith Miller <keith_miller@apple.com>
WebAssembly: Make WebAssembly.instantiate/compile truly asynchronous
https://bugs.webkit.org/show_bug.cgi?id=169187
Reviewed by Saam Barati.
* wasm/assert.js:
* wasm/js-api/Module-compile.js:
(async.testPromiseAPI):
* wasm/js-api/web-assembly-compile-parallel.js: Added.
(async.throwExn):
(async.test):
* wasm/js-api/web-assembly-instantiate-parallel.js: Added.
(async.test):
* wasm/js-api/web-assembly-instantiate.js:
(assert.eq.async.test):
(assert.eq):
(assert.asyncTest.async.test):
(assert.asyncTest):
(assert.truthy.async.test): Deleted.
(assert.truthy): Deleted.
2017-03-28 JF Bastien <jfbastien@apple.com>
WebAssembly: implement Module imports/exports
https://bugs.webkit.org/show_bug.cgi?id=166982
Reviewed by Saam Barati.
* wasm/js-api/Module.exports.js: Added.
(assert.throws.WebAssembly.Module.prototype.exports):
(assert.eq):
* wasm/js-api/Module.imports.js: Added.
(assert.throws.WebAssembly.Module.prototype.imports):
(assert.eq):
2017-03-27 JF Bastien <jfbastien@apple.com>
WebAssembly: misc memory testing
https://bugs.webkit.org/show_bug.cgi?id=170137
Reviewed by Keith Miller.
* wasm/assert.js: handle newlines in code we print out, avoid regex
* wasm/function-tests/memory-import-and-grow.js: Added.
(const.instantiate):
(const.test):
* wasm/function-tests/memory-section-and-import.js: Added.
(const.instantiate):
2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use jsNontrivialString agressively for ToString(Int52)
https://bugs.webkit.org/show_bug.cgi?id=170002
Reviewed by Sam Weinig.
* stress/to-string-int52.js: Added.
(shouldBe):
(toString10):
(expected):
2017-03-23 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC][DFG] Make addShouldSpeculateAnyInt more conservative to avoid regression caused by Double <-> Int52 conversions
https://bugs.webkit.org/show_bug.cgi?id=169998
Reviewed by Saam Barati.
* microbenchmarks/int52-back-and-forth.js: Added.
(shouldBe):
(num):
2017-03-23 Mark Lam <mark.lam@apple.com>
Clients of JSArray::tryCreateForInitializationPrivate() should do their own null checks.
https://bugs.webkit.org/show_bug.cgi?id=169783
Reviewed by Saam Barati.
* stress/regress-169783.js: Added.
2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC][DFG] Propagate AnyIntAsDouble information carefully to utilize it in fixup
https://bugs.webkit.org/show_bug.cgi?id=169914
Reviewed by Saam Barati.
* stress/any-int-as-double-add.js: Added.
(shouldBe):
(test):
* stress/to-this-numbers.js: Added.
(shouldBe):
(Number.prototype.toThis):
2017-03-22 Mark Lam <mark.lam@apple.com>
Add support for Error.stackTraceLimit.
https://bugs.webkit.org/show_bug.cgi?id=169904
Reviewed by Saam Barati.
* stress/error-stack-trace-limit.js: Added.
2017-03-22 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Use jsNontrivialString for Number toString operations
https://bugs.webkit.org/show_bug.cgi?id=169965
Reviewed by Mark Lam.
* stress/to-string-int32.js: Added.
(shouldBe):
(toString10):
(expected):
2017-03-22 JF Bastien <jfbastien@apple.com>
WebAssembly: test module namespace object for WebAssembly.Instance
https://bugs.webkit.org/show_bug.cgi?id=169951
Reviewed by Saam Barati.
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2017-03-22 JF Bastien <jfbastien@apple.com>
WebAssembly: constructors without new don't throw
https://bugs.webkit.org/show_bug.cgi?id=165995
Reviewed by Saam Barati.
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2017-03-21 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Optimize Number.prototype.toString on Int32 / Int52 / Double
https://bugs.webkit.org/show_bug.cgi?id=167454
Reviewed by Saam Barati.
* stress/number-to-string-abstract-operation.js: Added.
(shouldBe):
(int32ToString):
(shouldBe.int32ToString.new.Number.int52ToString):
(shouldBe.int32ToString.new.Number):
(shouldBe.doubleToString):
* stress/number-to-string-radix.js: Added.
(shouldBe):
(int32ToString):
(shouldBe.int32ToString.new.Number.int52ToString):
(shouldBe.int32ToString.new.Number):
(shouldBe.doubleToString):
* stress/number-to-string.js: Added.
(shouldBe):
(int32ToString):
(shouldBe.int32ToString.new.Number.int52ToString):
(shouldBe.int32ToString.new.Number):
(shouldBe.doubleToString):
2017-03-19 Chris Dumez <cdumez@apple.com>
`const location = "foo"` throws in a worker
https://bugs.webkit.org/show_bug.cgi?id=169839
Reviewed by Mark Lam.
* ChakraCore/test/es6/letconst_global_shadow_builtins_nonconfigurable.baseline-jsc:
Update expected jsc result now that we throw a SyntaxError when trying to shadow undefined
with a let variable. We used not to throw because the value is undefined but this was not
as per EcmaScript. Both Firefox and Chrome throw in this case.
* stress/global-lexical-redeclare-variable.js:
(catch):
Update test that defines a non-configurable 'zoo' property on the global object and then
expected shadowing it with a 'let zoo' variable to work because its value was undefined.
This was not as per EcmaScript spec and both Firefox and Chrome throw in this case.
2017-03-19 Yusuke Suzuki <utatane.tea@gmail.com>
import(arg) crashes when ToString(arg) throws
https://bugs.webkit.org/show_bug.cgi?id=169778
Reviewed by Saam Barati.
* stress/import-reject-with-exception.js: Added.
(shouldBe):
(let.x.get toString):
2017-03-16 Filip Pizlo <fpizlo@apple.com>
FTL should support global and eval code
https://bugs.webkit.org/show_bug.cgi?id=169656
Reviewed by Geoffrey Garen and Saam Barati.
Added basic performance tests of global and eval code. These tests will run a lot faster in with
the FTL because of the object allocation.
* microbenchmarks/eval-code-ftl-reentry.js: Added.
* microbenchmarks/eval-code-ftl.js: Added.
* microbenchmarks/global-code-ftl.js: Added.
* 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.
2017-03-16 Caio Lima <ticaiolima@gmail.com>
[ESnext] Implement Object Spread
https://bugs.webkit.org/show_bug.cgi?id=167963
Reviewed by Yusuke Suzuki.
* stress/object-spread.js: Added.
(let.assert):
(assert.sameValue):
(let.o.get a):
(let.obj.get c):
(cthulhu.get x):
(let.obj.set c):
(calls.o.get z):
(calls.o.get a):
(try.let.obj.get foo):
(get calls):
2017-03-15 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Default parameter part should be retrieved by op_get_argument opcode instead of changing arity
https://bugs.webkit.org/show_bug.cgi?id=164582
Reviewed by Saam Barati.
* stress/function-with-defaults-inlining.js: Added.
(shouldBe):
(ok):
(a):
* stress/function-with-defaults-non-inlining.js: Added.
(shouldBe):
(ok):
(a):
2017-03-15 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] ToString operation should have fixup for primitives to say this node does not have side effects
https://bugs.webkit.org/show_bug.cgi?id=169544
Reviewed by Saam Barati.
* microbenchmarks/template-string-array.js: Added.
(test):
* stress/to-string-non-cell-use.js: Added.
(shouldBe):
(shouldThrow):
2017-03-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r213856.
https://bugs.webkit.org/show_bug.cgi?id=169562
Breaks JSC stress test stress/super-property-access.js.ftl-
eager failing (Requested by mlam|g on #webkit).
Reverted changeset:
"FTL should not flush strict arguments unless it really needs
to"
https://bugs.webkit.org/show_bug.cgi?id=169519
http://trac.webkit.org/changeset/213856
2017-03-11 Filip Pizlo <fpizlo@apple.com>
FTL should not flush strict arguments unless it really needs to
https://bugs.webkit.org/show_bug.cgi?id=169519
Reviewed by Mark Lam.
This benchmark runs 3.5x faster thanks to this patch.
* microbenchmarks/strict-arguments-no-escape.js: Added.
(foo):
(bar):
(baz):
2017-03-13 Caio Lima <ticaiolima@gmail.com>
[JSC] It should be possible create a label named let when parsing Statement in non strict mode
https://bugs.webkit.org/show_bug.cgi?id=168684
Reviewed by Saam Barati.
* ChakraCore/test/LetConst/DeclOutofBlock.baseline-jsc:
2017-03-10 Saam Barati <sbarati@apple.com>
WebAssembly: Make more demos run
https://bugs.webkit.org/show_bug.cgi?id=165510
<rdar://problem/29760310>
Reviewed by Keith Miller.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
* wasm/js-api/wrapper-function.js: Added.
(exportImport):
(return.new.WebAssembly.Module):
(assert.throws.makeInstance):
(assert.throws.Bar):
(assert.throws):
2017-03-10 Mark Lam <mark.lam@apple.com>
JSC: BindingNode::bindValue doesn't increase the scope's reference count.
https://bugs.webkit.org/show_bug.cgi?id=168546
<rdar://problem/30589551>
Reviewed by Saam Barati.
* stress/regress-168546.js: Added.
2017-03-09 Caio Lima <ticaiolima@gmail.com>
[ESnext] Implement Object Rest - Implementing Object Rest Destructuring
https://bugs.webkit.org/show_bug.cgi?id=167962
Reviewed by Keith Miller.
* stress/object-rest-deconstruct.js: Added.
(let.assert):
(let.assertPropDescriptor):
(catch):
(get 3):
(foo):
(let.src.get y):
(let.src.set y):
(let.gen):
2017-03-09 Saam Barati <sbarati@apple.com>
WebAssembly: Make the Unity AngryBots demo run
https://bugs.webkit.org/show_bug.cgi?id=169268
Reviewed by Keith Miller.
* wasm/function-tests/many-arguments-to-function.js: Added.
(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):
(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):
(i.instance.exports.f0):
(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):
(instance.exports.f0):
2017-03-08 Yusuke Suzuki <utatane.tea@gmail.com>
[GTK] JSC test stress/arity-check-ftl-throw.js.ftl-no-cjit-validate-sampling-profiler crashing on GTK bot
https://bugs.webkit.org/show_bug.cgi?id=160124
Reviewed by Mark Lam.
* stress/spread-forward-call-varargs-stack-overflow.js:
2017-03-06 Saam Barati <sbarati@apple.com>
WebAssembly: Implement the WebAssembly.instantiate API
https://bugs.webkit.org/show_bug.cgi?id=165982
<rdar://problem/29760110>
Reviewed by Keith Miller.
* wasm/js-api/web-assembly-instantiate.js: Added.
(assert.eq.async.test):
(assert.eq):
(assert.truthy.async.test):
(assert.truthy):
2017-03-06 Saam Barati <sbarati@apple.com>
Unreviewed. Fix test expected error message.
* wasm/js-api/element.js:
(assert.throws):
2017-03-06 Caio Lima <ticaiolima@gmail.com>
op_get_by_id_with_this should use inline caching
https://bugs.webkit.org/show_bug.cgi?id=162124
Reviewed by Saam Barati.
* microbenchmarks/super-getter.js: Added.
(A.prototype.get f):
(A):
(B.prototype.get f):
(B):
* stress/super-force-ic-fail.js: Added.
(let.assert):
(let.aObj.get foo):
(let.obj.jaz):
(let.bObj.get foo):
(let.obj2.foo):
* stress/super-get-by-id.js: Added.
(assert):
(Base):
(Base.prototype.get name):
(Base.prototype.set name):
(Subclass.prototype.get name):
(Subclass):
(getterName):
(getterValue):
(PolymorphicSubclass.prototype.get value):
(PolymorphicSubclass):
(i.let.BaseCode):
(i.get value):
(MegamorphicSubclass.prototype.get value):
(MegamorphicSubclass):
(let.subObj.get value):
(i.catch):
(subObj.get value):
(BaseException):
(BaseException.prototype.get name):
(SubclassException.prototype.get name):
(SubclassException):
(prototype.foo):
(prototype.get name):
(SubclassExceptionComplex.prototype.get name):
(SubclassExceptionComplex):
* stress/super-getter-reset-ic.js: Added.
(let.assert):
(let.B.f):
2017-03-06 Saam Barati <sbarati@apple.com>
WebAssembly: implement init_expr for Element
https://bugs.webkit.org/show_bug.cgi?id=165888
<rdar://problem/29760199>
Reviewed by Keith Miller.
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Element):
* wasm/assert.js:
* wasm/js-api/element.js:
(assert.throws):
(badInstantiation.makeModule):
(badInstantiation.test):
(badInstantiation):
* wasm/js-api/global-error.js:
2017-03-06 Carlos Alberto Lopez Perez <clopez@igalia.com>
[JSC] [Linux] Test stress/spread-forward-call-varargs-stack-overflow.js fails
https://bugs.webkit.org/show_bug.cgi?id=169206
Unreviewed test gardening.
* stress/spread-forward-call-varargs-stack-overflow.js: Skip on Linux platforms.
2017-03-06 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Allow indexed module namespace object fields
https://bugs.webkit.org/show_bug.cgi?id=168870
Reviewed by Saam Barati.
* wasm/spec-tests/names.wast.js:
2017-03-06 Yusuke Suzuki <utatane.tea@gmail.com>
Null pointer crash when loading module with unresolved import also as a script file
https://bugs.webkit.org/show_bug.cgi?id=168971
Reviewed by Saam Barati.
* stress/re-execute-error-module.js: Added.
(shouldBe):
(async):
* stress/resources/error-module.js: Added.
2017-03-02 Keith Miller <keith_miller@apple.com>
WebAssemblyFunction should have Function.prototype as its prototype
https://bugs.webkit.org/show_bug.cgi?id=169101
Reviewed by Filip Pizlo.
* wasm/js-api/web-assembly-function.js: Added.
2017-02-28 Oleksandr Skachkov <gskachkov@gmail.com>
Use of arguments in arrow function is slow
https://bugs.webkit.org/show_bug.cgi?id=168829
Reviewed by Saam Barati.
* microbenchmarks/arrowfunciton-direct-arguments.js: Added.
(fn):
* microbenchmarks/arrowfunciton-reference-arguments.js: Added.
(fn):
2017-02-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r213019.
https://bugs.webkit.org/show_bug.cgi?id=168925
"It broke 32-bit jsc tests in debug builds" (Requested by
saamyjoon on #webkit).
Reverted changeset:
"op_get_by_id_with_this should use inline caching"
https://bugs.webkit.org/show_bug.cgi?id=162124
http://trac.webkit.org/changeset/213019
2017-02-27 JF Bastien <jfbastien@apple.com>
WebAssembly: miscellaneous spec fixes part deux
https://bugs.webkit.org/show_bug.cgi?id=168861
Reviewed by Keith Miller.
* wasm.yaml: more passing tests
* wasm/Builder.js: use a Map instead of an Object for the function
index space, because Number entries such as 0 were colliding with
string entries such as "0". This in turn requires some hashing of
objects which are inserted, because Map uses Object's insertion
order when comparing.
(export.default.Builder):
(export.default.Builder.prototype._functionIndexSpaceKeyHash):
(export.default.Builder.prototype._registerFunctionToIndexSpace):
(export.default.Builder.prototype._getFunctionFromIndexSpace):
* wasm/js-api/test_Instance.js: add a FIXME test
* wasm/spec-tests/memory.wast.js:
(assert_unlinkable):
* wasm/spec-tests/names.wast.js:
2017-02-26 Caio Lima <ticaiolima@gmail.com>
op_get_by_id_with_this should use inline caching
https://bugs.webkit.org/show_bug.cgi?id=162124
Reviewed by Saam Barati.
* microbenchmarks/super-getter.js: Added.
(A.prototype.get f):
(A):
(B.prototype.get f):
(B):
* stress/super-force-ic-fail.js: Added.
(let.assert):
(let.aObj.get foo):
(let.obj.jaz):
(let.bObj.get foo):
(let.obj2.foo):
* stress/super-get-by-id.js: Added.
(assert):
(Base):
(Base.prototype.get name):
(Base.prototype.set name):
(Subclass.prototype.get name):
(Subclass):
(getterName):
(getterValue):
(PolymorphicSubclass.prototype.get value):
(PolymorphicSubclass):
(i.let.BaseCode):
(i.get value):
(MegamorphicSubclass.prototype.get value):
(MegamorphicSubclass):
(let.subObj.get value):
(i.catch):
(subObj.get value):
(BaseException):
(BaseException.prototype.get name):
(SubclassException.prototype.get name):
(SubclassException):
(prototype.foo):
(prototype.get name):
(SubclassExceptionComplex.prototype.get name):
(SubclassExceptionComplex):
* stress/super-getter-reset-ic.js: Added.
(let.assert):
(let.B.f):
2017-02-24 JF Bastien <jfbastien@apple.com>
WebAssembly: miscellaneous spec fixes
https://bugs.webkit.org/show_bug.cgi?id=168822
Reviewed by Saam Barati.
* wasm.yaml: mark some skip tests as normal, now that they pass
* wasm/Builder.js: error message was wrong, causing extra error if hit
* wasm/js-api/global-error.js: new tests
(assert.throws):
* wasm/spec-tests/call.wast.js: comment out stack check tests
* wasm/spec-tests/call_indirect.wast.js: comment out stack check tests
* wasm/spec-tests/fac.wast.js: comment out stack check tests
* wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update
* wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt
(assert_unlinkable):
2017-02-23 Saam Barati <sbarati@apple.com>
Intrinsicify parseInt
https://bugs.webkit.org/show_bug.cgi?id=168627
Reviewed by Filip Pizlo.
* stress/parse-int-intrinsic.js: Added.
(assert):
(testIntrinsic.let.s):
(testIntrinsic):
(testIntrinsic2.baz):
(testIntrinsic2):
(testIntrinsic3.foo):
(testIntrinsic3):
(testIntrinsic4.foo):
(testIntrinsic4):
(testIntrinsic5.foo):
(testIntrinsic5):
(testIntrinsic6.foo):
(testIntrinsic6):
(testIntrinsic7.foo):
(testIntrinsic7):
2017-02-23 JF Bastien <jfbastien@apple.com>
WebAssembly: support 0x1 version
https://bugs.webkit.org/show_bug.cgi?id=168672
Reviewed by Keith Miller.
Update the version number for all the tests. Note that the spec
tests are only updated with a new version number because spec+wabt
aren't ready for 0x1 yet. This is tracked by bug #168784.
* wasm/import-spec-tests.rb: use the new spec repository layout
* wasm/js-api/test_basic_api.js:
* wasm/self-test/test_BuilderWebAssembly.js:
(EmptyModule):
(CustomSection):
* wasm/spec-tests/address.wast.js:
* wasm/spec-tests/binary.wast.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/br_if.wast.js:
* wasm/spec-tests/br_table.wast.js:
* wasm/spec-tests/break-drop.wast.js:
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/comments.wast.js:
* wasm/spec-tests/conversions.wast.js:
* wasm/spec-tests/custom_section.wast.js:
* wasm/spec-tests/endianness.wast.js:
* wasm/spec-tests/exports.wast.js:
* wasm/spec-tests/f32.wast.js:
* wasm/spec-tests/f32_cmp.wast.js:
* wasm/spec-tests/f64.wast.js:
* wasm/spec-tests/f64_cmp.wast.js:
* wasm/spec-tests/fac.wast.js:
* wasm/spec-tests/float_exprs.wast.js:
* wasm/spec-tests/float_literals.wast.js:
* wasm/spec-tests/float_memory.wast.js:
* wasm/spec-tests/float_misc.wast.js:
* wasm/spec-tests/forward.wast.js:
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/func_ptrs.wast.js:
* wasm/spec-tests/get_local.wast.js:
* wasm/spec-tests/globals.wast.js:
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/int_exprs.wast.js:
* wasm/spec-tests/int_literals.wast.js:
* wasm/spec-tests/left-to-right.wast.js:
* wasm/spec-tests/linking.wast.js:
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/memory.wast.js:
* wasm/spec-tests/memory_redundancy.wast.js:
* wasm/spec-tests/memory_trap.wast.js:
* wasm/spec-tests/names.wast.js:
* wasm/spec-tests/nop.wast.js:
* wasm/spec-tests/resizing.wast.js:
* wasm/spec-tests/return.wast.js:
* wasm/spec-tests/select.wast.js:
* wasm/spec-tests/set_local.wast.js:
* wasm/spec-tests/skip-stack-guard-page.wast.js:
* wasm/spec-tests/stack.wast.js:
* wasm/spec-tests/start.wast.js:
* wasm/spec-tests/store_retval.wast.js:
* wasm/spec-tests/switch.wast.js:
* wasm/spec-tests/tee_local.wast.js:
* wasm/spec-tests/traps.wast.js:
* wasm/spec-tests/typecheck.wast.js:
* wasm/spec-tests/unreachable.wast.js:
* wasm/spec-tests/unwind.wast.js:
* wasm/wasm.json:
2017-02-22 Yusuke Suzuki <utatane.tea@gmail.com>
JSModuleNamespace object should have IC
https://bugs.webkit.org/show_bug.cgi?id=160590
Reviewed by Saam Barati.
* modules/module-assert-access-binding.js: Added.
* modules/module-assert-access-namespace.js: Added.
* modules/namespace-empty.js: Added.
(from.string_appeared_here.access):
(i.shouldThrow):
* stress/module-namespace-access-change.js: Added.
(shouldBe):
(access):
(import.string_appeared_here.then):
* stress/module-namespace-access-non-constant.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/module-namespace-access-poly.js: Added.
(shouldBe):
(access):
(import.string_appeared_here.then):
* stress/module-namespace-access-transitive-exports.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/module-namespace-access.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/resources/module-namespace-access-transitive-exports-2.js: Added.
(export.cocoa):
(export.change):
* stress/resources/module-namespace-access-transitive-exports.js: Added.
* stress/resources/module-namespace-access.js: Added.
(export.cocoa):
(export.change):
2017-02-20 Filip Pizlo <fpizlo@apple.com>
The collector thread should only start when the mutator doesn't have heap access
https://bugs.webkit.org/show_bug.cgi?id=167737
Reviewed by Keith Miller.
Add versions of splay that flash heap access, to simulate what might happen if a third-party app
was running concurrent GC. In this case, we might actually start the collector thread.
* stress/splay-flash-access-1ms.js: Added.
(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):
* stress/splay-flash-access.js: Added.
(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):
2017-02-21 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r212712.
This change broke the CLoop build.
Reverted changeset:
"JSModuleNamespace object should have IC"
https://bugs.webkit.org/show_bug.cgi?id=160590
http://trac.webkit.org/changeset/212712
2017-02-21 Yusuke Suzuki <utatane.tea@gmail.com>
JSModuleNamespace object should have IC
https://bugs.webkit.org/show_bug.cgi?id=160590
Reviewed by Saam Barati.
* modules/module-assert-access-binding.js: Added.
* modules/module-assert-access-namespace.js: Added.
* modules/namespace-empty.js: Added.
(from.string_appeared_here.access):
(i.shouldThrow):
* stress/module-namespace-access-change.js: Added.
(shouldBe):
(access):
(import.string_appeared_here.then):
* stress/module-namespace-access-non-constant.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/module-namespace-access-poly.js: Added.
(shouldBe):
(access):
(import.string_appeared_here.then):
* stress/module-namespace-access-transitive-exports.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/module-namespace-access.js: Added.
(shouldBe):
(import.string_appeared_here.then):
* stress/resources/module-namespace-access-transitive-exports-2.js: Added.
(export.cocoa):
(export.change):
* stress/resources/module-namespace-access-transitive-exports.js: Added.
* stress/resources/module-namespace-access.js: Added.
(export.cocoa):
(export.change):
2017-02-21 Yusuke Suzuki <utatane.tea@gmail.com>
ASSERTION FAILED: "!scope.exception()" with Object.isSealed/isFrozen and uninitialized module bindings
https://bugs.webkit.org/show_bug.cgi?id=168605
Reviewed by Saam Barati.
* modules/module-namespace-is-frozen.js: Added.
(from.string_appeared_here.shouldThrow):
(export.b):
* modules/module-namespace-is-sealed.js: Added.
(from.string_appeared_here.shouldThrow):
(export.b):
2017-02-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r212466.
https://bugs.webkit.org/show_bug.cgi?id=168577
causes crashes on AArch64 on linux, maybe it's causing crashes
on iOS too (Requested by pizlo on #webkit).
Reverted changeset:
"The collector thread should only start when the mutator
doesn't have heap access"
https://bugs.webkit.org/show_bug.cgi?id=167737
http://trac.webkit.org/changeset/212466
2017-02-10 Filip Pizlo <fpizlo@apple.com>
The collector thread should only start when the mutator doesn't have heap access
https://bugs.webkit.org/show_bug.cgi?id=167737
Reviewed by Keith Miller.
Add versions of splay that flash heap access, to simulate what might happen if a third-party app
was running concurrent GC. In this case, we might actually start the collector thread.
* stress/splay-flash-access-1ms.js: Added.
(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):
* stress/splay-flash-access.js: Added.
(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):
2017-02-16 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Update module namespace object according to the latest ECMA262
https://bugs.webkit.org/show_bug.cgi?id=168280
Reviewed by Saam Barati.
* modules/namespace-object-symbol-iterator-name.js:
* modules/namespace-object-typed-array-fast-path.js:
* modules/namespace.js:
(shouldBe.JSON.stringify.Reflect.getOwnPropertyDescriptor):
(shouldThrow):
2017-02-11 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Implement (Shared)ArrayBuffer.prototype.byteLength
https://bugs.webkit.org/show_bug.cgi?id=166476
Reviewed by Saam Barati.
* ChakraCore/test/typedarray/arraybufferType.baseline-jsc:
* stress/array-buffer-byte-length.js: Added.
(shouldBe):
(shouldThrow):
(Symbol):
* stress/reflect-set.js:
2017-02-10 Saam Barati <sbarati@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=168140
<rdar://problem/30205880>
Reviewed by Filip Pizlo.
* stress/allocation-sinking-puthint-control-flow.js: Added.
(e):
(bar):
(let.y):
(else.let.y):
(baz):
(foo):
(catch):
2017-02-09 Mark Lam <mark.lam@apple.com>
B3::Procedure::deleteOrphans() should neutralize upsilons with dead phis.
https://bugs.webkit.org/show_bug.cgi?id=167437
<rdar://problem/30198083>
Reviewed by Filip Pizlo.
* stress/b3-delete-orphans-should-neutralize-upsilons-with-dead-phis.js: Added.
2017-02-09 Saam Barati <sbarati@apple.com>
Sloppy mode: We don't properly hoist functions names "arguments" when we have a non-simple parameter list
https://bugs.webkit.org/show_bug.cgi?id=167319
<rdar://problem/30149432>
Reviewed by Mark Lam.
* stress/sloppy-mode-hoist-arguments-function-non-simple-parameter-list.js: Added.
(assert):
(assert.arguments):
(assert.b):
(x.arguments):
(x.b):
(x):
2017-02-09 Mark Lam <mark.lam@apple.com>
Fix max length check in ArrayPrototype.js' concatSlowPath().
https://bugs.webkit.org/show_bug.cgi?id=167270
<rdar://problem/30128133>
Reviewed by Filip Pizlo.
* stress/array-prototype-concat-of-long-spliced-arrays.js: Added.
* stress/array-prototype-concat-of-long-spliced-arrays2.js: Added.
2017-02-09 Keith Miller <keith_miller@apple.com>
We should not allow Function.caller to be used on native functions
https://bugs.webkit.org/show_bug.cgi?id=165628
Reviewed by Mark Lam.
* stress/caller-native-code.js: Added.
(f):
2017-02-04 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add operationToInt32SensibleSlow to optimize kraken pbkdf2 and sha256
https://bugs.webkit.org/show_bug.cgi?id=167736
Reviewed by Saam Barati.
* stress/to-int32-sensible.js: Added.
(shouldBe):
(toInt32):
(test):
2017-02-01 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, remove loop
https://bugs.webkit.org/show_bug.cgi?id=167694
It causes timeout.
Original bug can be tested even without this loop.
* stress/arity-fixup-should-not-touch-stack-area-below-sp.js:
2017-02-01 Yusuke Suzuki <utatane.tea@gmail.com>
ArityFixup should adjust SP first
https://bugs.webkit.org/show_bug.cgi?id=167239
Reviewed by Michael Saboff.
Significantly large arity fixup reliably causes this crash.
* stress/arity-fixup-should-not-touch-stack-area-below-sp.js: Added.
2017-01-31 Filip Pizlo <fpizlo@apple.com>
Move slow-running microbenchmarks out of JSTests/microbenchmarks
https://bugs.webkit.org/show_bug.cgi?id=167676
Reviewed by Saam Barati.
The microbenchmarks directory is profitable when it's cheap to run. This change moves very slow
tests (>=200ms running time on my machine) and puts them in JSTests/slowMicrobenchmarks instead.
That directory is run only through `slow!; defaultQuickRun` and is not run by run-jsc-benchmarks.
This is a big progression in test running time. But because it frontloads more slow tests, the
tests will seem to run more slowly when you first start the test runner.
* microbenchmarks/default-derived-constructor.js: Removed.
* microbenchmarks/dense-set.js: Removed.
* microbenchmarks/ftl-polymorphic-div.js: Removed.
* microbenchmarks/ftl-polymorphic-mul.js: Removed.
* microbenchmarks/function-bind-inlining.js: Removed.
* microbenchmarks/function-bind-no-inlining.js: Removed.
* microbenchmarks/large-map-iteration-with-additions.js: Removed.
* microbenchmarks/large-map-iteration-with-mutation.js: Removed.
* microbenchmarks/map-get-get-cse.js: Removed.
* microbenchmarks/misc-bugs-847389-jpeg2000.js: Removed.
* microbenchmarks/spread-small-array.js: Removed.
* microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Removed.
* slowMicrobenchmarks: Added.
* slowMicrobenchmarks.yaml: Added.
* slowMicrobenchmarks/README: Added.
* slowMicrobenchmarks/default-derived-constructor.js: Copied from JSTests/microbenchmarks/default-derived-constructor.js.
* slowMicrobenchmarks/dense-set.js: Copied from JSTests/microbenchmarks/dense-set.js.
* slowMicrobenchmarks/ftl-polymorphic-div.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-div.js.
* slowMicrobenchmarks/ftl-polymorphic-mul.js: Copied from JSTests/microbenchmarks/ftl-polymorphic-mul.js.
* slowMicrobenchmarks/function-bind-inlining.js: Copied from JSTests/microbenchmarks/function-bind-inlining.js.
* slowMicrobenchmarks/function-bind-no-inlining.js: Copied from JSTests/microbenchmarks/function-bind-no-inlining.js.
* slowMicrobenchmarks/large-map-iteration-with-additions.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-additions.js.
* slowMicrobenchmarks/large-map-iteration-with-mutation.js: Copied from JSTests/microbenchmarks/large-map-iteration-with-mutation.js.
* slowMicrobenchmarks/map-get-get-cse.js: Copied from JSTests/microbenchmarks/map-get-get-cse.js.
* slowMicrobenchmarks/misc-bugs-847389-jpeg2000.js: Copied from JSTests/microbenchmarks/misc-bugs-847389-jpeg2000.js.
* slowMicrobenchmarks/spread-small-array.js: Copied from JSTests/microbenchmarks/spread-small-array.js.
* slowMicrobenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js: Copied from JSTests/microbenchmarks/v8-raytrace-with-try-catch-high-frequency-throws.js.
2017-01-30 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Do not reject WebAssembly.compile() with Exception
https://bugs.webkit.org/show_bug.cgi?id=167585
Reviewed by Mark Lam.
* wasm/js-api/Module-compile.js:
(async.testPromiseAPI):
2017-01-27 Yusuke Suzuki <utatane.tea@gmail.com>
Lift template escape sequence restrictions in tagged templates
https://bugs.webkit.org/show_bug.cgi?id=166871
Reviewed by Saam Barati.
Update the error messages and add new tests.
* ChakraCore/test/es6/unicode_6_identifier_Blue524737.baseline-jsc:
* stress/lift-template-literal.js: Added.
(dump):
(testTag.return.tag):
(testTag):
* stress/template-literal-syntax.js:
2017-01-26 Mark Lam <mark.lam@apple.com>
Fix missing exception check in genericTypedArrayViewProtoFuncSet().
https://bugs.webkit.org/show_bug.cgi?id=166812
<rdar://problem/29916672>
Reviewed by Saam Barati.
* stress/regress-166812.js: Added.
2017-01-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r211224.
https://bugs.webkit.org/show_bug.cgi?id=167479
"It was a Kraken performance regression" (Requested by
saamyjoon on #webkit).
Reverted changeset:
"OSR entry: delay outer-loop compilation when at inner-loop"
https://bugs.webkit.org/show_bug.cgi?id=167149
http://trac.webkit.org/changeset/211224
2017-01-26 JF Bastien <jfbastien@apple.com>
OSR entry: delay outer-loop compilation when at inner-loop
https://bugs.webkit.org/show_bug.cgi?id=167149
Reviewed by Filip Pizlo.
Try to be mean to OSR entry by using nested loops, and having
non-int32 types or truly varying types.
Mandelbrot currently never tiers up to FTL because it exits too
many times before this. That shouldn't happen because it's just
numbers and int32s. I'll file a bug to fix this.
* microbenchmarks/mandelbrot.js: Added.
(mandelbrot):
(printable):
* microbenchmarks/nonude.js: Added.
(Array.prototype.remove):
(const.u):
(const.load):
(const.scan):
(const.main):
2017-01-25 Saam Barati <sbarati@apple.com>
WebAssembly JS API: coerce return values from imports
https://bugs.webkit.org/show_bug.cgi?id=165480
<rdar://problem/29760318>
Reviewed by Yusuke Suzuki.
* wasm/function-tests/function-import-return-value.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.x.assert.eq):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.tests.Math.fround):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.let.type.of.Reflect.ownKeys):
(test.1):
(assert.truthy):
(assert.throws):
2017-01-25 Filip Pizlo <fpizlo@apple.com>
jsc.cpp should have the $.agent stuff for testing SAB
https://bugs.webkit.org/show_bug.cgi?id=167431
Reviewed by Saam Barati.
Add a very basic test of Atomics using $.agent. This is based on
LayoutTests/workers/sab/simple.html.
* stress/lars-sab-workers.js: Added.
(startWorker):
(resources):
(wake):
(else):
2017-01-24 Filip Pizlo <fpizlo@apple.com>
Atomics.store should return the int-converted value according to toInteger
https://bugs.webkit.org/show_bug.cgi?id=167399
Reviewed by Saam Barati.
* stress/atomics-add-uint32.js: Added.
* stress/atomics-store-return.js: Fix the test to match what the spec wants.
2017-01-24 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Optimize Number#toString with Int52
https://bugs.webkit.org/show_bug.cgi?id=167303
Reviewed by Sam Weinig.
* stress/to-string-with-int52.js: Added.
(shouldBe):
2017-01-24 Filip Pizlo <fpizlo@apple.com>
Atomics.store should return the int-converted value, not the value that it stored
https://bugs.webkit.org/show_bug.cgi?id=167395
Reviewed by Saam Barati.
* stress/atomics-store-return.js: Added.
2017-01-24 Filip Pizlo <fpizlo@apple.com>
-0 is a valid array index and AtomicsObject should know this
https://bugs.webkit.org/show_bug.cgi?id=167386
Reviewed by Mark Lam.
* stress/atomics-neg-zero.js: Added.
2017-01-23 Saam Barati <sbarati@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=167247
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
<rdar://problem/30121809>
Reviewed by Filip Pizlo.
* stress/spread-consults-correct-global-object.js: Added.
(assert):
(spread):
* stress/spread-correct-global-object-on-exception.js: Added.
(assert):
(spread):
(const.objectText.let.o.Symbol.iterator):
(catch):
2017-01-21 Yusuke Suzuki <utatane.tea@gmail.com>
dynamic import is ambiguous with import declaration at module code
https://bugs.webkit.org/show_bug.cgi?id=167098
Reviewed by Darin Adler.
* modules/import-call.js: Added.
(from.string_appeared_here.import.string_appeared_here.then):
* modules/import-call/main.js: Added.
* stress/import-syntax.js:
(async):
2017-01-19 Skachkov Oleksandr <gskachkov@gmail.com>
"this" missing after await in async arrow function
https://bugs.webkit.org/show_bug.cgi?id=166919
Reviewed by Saam Barati.
* stress/async-arrow-functions-lexical-binding-in-class.js:
(ChildClass.prototype.asyncThisPropWithAwaitBody):
(ChildClass.prototype.asyncThisPropInEvalWithAwaitBody):
(ChildClass.prototype.asyncThisValueBodyWithAwait):
(ChildClass.prototype.asyncThisValueInEvalWithAwaitBody):
(ChildClass):
(ChildClass3):
(ChildClass3.prototype.classValue):
(ChildClass3.prototype.get classProperty):
* stress/async-arrow-functions-lexical-new.target-binding.js:
(C2WithAwait):
2017-01-16 Filip Pizlo <fpizlo@apple.com>
Make opaque root scanning truly constraint-based
https://bugs.webkit.org/show_bug.cgi?id=165760
Reviewed by Geoffrey Garen.
Added this test, which demonstrates the benefit of having a dedicated string subspace.
* microbenchmarks/stringalloc.js: Added.
2017-01-17 Michael Saboff <msaboff@apple.com>
Nested parenthesized regular expressions with non-zero minimum counts appear to hang and use lots of memory
https://bugs.webkit.org/show_bug.cgi?id=167125
Reviewed by Filip Pizlo.
* microbenchmarks/regexp-nested-nonzero-min-counted-parens.js: Added.
New test with limits that run slow and take a reasonable amount of memory
before the change and run fast, using little memory with the change.
2017-01-14 Yusuke Suzuki <utatane.tea@gmail.com>
Annotate large string tests with largeHeap
https://bugs.webkit.org/show_bug.cgi?id=167054
Reviewed by Filip Pizlo.
* microbenchmarks/dense-set.js:
* microbenchmarks/lots-of-fields.js:
* stress/joined-strings-should-not-exceed-max-string-length.js:
* stress/make-large-string-jit-strcat.js:
* stress/make-large-string-jit.js:
* stress/make-large-string-strcat.js:
* stress/make-large-string.js:
* stress/string-joining-long-strings-should-not-crash.js:
* stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
2017-01-14 Yusuke Suzuki <utatane.tea@gmail.com>
Reserve capacity for StringBuilder in unescape
https://bugs.webkit.org/show_bug.cgi?id=167008
Reviewed by Sam Weinig.
* stress/unescape.js: Added.
(shouldBe):
2017-01-12 Saam Barati <sbarati@apple.com>
Add a slice intrinsic to the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=166707
<rdar://problem/29913445>
Reviewed by Filip Pizlo.
* stress/array-slice-intrinsic.js: Added.
(assert):
(shallowEq):
(runTest1):
(runTest2):
* stress/array-slice-jettison-on-constructor-change.js: Added.
(assert):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
* stress/array-slice-osr-exit-2.js: Added.
(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
* stress/array-slice-osr-exit.js: Added.
(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
2017-01-11 Ryan Haddad <ryanhaddad@apple.com>
Mark es6/typed_arrays_correct_prototype_chains.js as failing after r210570.
https://bugs.webkit.org/show_bug.cgi?id=166931i
Unreviewed test gardening.
* es6.yaml:
2017-01-10 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r210052.
https://bugs.webkit.org/show_bug.cgi?id=166915
"breaks web compatability" (Requested by keith_miller on
#webkit).
Reverted changeset:
"Add support for global"
https://bugs.webkit.org/show_bug.cgi?id=165171
http://trac.webkit.org/changeset/210052
2017-01-10 Mark Lam <mark.lam@apple.com>
Property setters should not be called for bound arguments list entries.
https://bugs.webkit.org/show_bug.cgi?id=165631
Reviewed by Filip Pizlo.
* stress/property-setters-should-not-be-called-for-bound-arguments-list-entries.js: Added.
2017-01-10 Skachkov Oleksandr <gskachkov@gmail.com>
Calling async arrow function which is in a class's member function will cause error
https://bugs.webkit.org/show_bug.cgi?id=166879
Reviewed by Saam Barati.
* stress/async-arrow-functions-lexical-binding-in-class.js: Added.
(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass.prototype.get property):
(BaseClass):
(runSomething):
(ChildClass.prototype.classValue):
(ChildClass.prototype.get classProperty):
(ChildClass.prototype.asyncValueExp):
(ChildClass.prototype.asyncValueBody):
(ChildClass.prototype.asyncThisPropExp):
(ChildClass.prototype.asyncThisPropBody):
(ChildClass.prototype.asyncThisPropInEvalExp):
(ChildClass.prototype.asyncThisPropInEvalBody):
(ChildClass.prototype.asyncThisValueExp):
(ChildClass.prototype.asyncThisValueBody):
(ChildClass.prototype.asyncThisValueInEvalExp):
(ChildClass.prototype.asyncThisValueInEvalBody):
(ChildClass):
(ChildClass2):
(ChildClass2.prototype.classValue):
(ChildClass2.prototype.get classProperty):
* stress/async-arrow-functions-lexical-super-binding.js:
2017-01-09 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Prototype dynamic-import
https://bugs.webkit.org/show_bug.cgi?id=165724
Reviewed by Saam Barati.
* stress/import-basic.js: Added.
(async.async.load):
(async):
(catch):
* stress/import-from-eval.js: Added.
(async):
(catch):
* stress/import-syntax.js: Added.
(testSyntaxError):
* stress/import-tests/cocoa.js: Added.
(export.Cocoa):
(export.hello):
* stress/import-tests/multiple.js: Added.
(export.result):
* stress/import-tests/multiple2.js: Added.
(export.ok):
* stress/import-tests/should.js: Added.
(export.shouldBe):
(export.shouldThrow):
* stress/modules-syntax-error.js:
2017-01-09 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r210476.
https://bugs.webkit.org/show_bug.cgi?id=166859
"4% JSBench regression" (Requested by keith_mi_ on #webkit).
Reverted changeset:
"Add a slice intrinsic to the DFG/FTL"
https://bugs.webkit.org/show_bug.cgi?id=166707
http://trac.webkit.org/changeset/210476
2017-01-06 Saam Barati <sbarati@apple.com>
Add a slice intrinsic to the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=166707
Reviewed by Filip Pizlo.
* stress/array-slice-intrinsic.js: Added.
(assert):
(shallowEq):
(runTest1):
(runTest2):
* stress/array-slice-jettison-on-constructor-change.js: Added.
(assert):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
* stress/array-slice-osr-exit-2.js: Added.
(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
* stress/array-slice-osr-exit.js: Added.
(assert):
(Foo):
(shallowEq):
(runTest1):
(runTest2):
(addRandomProperties):
(runTests):
2017-01-06 Michael Saboff <msaboff@apple.com>
@putByValDirect in Array.of and Array.from overwrites non-writable/configurable properties
https://bugs.webkit.org/show_bug.cgi?id=153486
Reviewed by Saam Barati.
New regression test.
* stress/regress-153486.js: Added.
(shouldEqual):
(makeUnwriteableUnconfigurableObject):
(testArrayOf):
(testArrayFrom):
(runTest):
2016-12-30 Filip Pizlo <fpizlo@apple.com>
DeferGC::~DeferGC should be super cheap
https://bugs.webkit.org/show_bug.cgi?id=166626
Reviewed by Saam Barati.
* stress/slow-path-generator-updating-current-node-dfg.js:
* stress/unshift-array-storage.js:
2017-01-04 JF Bastien <jfbastien@apple.com>
WebAssembly: sections with the same name are allowed
https://bugs.webkit.org/show_bug.cgi?id=166708
Reviewed by Saam Barati.
* wasm/self-test/test_BuilderJSON.js:
(SectionsWithSameCustomName):
2017-01-04 Saam Barati <sbarati@apple.com>
stress/spread-calling.js timing out on the bots
https://bugs.webkit.org/show_bug.cgi?id=166689
<rdar://problem/29779182>
Reviewed by Mark Lam.
* stress/spread-calling.js:
2017-01-04 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: add Module.sections
https://bugs.webkit.org/show_bug.cgi?id=165159
<rdar://problem/29760326>
Reviewed by Mark Lam.
As described here: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodulecustomsections
* wasm/Builder.js: allow custom sections to be duplicated
* wasm/js-api/Module.customSection.js: Added.
(assert.throws.WebAssembly.Module.prototype.customSections):
(assert.eq):
2017-01-04 Saam Barati <sbarati@apple.com>
We don't properly handle exceptions inside the nativeCallTrampoline macro in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=163720
Reviewed by Mark Lam.
* stress/bound-function-tail-call-with-exception.js: Added.
(bar):
(foo):
(catch):
2017-01-03 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: check and test in-call / out-call values
https://bugs.webkit.org/show_bug.cgi?id=164876
<rdar://problem/29844107>
Reviewed by Saam Barati.
* wasm.yaml:
* wasm/assert.js: add an assert for NaN comparison
* wasm/fuzz/export-function.js: Added. Generate random wasm export
signatures, and call them with random parameters.
(const.paramExporter):
(const.setBuffer):
(const.types.generate):
(generate):
* wasm/js-api/export-arity.js: Added.
(const.paramExporter): Test that mismatched arities when JS calls
wasm follow the defined semantics: i32 is 0, f32 / f64 are NaN.
https://github.com/WebAssembly/design/blob/master/JS.md#exported-function-exotic-objects
* wasm/js-api/export-void-is-undef.js: Added. Test that "void"
wasm functions return "undefined" in JS.
2017-01-02 JF Bastien <jfbastien@apple.com>
WebAssembly: handle and optimize wasm export → wasm import calls
https://bugs.webkit.org/show_bug.cgi?id=165282
Reviewed by Saam Barati.
* wasm/Builder.js: Add a Proxy to Builder.js, which intercepts
unknown property lookups. This creates way better error messages
on typos than 'undefined is not a function', which happens
semi-frequently as I typo opcode names (and which one is a typo is
hard to find because we chain builders).
(const._isValidValue):
(get target):
(const._importFunctionContinuation):
(const._importMemoryContinuation):
(const._importTableContinuation):
(const._exportFunctionContinuation):
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
* wasm/LowLevelBinary.js: Add limited support for var{u}int64 (only the 32-bit values)
(export.default.LowLevelBinary.prototype.varint32):
(export.default.LowLevelBinary.prototype.varuint64):
(export.default.LowLevelBinary.prototype.varint64):
* wasm/function-tests/exceptions.js: update error message
* wasm/function-tests/trap-load.js: update error message
* wasm/function-tests/trap-store.js: update error message
* wasm/js-api/wasm-to-wasm-bad-signature.js: Added. Test a bunch of bad wasm->wasm import signatures
(const.makeImportee.signature.switch):
(BadSignatureDropStartParams):
* wasm/js-api/wasm-to-wasm.js: Added. Test 64-bit wasm->wasm import calls
(const.callerModule):
(const.calleeModule):
(WasmToWasm):
2017-01-02 Saam Barati <sbarati@apple.com>
WebAssembly: Some loads don't take into account the offset
https://bugs.webkit.org/show_bug.cgi?id=166616
<rdar://problem/29841541>
Reviewed by Keith Miller.
* wasm/function-tests/load-offset.js: Added.
2016-12-29 Saam Barati <sbarati@apple.com>
WebAssembly: Rebase spec-tests now that wabt has been updated to produce certain kinds of invalid modules
https://bugs.webkit.org/show_bug.cgi?id=166491
<rdar://problem/29814999>
Reviewed by Yusuke Suzuki.
Based off these revisions:
- spec: b055d01ea1dfdd7a5231ae779095435f836de97f
- wabt: d0d44702c753f851b094615298a2f4d4e3c21035
The reason for the rebase is that wabt was updated to stop
silently rejecting invalid modules. This was needed because
some of the spec tests check to make sure that the module
is invalid, but wabt was silently ignoring the errors and
generating valid modules:
https://github.com/WebAssembly/wabt/issues/256
* wasm.yaml:
* wasm/spec-tests/address.wast.js:
* wasm/spec-tests/binary.wast.js:
* wasm/spec-tests/block.wast.js:
* wasm/spec-tests/br.wast.js:
* wasm/spec-tests/br_if.wast.js:
* wasm/spec-tests/br_table.wast.js:
* wasm/spec-tests/break-drop.wast.js:
* wasm/spec-tests/call.wast.js:
* wasm/spec-tests/call_indirect.wast.js:
* wasm/spec-tests/comments.wast.js:
* wasm/spec-tests/conversions.wast.js:
* wasm/spec-tests/custom_section.wast.js:
* wasm/spec-tests/endianness.wast.js:
* wasm/spec-tests/exports.wast.js:
* wasm/spec-tests/f32.wast.js:
* wasm/spec-tests/f32_cmp.wast.js:
* wasm/spec-tests/f64.wast.js:
* wasm/spec-tests/f64_cmp.wast.js:
* wasm/spec-tests/fac.wast.js:
* wasm/spec-tests/float_exprs.wast.js:
* wasm/spec-tests/float_literals.wast.js:
* wasm/spec-tests/float_memory.wast.js:
* wasm/spec-tests/float_misc.wast.js:
* wasm/spec-tests/forward.wast.js:
* wasm/spec-tests/func.wast.js:
* wasm/spec-tests/func_ptrs.wast.js:
* wasm/spec-tests/get_local.wast.js:
* wasm/spec-tests/globals.wast.js:
* wasm/spec-tests/i32.wast.js:
* wasm/spec-tests/i64.wast.js:
* wasm/spec-tests/imports.wast.js:
* wasm/spec-tests/int_exprs.wast.js:
* wasm/spec-tests/int_literals.wast.js:
* wasm/spec-tests/left-to-right.wast.js:
* wasm/spec-tests/linking.wast.js:
* wasm/spec-tests/loop.wast.js:
* wasm/spec-tests/memory.wast.js:
* wasm/spec-tests/memory_redundancy.wast.js:
* wasm/spec-tests/memory_trap.wast.js:
* wasm/spec-tests/names.wast.js:
* wasm/spec-tests/nop.wast.js:
* wasm/spec-tests/resizing.wast.js:
* wasm/spec-tests/return.wast.js:
* wasm/spec-tests/select.wast.js:
* wasm/spec-tests/set_local.wast.js:
* wasm/spec-tests/skip-stack-guard-page.wast.js:
* wasm/spec-tests/stack.wast.js:
* wasm/spec-tests/start.wast.js:
* wasm/spec-tests/store_retval.wast.js:
* wasm/spec-tests/switch.wast.js:
* wasm/spec-tests/tee_local.wast.js:
* wasm/spec-tests/traps.wast.js:
* wasm/spec-tests/typecheck.wast.js:
* wasm/spec-tests/unreachable.wast.js:
* wasm/spec-tests/unwind.wast.js:
2016-12-28 Saam Barati <sbarati@apple.com>
WebAssembly: Don't allow duplicate export names
https://bugs.webkit.org/show_bug.cgi?id=166490
<rdar://problem/29815000>
Reviewed by Keith Miller.
* wasm.yaml:
* wasm/function-tests/invalid-duplicate-export.js: Added.
2016-12-28 Saam Barati <sbarati@apple.com>
WebAssembly: Implement grow_memory and current_memory
https://bugs.webkit.org/show_bug.cgi?id=166448
<rdar://problem/29803676>
Reviewed by Keith Miller.
I rewrote some of the testWasmModuleFunctions that used Memory to use
the JS API since the jsc.cpp version can no longer use memory.
* wasm.yaml:
* wasm/function-tests/add-12.js:
(testWasmModuleFunctions):
* wasm/function-tests/br-if-loop-less-than.js:
(testWasmModuleFunctions):
* wasm/function-tests/brTableAsIf.js:
(testWasmModuleFunctions):
* wasm/function-tests/brTableManyValues.js:
(testWasmModuleFunctions):
* wasm/function-tests/brTableWithLoop.js:
(testWasmModuleFunctions):
* wasm/function-tests/dumb-eq-if-then-else.js:
* wasm/function-tests/eqz.js:
* wasm/function-tests/grow-memory-2.js: Added.
(const.func):
(assert.eq.instance.exports.foo):
* wasm/function-tests/grow-memory-3.js: Added.
* wasm/function-tests/grow-memory-4.js: Added.
(const.func):
* wasm/function-tests/grow-memory.js: Added.
(binaryShouldNotParse):
(assert.truthy):
(assert.eq):
(memory.grow):
* wasm/function-tests/i32-load.js:
(testWasmModuleFunctions):
* wasm/function-tests/i32-load8-s.js:
* wasm/function-tests/max.js:
* wasm/function-tests/min.js:
* wasm/js-api/memory-grow.js: Added.
(i.i):
(assertEq):
* wasm/js-api/test_memory.js:
* wasm/wasm.json:
2016-12-25 Yusuke Suzuki <utatane.tea@gmail.com>
Propagate the source origin as much as possible
https://bugs.webkit.org/show_bug.cgi?id=166348
Reviewed by Darin Adler.
* stress/source-origin.js: Added.
(shouldBe):
2016-12-24 Caio Lima <ticaiolima@gmail.com>
[test262] Fixing mapped arguments object property test case
https://bugs.webkit.org/show_bug.cgi?id=159398
Reviewed by Saam Barati.
* stress/arguments-bizarre-behaviour-disable-enumerability.js:
* stress/arguments-define-property.js: Added.
(assert):
(testProperties):
* stress/arguments-non-configurable.js: Added.
(assert):
(tryChangeNonConfigurableDescriptor):
(set tryChangeNonConfigurableDescriptor):
(tryChangeWritableOfNonConfigurableDescriptor):
* test262.yaml:
016-12-20 Caio Lima <ticaiolima@gmail.com>
[test262] Fixing mapped arguments object property test case
https://bugs.webkit.org/show_bug.cgi?id=159398
Reviewed by .
* stress/arguments-bizarre-behaviour-disable-enumerability.js:
* stress/arguments-define-property.js: Added.
(assert):
(testProperties):
* stress/arguments-non-configurable.js: Added.
(assert):
(tryChangeNonConfigurableDescriptor):
(set tryChangeNonConfigurableDescriptor):
(tryChangeWritableOfNonConfigurableDescriptor):
* test262.yaml:
2016-12-23 Keith Miller <keith_miller@apple.com>
WebAssembly: trap on bad division.
https://bugs.webkit.org/show_bug.cgi?id=164786
Reviewed by Mark Lam.
Also, mark conversions as passing.
* wasm.yaml:
* wasm/wasm.json:
2016-12-22 Keith Miller <keith_miller@apple.com>
WebAssembly: Make spec-tests/f32.wast.js and spec-tests/f64.wast.js pass
https://bugs.webkit.org/show_bug.cgi?id=166447
Reviewed by Saam Barati.
* wasm.yaml:
* wasm/wasm.json:
2016-12-22 Saam Barati <sbarati@apple.com>
WebAssembly: Make calling Wasm functions that returns or takes an i64 as a parameter an early exception
https://bugs.webkit.org/show_bug.cgi?id=166437
<rdar://problem/29793949>
Reviewed by Keith Miller.
* wasm.yaml:
* wasm/function-tests/i64-from-js-exceptions.js: Added.
(const.imp.import.sideEffects):
(assert.throws.instance.exports.foo.valueOf):
2016-12-22 Mark Lam <mark.lam@apple.com>
De-duplicate finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=160168
Reviewed by Saam Barati.
Re-landing r209952 with a few new tests added in test-finally.js.
* stress/deeply-nested-finallys.js: Copied from JSTests/stress/deeply-nested-finallys.js.
- Tests many levels of finally nesting. This causes the old code to hang (and
crashes eventually) while trying to generate bytecode for the exponentially
duplicated finally blocks. The new code completes this test almost instantly.
* stress/test-finally.js: Copied from JSTests/stress/test-finally.js.
- Tests control flow through various permutations of finally blocks.
2016-12-22 Saam Barati <sbarati@apple.com>
WebAssembly: Make the spec-tests/address.wast.js test pass
https://bugs.webkit.org/show_bug.cgi?id=166429
<rdar://problem/29793220>
Reviewed by Keith Miller.
* wasm.yaml:
2016-12-22 Keith Miller <keith_miller@apple.com>
WebAssembly: The validator should not allow unused stack entries at the end of a block
https://bugs.webkit.org/show_bug.cgi?id=166411
Reviewed by Saam Barati.
Test cleanup and enable new passing tests.
* wasm.yaml:
* wasm/function-tests/br-if-as-return.js:
2016-12-22 Saam Barati <sbarati@apple.com>
WebAssembly: Make the spec-tests/start.wast.js test pass
https://bugs.webkit.org/show_bug.cgi?id=166416
<rdar://problem/29784532>
Reviewed by Yusuke Suzuki.
* wasm.yaml:
2016-12-21 Keith Miller <keith_miller@apple.com>
WebAssembly: Fix decode floating point constants in unreachable code
https://bugs.webkit.org/show_bug.cgi?id=166400
Reviewed by Saam Barati.
* wasm.yaml:
2016-12-21 Keith Miller <keith_miller@apple.com>
WebAssembly: Allow br, br_if, and br_table to act as a return
https://bugs.webkit.org/show_bug.cgi?id=166393
Reviewed by Saam Barati.
Add tests for breaks acting as returns and fix tests that
validate error messages.
* wasm/function-tests/br-as-return.js: Added.
* wasm/function-tests/br-if-as-return.js: Added.
* wasm/function-tests/br-table-as-return.js: Added.
* wasm/function-tests/if-no-else-non-void.js:
* wasm/function-tests/struct.js: Added.
* wasm/js-api/global-error.js:
(assert.throws):
* wasm/js-api/table.js:
(assert.throws):
2016-12-21 Saam Barati <sbarati@apple.com>
WebAssembly: Import spec tests
https://bugs.webkit.org/show_bug.cgi?id=166395
Rubber stamped by Keith Miller.
This patch implements the Wasm spec's tests found here:
https://github.com/WebAssembly/spec/tree/master/interpreter/test
These tests are in .wast s-epxression format. To convert
them to JS, I use a script from the wabt library, found here:
https://github.com/WebAssembly/wabt/blob/master/test/run-gen-spec-js.py
I also added a script that automatically imports the tests as
JS files. The inputs to the script is the path to the Wasm spec
git repo and the path to the wabt git repo. This will make importing
new tests easy in the future.
The wasm spec imported is at commit: b055d01ea1dfdd7a5231ae779095435f836de97f
The wabt used to do the import is at commit: 622b42dced6d793e9d49e9b1fd1d1524defd1387
* wasm.yaml:
* wasm/import-spec-tests.rb: Added.
* wasm/spec-tests: Added.
* wasm/spec-tests/address.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/binary.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/block.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/br.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/br_if.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/br_table.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/break-drop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/call.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/call_indirect.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/comments.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/conversions.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/custom_section.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/endianness.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/exports.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/f32.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/f32_cmp.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/f64.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/f64_cmp.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/fac.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/float_exprs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/float_literals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/float_memory.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/float_misc.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/forward.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/func.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/func_ptrs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/get_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/globals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/i32.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/i64.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/imports.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/int_exprs.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/int_literals.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/left-to-right.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/linking.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/loop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/memory.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/memory_redundancy.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/memory_trap.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/names.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/nop.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/resizing.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/return.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/select.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/set_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/skip-stack-guard-page.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/stack.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/start.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/store_retval.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/switch.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/tee_local.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/traps.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/typecheck.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/unreachable.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
* wasm/spec-tests/unwind.wast.js: Added.
(register):
(module):
(instance):
(assert_malformed):
(assert_invalid):
(assert_soft_invalid):
(assert_unlinkable):
(assert_uninstantiable):
(assert_trap):
(assert_return):
(assert_return_nan):
2016-12-20 Keith Miller <keith_miller@apple.com>
Add support for global
https://bugs.webkit.org/show_bug.cgi?id=165171
Reviewed by Filip Pizlo.
* stress/global.js: Added.
2016-12-20 JF Bastien <jfbastien@apple.com>
WebAssembly API: implement WebAssembly.LinkError
https://bugs.webkit.org/show_bug.cgi?id=165805
<rdar://problem/29747874>
Reviewed by Mark lam.
Update all exception sites which now throw WebAssembly.LinkError.
* wasm/js-api/element-data.js:
* wasm/js-api/element.js:
(assert.throws):
* wasm/js-api/global-error.js:
(new.Number):
* wasm/js-api/table.js:
(assert.throws):
(new.WebAssembly.Table):
* wasm/js-api/test_Data.js:
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/test_memory.js:
(test):
(test.testMemImportError): Deleted.
2016-12-20 JF Bastien <jfbastien@apple.com>
WebAssembly: unique function signatures
https://bugs.webkit.org/show_bug.cgi?id=165957
<rdar://problem/29735737>
Reviewed by Saam Barati.
* wasm/function-tests/table-basic.js: FIXME is now addressed,
though instance to instance calls still need work which bug
#165282 will address
(i.assert.eq.foo):
* wasm/js-api/unique-signature.js: Added.
(CallIndirectWithDuplicateSignatures):
2016-12-19 Mark Lam <mark.lam@apple.com>
Rolling out r209974 and r209952. They break some websites in mysterious ways. Step 2: Rollout r209952.
https://bugs.webkit.org/show_bug.cgi?id=166049
Not reviewed.
* stress/deeply-nested-finallys.js: Removed.
* stress/test-finally.js: Removed.
2016-12-19 Saam Barati <sbarati@apple.com>
WebAssembly: Make running Wasm tests take less time by reducing some tests' iteration count and by splitting some tests into different files
https://bugs.webkit.org/show_bug.cgi?id=166017
Reviewed by Yusuke Suzuki.
* wasm/function-tests/trap-load-2.js: Added.
(assert):
(wasmFrameCountFromError):
(continuation):
(i.catch):
* wasm/function-tests/trap-load.js:
(assert.continuation): Deleted.
* wasm/function-tests/trap-store-2.js: Added.
(import.Builder.from.string_appeared_here.assert):
(continuation):
(i.catch):
* wasm/function-tests/trap-store.js:
(assert.continuation): Deleted.
(assert): Deleted.
* wasm/js-api/test_memory.js:
(test):
2016-12-18 Saam Barati <sbarati@apple.com>
WebAssembly: Implement the WebAssembly.compile and WebAssembly.validate
https://bugs.webkit.org/show_bug.cgi?id=165936
Reviewed by Mark Lam.
* wasm/js-api/Module-compile.js: Added.
(async.testPromiseAPI):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/validate.js: Added.
(assert.truthy.WebAssembly.validate.builder.WebAssembly):
2016-12-16 Mark Lam <mark.lam@apple.com>
De-duplicate finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=160168
Reviewed by Keith Miller.
* stress/deeply-nested-finallys.js: Added.
- Tests many levels of finally nesting. This causes the old code to hang (and
crashes eventually) while trying to generate bytecode for the exponentially
duplicated finally blocks. The new code completes this test almost instantly.
* stress/test-finally.js: Added.
- Tests control flow through various permutations of finally blocks.
2016-12-16 Saam Barati <sbarati@apple.com>
WebAssembly: WasmB3IRGenerator should throw exceptions instead of crash
https://bugs.webkit.org/show_bug.cgi?id=165834
Reviewed by Keith Miller.
* wasm/function-tests/exceptions.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
* wasm/function-tests/table-basic.js:
(i.i.42.throw.new.Error):
2016-12-16 Keith Miller <keith_miller@apple.com>
i64.eqz should use an Int64 zero
https://bugs.webkit.org/show_bug.cgi?id=165942
Reviewed by Mark Lam.
* wasm/wasm.json:
2016-12-15 Keith Miller <keith_miller@apple.com>
Fix validation of non-void if blocks with no else
https://bugs.webkit.org/show_bug.cgi?id=165938
Reviewed by Saam Barati.
Add a new failing test and a fix an existing one.
* wasm/function-tests/dead-call.js:
* wasm/function-tests/if-no-else-non-void.js: Added.
2016-12-15 Keith Miller <keith_miller@apple.com>
Wasm should not create empty unlinked callsites
https://bugs.webkit.org/show_bug.cgi?id=165933
Reviewed by Mark Lam.
* wasm/function-tests/dead-call.js: Added.
2016-12-15 JF Bastien <jfbastien@apple.com>
WebAssembly: improve compilation error messages
https://bugs.webkit.org/show_bug.cgi?id=163919
Reviewed by Saam Barati.
Update error messages in these tests.
Use the assert.throws facility in many of them which weren't already.
* wasm/js-api/element.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
(assert.throws):
* wasm/js-api/global-error.js:
(assert.throws.new.WebAssembly.Module.bin):
(assert.throws):
(new.Number):
* wasm/js-api/table.js:
(assert.throws.new.WebAssembly.Module.builder.WebAssembly):
(assert.throws):
(assertBadTableImport):
* wasm/js-api/test_Data.js:
(DataSectionWithoutMemory):
* wasm/js-api/test_Start.js:
(InvalidStartFunctionIndex):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2016-12-15 JF Bastien <jfbastien@apple.com>
WebAssembly API: improve data section errors
https://bugs.webkit.org/show_bug.cgi?id=165733
Reviewed by Keith Miller.
* wasm/js-api/element-data.js: Added.
(ElementBeforeData.set const):
(ElementBeforeData): check the order of initialization, which is observable on failure
* wasm/js-api/test_Data.js:
(DataSectionWithoutMemory):
(DataSectionOffTheEnd): Deleted.
(DataSectionPartlyOffTheEnd): Deleted.
(DataSectionEmptyOffTheEnd): Deleted.
(DataSectionSeenByStart): Deleted.
2016-12-15 Keith Miller <keith_miller@apple.com>
Fix 64-bit shift family Wasm opcodes
https://bugs.webkit.org/show_bug.cgi?id=165902
Reviewed by Geoffrey Garen.
Add tests for shift family of instructions. Since
we can't generate i64 values to pass to wasm we only compile
the code for those functions. Attempting to generate any i64
code using these instructions would have been enough to cause
the B3 Validation error anyway.
* wasm/assert.js:
* wasm/function-tests/rotl.js: Added.
* wasm/function-tests/rotr.js: Added.
* wasm/function-tests/shl.js: Added.
* wasm/function-tests/shr-s.js: Added.
* wasm/function-tests/shr-u.js: Added.
* wasm/wasm.json:
2016-12-14 Keith Miller <keith_miller@apple.com>
WebAssembly: test_BuilderJSON.js is broken
https://bugs.webkit.org/show_bug.cgi?id=165893
Reviewed by Michael Saboff.
* wasm/Builder.js:
(const._isValidValue):
* wasm/self-test/test_BuilderJSON.js:
2016-12-14 Keith Miller <keith_miller@apple.com>
Unreviewed, fix test.
* wasm/function-tests/i32-const.js:
2016-12-14 Keith Miller <keith_miller@apple.com>
Wasm should decode constants correctly
https://bugs.webkit.org/show_bug.cgi?id=165886
Reviewed by Saam Barati.
* wasm/Builder.js:
(const._isValidValue):
* wasm/Builder_WebAssemblyBinary.js:
(const.putOp):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.float):
(export.default.LowLevelBinary.prototype.double):
* wasm/function-tests/f32-const.js: Added.
* wasm/function-tests/f64-const.js: Added.
* wasm/function-tests/i32-const.js: Added.
* wasm/wasm.json:
2016-12-14 Saam Barati <sbarati@apple.com>
WebAssembly: Add various low hanging fruit that will allow us to run the LLVM torture tests in Wasm
https://bugs.webkit.org/show_bug.cgi?id=165883
Reviewed by Keith Miller.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Export):
* wasm/js-api/table.js:
(assertBadBinary):
(assertBadTable):
(assert.truthy):
* wasm/js-api/test_memory.js:
(binaryShouldNotParse):
(test):
(test.testMemImportError):
(assert.truthy):
(assert): Deleted.
2016-12-14 Filip Pizlo <fpizlo@apple.com>
DirectTailCall implementation needs to tell the shuffler what to put into the ArgumentCount explicitly
https://bugs.webkit.org/show_bug.cgi?id=165882
Reviewed by Mark Lam.
* stress/direct-tail-call-arity-mismatch-count-args.js: Added.
(foo):
(bar):
2016-12-14 Keith Miller <keith_miller@apple.com>
WebAssembly JS API: implement Global
https://bugs.webkit.org/show_bug.cgi?id=164133
Reviewed by Saam Barati.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
* wasm/Builder_WebAssemblyBinary.js:
(const.valueType.WASM.description.type.i32.type.const.putGlobalType):
(const.putOp):
(const.putInitExpr):
(const.emitters.Import):
(const.emitters.Global):
(const.emitters.Export):
(const.emitters.Code):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.varuint32):
(export.default.LowLevelBinary.prototype.varint32):
* wasm/js-api/global-error.js: Added.
(catch):
(assert.truthy):
* wasm/js-api/global-external-init-from-import.js: Added.
* wasm/js-api/global-internal-init-from-import.js: Added.
* wasm/js-api/global-mutate.js: Added.
(createInternalGlobalModule):
* wasm/js-api/globals-export.js: Added.
* wasm/js-api/globals-import.js: Added.
* wasm/wasm.json:
2016-12-13 Saam Barati <sbarati@apple.com>
WebAssembly: implement the elements section
https://bugs.webkit.org/show_bug.cgi?id=165715
Reviewed by Keith Miller.
* wasm/Builder.js:
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.switch):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Element):
* wasm/function-tests/basic-element.js: Added.
* wasm/js-api/element.js: Added.
(assertBadBinary):
(assertBadBinary.badInstantiation):
2016-12-13 Saam Barati <sbarati@apple.com>
WebAssembly: implement the table section and table import
https://bugs.webkit.org/show_bug.cgi?id=165716
Reviewed by Keith Miller.
* wasm/Builder.js:
(const._importMemoryContinuation):
(const._importTableContinuation):
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(const._importMemoryContinuation.section): Deleted.
(const): Deleted.
(const._importMemoryContinuation.assert): Deleted.
* wasm/Builder_WebAssemblyBinary.js:
(const.putResizableLimits):
(const.putTable):
(const.emitters.Import):
(const.emitters.Table):
* wasm/function-tests/call-indirect-params.js:
* wasm/function-tests/call-indirect.js:
* wasm/function-tests/table-basic-2.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
(func):
* wasm/function-tests/table-basic.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.makeInstance):
* wasm/js-api/call-indirect-results.js:
(const.wasmModuleWhichImportJS): Deleted.
(MonomorphicImport): Deleted.
* wasm/js-api/call-indirect.js:
(const.wasmModuleWhichImportJS):
(const.makeTable):
(Polyphic2Import):
(VirtualImport):
(MonomorphicImport): Deleted.
* wasm/js-api/table.js: Added.
(assertBadBinary):
(assert.truthy):
(assertBadTable):
(assertBadTableImport):
(assertBadBinary.assertBadTableInstance):
(assertBadTableInstance):
(new.WebAssembly.Table):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2016-12-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r209725.
https://bugs.webkit.org/show_bug.cgi?id=165811
"Broke ARMv7 builds" (Requested by msaboff on #webkit).
Reverted changeset:
"REGRESSION(r209653): speedometer crashes making virtual slow
path tailcalls"
https://bugs.webkit.org/show_bug.cgi?id=165748
http://trac.webkit.org/changeset/209725
2016-12-12 Michael Saboff <msaboff@apple.com>
REGRESSION(r209653): speedometer crashes making virtual slow path tailcalls
https://bugs.webkit.org/show_bug.cgi?id=165748
Reviewed by Filip Pizlo.
New regression test.
* stress/regress-165748.js: Added.
(sum1):
(sum2):
(sum3):
(sum4):
(sum5):
(sum6):
(tailCaller):
(test):
2016-12-12 Mark Lam <mark.lam@apple.com>
Debug JSC test timeout: stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js.ftl-no-cjit.
https://bugs.webkit.org/show_bug.cgi?id=164630
Reviewed by Keith Miller.
Speculative fix for timeout issue. It looks like this test just runs a bit
slower on debug builds. So, we'll give it a little more time to run.
* stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
2016-12-11 Saam Barati <sbarati@apple.com>
We should be able to throw exceptions from Wasm code and when Wasm frames are on the stack
https://bugs.webkit.org/show_bug.cgi?id=165429
Reviewed by Keith Miller.
* wasm/function-tests/trap-load.js: Added.
(assert):
(wasmFrameCountFromError):
(i.catch):
(assert.continuation):
* wasm/function-tests/trap-store.js: Added.
(import.Builder.from.string_appeared_here.assert):
(i.catch):
(assert.continuation):
(assert):
* wasm/js-api/test_memory_constructor.js:
(assert):
2016-12-10 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r209653, r209654, r209663, and
r209673.
https://bugs.webkit.org/show_bug.cgi?id=165739
speedometer crashes (Requested by pizlo on #webkit).
Reverted changesets:
"JSVALUE64: Pass arguments in platform argument registers when
making JavaScript calls"
https://bugs.webkit.org/show_bug.cgi?id=160355
http://trac.webkit.org/changeset/209653
"Unreviewed build fix for 32 bit builds."
http://trac.webkit.org/changeset/209654
"Unreviewed build fix for the CLOOP after r209653"
http://trac.webkit.org/changeset/209663
"REGRESSION(r209653) Crash in CallFrameShuffler::snapshot()"
https://bugs.webkit.org/show_bug.cgi?id=165728
http://trac.webkit.org/changeset/209673
2016-12-10 Michael Saboff <msaboff@apple.com>
REGRESSION(r209653) Crash in CallFrameShuffler::snapshot()
https://bugs.webkit.org/show_bug.cgi?id=165728
Reviewed by Filip Pizlo.
New regression test.
* stress/regress-165728.js: Added.
(sum1):
(sum2):
(tailCaller):
(test):
2016-12-10 Keith Miller <keith_miller@apple.com>
Fix indirect_call if the result type is used.
https://bugs.webkit.org/show_bug.cgi?id=165727
Reviewed by Michael Saboff.
* wasm/js-api/call-indirect-results.js: Added.
(const.wasmModuleWhichImportJS):
(MonomorphicImport):
2016-12-10 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Module namespace object behaves like immutable prototype exotic object
https://bugs.webkit.org/show_bug.cgi?id=165598
Reviewed by Mark Lam.
* modules/namespace-prototype-assignment.js: Added.
(else):
(reportError):
(shouldEqual):
(shouldThrow):
(stringify):
(makeTestID):
(doInternalSetPrototypeOf):
(ordinarySetPrototypeOf):
(setImmutablePrototype):
(windowProxySetPrototypeOf):
(initSetterExpectation):
(throwIfNoExceptionPending):
(objectSetPrototypeOf):
(setUnderscoreProto):
(reflectSetPrototypeOf):
(setPrototypeOf):
(newObjectProto.toString):
(Symbol):
(test):
(runTests):
* modules/namespace-set-prototype-of.js: Added.
(shouldThrow):
(TypeError.Cannot.set prototype):
2016-12-09 Michael Saboff <msaboff@apple.com>
JSVALUE64: Pass arguments in platform argument registers when making JavaScript calls
https://bugs.webkit.org/show_bug.cgi?id=160355
Reviewed by Filip Pizlo.
New microbenchmarks to measure call type performance.
* microbenchmarks/calling-computed-args.js: Added.
* microbenchmarks/calling-many-callees.js: Added.
* microbenchmarks/calling-one-callee-fixed.js: Added.
* microbenchmarks/calling-one-callee.js: Added.
* microbenchmarks/calling-poly-callees.js: Added.
* microbenchmarks/calling-poly-extra-arity-callees.js: Added.
* microbenchmarks/calling-tailcall.js: Added.
* microbenchmarks/calling-virtual-arity-fixup-callees.js: Added.
* microbenchmarks/calling-virtual-arity-fixup-stackargs.js: Added.
* microbenchmarks/calling-virtual-callees.js: Added.
* microbenchmarks/calling-virtual-extra-arity-callees.js: Added.
2016-12-09 Keith Miller <keith_miller@apple.com>
Wasm should support call_indirect
https://bugs.webkit.org/show_bug.cgi?id=165718
Reviewed by Filip Pizlo.
* wasm/Builder.js:
* wasm/function-tests/call-indirect-params.js: Added.
* wasm/function-tests/call-indirect.js: Added.
* wasm/js-api/call-indirect.js: Added.
(const.wasmModuleWhichImportJS):
(MonomorphicImport):
(Polyphic2Import):
(VirtualImport):
* wasm/wasm.json:
2016-12-09 JF Bastien <jfbastien@apple.com>
WebAssembly: implement data section
https://bugs.webkit.org/show_bug.cgi?id=165696
Reviewed by Keith Miller.
As specified in https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#data-section
Note that some of the interesting corner cases are ill-defined by the spec: https://github.com/WebAssembly/design/issues/897
* wasm/Builder.js: create a data section from JavaScript
* wasm/Builder_WebAssemblyBinary.js: assemble the data section into the proper binary encoding
(const.emitters.Data):
* wasm/js-api/test_Data.js: Added.
(DataSection):
(DataSectionOffTheEnd):
(DataSectionPartlyOffTheEnd):
(DataSectionEmptyOffTheEnd):
(DataSectionSeenByStart):
* wasm/self-test/test_BuilderJSON.js: make sure the JSON structure is fine (this sanity checks before going to binary)
2016-12-09 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: implement start function
https://bugs.webkit.org/show_bug.cgi?id=165150
Reviewed by Saam Barati.
* wasm/Builder.js: allow building a .Start()
* wasm/Builder_WebAssemblyBinary.js:
* wasm/js-api/test_Start.js: Added.
(const.emitters.Start): serialize a start section
* wasm/self-test/test_BuilderJSON.js: validate the start section's content
2016-12-09 Saam Barati <sbarati@apple.com>
WebAssembly JS API: implement importing and defining Memory
https://bugs.webkit.org/show_bug.cgi?id=164134
Reviewed by Keith Miller.
* wasm/Builder.js:
(const._importMemoryContinuation.section):
(const._importMemoryContinuation.assert):
(const._importMemoryContinuation):
(const._exportFunctionContinuation.const): Deleted.
(const._exportFunctionContinuation): Deleted.
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Import):
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
* wasm/js-api/test_memory.js: Added.
(assert):
(binaryShouldNotParse):
(test):
(test.testMemImportError):
* wasm/js-api/test_memory_constructor.js: Added.
(assert):
(throw.new.Error):
(testInvalidSize):
(assert.testInvalidInitial):
(testInvalidInitial.testInvalidMaximum):
(testInvalidInitial):
(testInvalidMaximum):
* wasm/self-test/test_BuilderJSON.js:
2016-12-08 JF Bastien <jfbastien@apple.com>
WebAssembly: JSC::link* shouldn't need a CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=165591
Reviewed by Keith Miller.
test that wasm -> JS works, including the IC
* wasm/js-api/test_Instance.js:
(const.wasmModuleWhichImportJS):
(MonomorphicImport):
(Polyphic2Import):
(Polyphic3Import):
(VirtualImport):
2016-12-08 Filip Pizlo <fpizlo@apple.com>
Green the cloop bot by raising this threshold.
* mozilla/js1_5/Array/regress-101964.js:
2016-12-08 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: wire up Instance imports
https://bugs.webkit.org/show_bug.cgi?id=165118
Reviewed by Saam Barati.
* wasm/js-api/test_Instance.js: add the test, disabled for now
2016-12-07 Keith Miller <keith_miller@apple.com>
Add more missing trivial wasm ops.
https://bugs.webkit.org/show_bug.cgi?id=165564
Add tests for drop and tee_local.
Reviewed by Geoffrey Garen.
* wasm/function-tests/drop.js: Added.
* wasm/function-tests/nop.js: Added.
* wasm/function-tests/tee-local.js: Added.
2016-12-06 Keith Miller <keith_miller@apple.com>
Add support for truncation operators
https://bugs.webkit.org/show_bug.cgi?id=165519
Reviewed by Geoffrey Garen.
* wasm/function-tests/i32-trunc-s-f32.js: Added.
* wasm/function-tests/i32-trunc-s-f64.js: Added.
* wasm/function-tests/i32-trunc-u-f32.js: Added.
* wasm/function-tests/i32-trunc-u-f64.js: Added.
* wasm/function-tests/i64-trunc-s-f32.js: Added.
* wasm/function-tests/i64-trunc-s-f64.js: Added.
* wasm/function-tests/i64-trunc-u-f32.js: Added.
* wasm/function-tests/i64-trunc-u-f64.js: Added.
2016-12-06 Mark Lam <mark.lam@apple.com>
Introduce the concept of Immutable Prototype Exotic Objects to comply with the spec.
https://bugs.webkit.org/show_bug.cgi?id=165227
<rdar://problem/29442665>
Reviewed by Saam Barati.
* stress/get-from-scope-dynamic-onto-proxy.js:
- Updated error message.
* stress/proxy-dont-infinite-loop.js: Removed.
* stress/proxy-json-path.js: Removed.
* stress/rest-parameter-allocation-elimination-watchpoints-6.js: Removed.
- Removed these tests because the issue they are testing relies on being able to
set Object.prototype.__proto__ to something else (which is now not possible).
2016-12-05 Caitlin Potter <caitp@igalia.com>
[JSC] report unexpected token when "async" is followed by identifier
https://bugs.webkit.org/show_bug.cgi?id=165091
Reviewed by Mark Lam.
* stress/bug-165091.js:
2016-12-05 Keith Miller <keith_miller@apple.com>
Add Wasm i64 to i32 conversion.
https://bugs.webkit.org/show_bug.cgi?id=165378
Reviewed by Filip Pizlo.
It turns out the wrap operation is just B3's Trunc.
* wasm/wasm.json:
2016-12-04 Keith Miller <keith_miller@apple.com>
Add support for Wasm ctz and popcnt
https://bugs.webkit.org/show_bug.cgi?id=165369
Reviewed by Saam Barati.
* wasm/function-tests/ctz.js: Added.
* wasm/function-tests/popcnt.js: Added.
2016-12-03 JF Bastien <jfbastien@apple.com>
WebAssembly: update binary format to 0xD version
https://bugs.webkit.org/show_bug.cgi?id=165345
Reviewed by Keith Miller.
As described in the following PR: https://github.com/WebAssembly/design/pull/836
Originally committed in r209175, reverted in r209242, and fixed in r209284.
* wasm/Builder.js:
(const._normalizeFunctionSignature):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Code):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.block_type):
(export.default.LowLevelBinary.prototype.inline_signature_type): Deleted.
* wasm/WASM.js:
* wasm/js-api/test_basic_api.js:
* wasm/self-test/test_BuilderWebAssembly.js:
(EmptyModule):
(CustomSection):
* wasm/self-test/test_WASM.js:
* wasm/wasm.json:
2016-12-02 Keith Miller <keith_miller@apple.com>
Add Wasm copysign
https://bugs.webkit.org/show_bug.cgi?id=165355
Reviewed by Filip Pizlo.
* wasm/function-tests/copysign.js: Added.
2016-12-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r209298.
https://bugs.webkit.org/show_bug.cgi?id=165359
broke the build (Requested by smfr on #webkit).
Reverted changeset:
"Add Wasm copysign"
https://bugs.webkit.org/show_bug.cgi?id=165355
http://trac.webkit.org/changeset/209298
2016-12-02 Keith Miller <keith_miller@apple.com>
Add Wasm copysign
https://bugs.webkit.org/show_bug.cgi?id=165355
Reviewed by Filip Pizlo.
* wasm/function-tests/copysign.js: Added.
2016-12-02 Keith Miller <keith_miller@apple.com>
Unreviewed, fix git having a breakdown over trying to reland a rollout.
2016-12-02 Keith Miller <keith_miller@apple.com>
Add Wasm floating point nearest and trunc
https://bugs.webkit.org/show_bug.cgi?id=165339
Reviewed by Saam Barati.
* wasm/function-tests/nearest.js: Added.
* wasm/function-tests/trunc.js: Added.
2016-12-02 Caitlin Potter <caitp@igalia.com>
[JSC] add additional bit to JSTokenType bitfield
https://bugs.webkit.org/show_bug.cgi?id=165091
Reviewed by Geoffrey Garen.
* stress/bug-165091.js: Added.
(shouldThrowSyntaxError):
2016-12-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r209275 and r209276.
https://bugs.webkit.org/show_bug.cgi?id=165348
"broke the arm build" (Requested by keith_miller on #webkit).
Reverted changesets:
"Add Wasm floating point nearest and trunc"
https://bugs.webkit.org/show_bug.cgi?id=165339
http://trac.webkit.org/changeset/209275
"Unreviewed, forgot to change instruction after renaming."
http://trac.webkit.org/changeset/209276
2016-12-02 Keith Miller <keith_miller@apple.com>
Add Wasm floating point nearest and trunc
https://bugs.webkit.org/show_bug.cgi?id=165339
Reviewed by Filip Pizlo.
* wasm/function-tests/nearest.js: Added.
* wasm/function-tests/trunc.js: Added.
2016-12-02 JF Bastien <jfbastien@apple.com>
WebAssembly: revert patch causing odd breakage
https://bugs.webkit.org/show_bug.cgi?id=165308
Unreviewed.
Bug #164724 seems to cause build issues which I haven't tracked down yet. WasmOps.h can't be found:
./Source/JavaScriptCore/wasm/WasmFormat.h:34:10: fatal error: 'WasmOps.h' file not found
It's weird since the file is auto-generated and has been for a while. #164724 merely includes it in WasmFormat.h.
* wasm/Builder.js:
(const._normalizeFunctionSignature):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Code):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.block_type): Deleted.
* wasm/WASM.js:
* wasm/js-api/test_basic_api.js:
* wasm/self-test/test_BuilderWebAssembly.js:
(EmptyModule):
(CustomSection):
* wasm/self-test/test_WASM.js:
* wasm/wasm.json:
2016-12-01 Ryan Haddad <ryanhaddad@apple.com>
Skip flaky test ChakraCore/test/fieldopts/objtypespec-newobj-invalidation.1.js
https://bugs.webkit.org/show_bug.cgi?id=162567
Reviewed by Saam Barati.
* ChakraCore.yaml:
2016-12-01 Keith Miller <keith_miller@apple.com>
Add wasm int to floating point opcodes
https://bugs.webkit.org/show_bug.cgi?id=165252
Reviewed by Geoffrey Garen.
Add tests for Wasm integral to floating point conversion opcodes.
* wasm/function-tests/int-to-floating-point.js: Added.
* wasm/wasm.json:
2016-12-01 Geoffrey Garen <ggaren@apple.com>
Land a test case for <rdar://problem/27889416>
https://bugs.webkit.org/show_bug.cgi?id=165272
Reviewed by Saam Barati.
* stress/marked-argument-buffer.js: Added.
(allocate):
(test.o.toString):
(test):
2016-11-29 Per Arne Vollan <pvollan@apple.com>
[Win] Skip failing JSC tests.
https://bugs.webkit.org/show_bug.cgi?id=165140
Reviewed by Mark Lam.
* ChakraCore.yaml:
* microbenchmarks/tan.js:
2016-11-30 JF Bastien <jfbastien@apple.com>
WebAssembly builder: don't throw when checker not implemented
https://bugs.webkit.org/show_bug.cgi?id=165219
Reviewed by Mark Lam.
We should perform whichever checks we've implemented, and assume the rest are OK until bug #163421 is fixed.
* wasm/Builder.js:
* wasm/README.md:
* wasm/function-tests/add-12.js:
* wasm/function-tests/br-if-loop-less-than.js:
* wasm/function-tests/brTableAsIf.js:
* wasm/function-tests/brTableManyValues.js:
* wasm/function-tests/brTableWithLoop.js:
* wasm/function-tests/dumb-eq-if-then-else.js:
* wasm/function-tests/dumb-less-than-fallthrough.js:
* wasm/function-tests/dumb-less-than-ite.js:
* wasm/function-tests/eqz.js:
* wasm/function-tests/factorial.js:
* wasm/function-tests/float-sub.js:
* wasm/function-tests/i32-load.js:
* wasm/function-tests/i32-load8-s.js:
* wasm/function-tests/if-then-else-fallthrough.js:
* wasm/function-tests/if-then-fallthrough.js:
* wasm/function-tests/loop-mult.js:
* wasm/function-tests/loop-sum.js:
* wasm/function-tests/max.js:
* wasm/function-tests/min.js:
* wasm/function-tests/ret5.js:
* wasm/function-tests/select.js:
* wasm/self-test/test_BuilderJSON.js:
2016-11-29 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: improve Instance
https://bugs.webkit.org/show_bug.cgi?id=164757
Reviewed by Keith Miller.
An Instance's `exports` property wasn't populated with exports.
A follow-up patch will do imports.
A few things of note:
- LowLevelBinary: support 3-byte integers.
- LowLevelBinary: support proper UTF-8 2003 code points (instead of UTF-16).
* wasm/Builder.js:
* wasm/Builder_WebAssemblyBinary.js: wire up exports, stub other things out some more
(const.emitters.Export):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.uint24): add, used for UTF-8
(export.default.LowLevelBinary.prototype.string): support UTF-8
(export.default.LowLevelBinary.prototype.getUint24): add, used for UTF-8
(export.default.LowLevelBinary.prototype.getVaruint1): was missing
(export.default.LowLevelBinary.prototype.getString): support UTF-8
(export.default.LowLevelBinary):
* wasm/js-api/test_Instance.js: instance.exports.answer() // <-- this is where the magic of this entire patch is
(ExportedAnswerI32):
* wasm/js-api/test_basic_api.js: punt test to later
(const.c.in.constructorProperties.switch):
* wasm/self-test/test_BuilderWebAssembly.js: UTF-8
(CustomSection):
* wasm/self-test/test_LowLevelBinary_string.js: UTF-8 now works
* wasm/self-test/test_LowLevelBinary_uint16.js: was missing one value
* wasm/self-test/test_LowLevelBinary_uint24.js: Copied from JSTests/wasm/self-test/test_LowLevelBinary_uint8.js.
* wasm/self-test/test_LowLevelBinary_uint8.js: was missing one value
* wasm/self-test/test_LowLevelBinary_varuint1.js: Added.
* wasm/utilities.js: this `dump` thing was useful
(const._dump):
2016-11-29 Saam Barati <sbarati@apple.com>
We should be able optimize the pattern where we spread a function's rest parameter to another call
https://bugs.webkit.org/show_bug.cgi?id=163865
Reviewed by Filip Pizlo.
* microbenchmarks/default-derived-constructor.js: Added.
(createClassHierarchy.let.currentClass):
(createClassHierarchy):
* stress/call-varargs-spread.js: Added.
(assert):
(bar):
(foo):
* stress/load-varargs-on-new-array-with-spread-convert-to-static-loads.js: Added.
(assert):
(baz):
(bar):
(foo):
* stress/new-array-with-spread-with-normal-spread-and-phantom-spread.js: Added.
(assert):
(foo):
(escape):
(bar):
* stress/phantom-new-array-with-spread-osr-exit.js: Added.
(assert):
(baz):
(bar):
(effects):
(foo):
* stress/phantom-spread-forward-varargs.js: Added.
(assert):
(test1.bar):
(test1.foo):
(test1):
(test2.bar):
(test2.foo):
(test3.baz):
(test3.bar):
(test3.foo):
(test4.baz):
(test4.bar):
(test4.foo):
(test5.baz):
(test5.bar):
(test5.foo):
* stress/phantom-spread-osr-exit.js: Added.
(assert):
(baz):
(bar):
(effects):
(foo):
* stress/spread-call-convert-to-static-call.js: Added.
(assert):
(baz):
(bar):
(foo):
* stress/spread-forward-call-varargs-stack-overflow.js: Added.
(assert):
(identity):
(bar):
(foo):
* stress/spread-forward-varargs-rest-parameter-change-iterator-protocol-2.js: Added.
(assert):
(baz.Array.prototype.Symbol.iterator):
(baz):
(bar):
(foo):
(test):
* stress/spread-forward-varargs-rest-parameter-change-iterator-protocol.js: Added.
(assert):
(baz.Array.prototype.Symbol.iterator):
(baz):
(bar):
(foo):
* stress/spread-forward-varargs-stack-overflow.js: Added.
(assert):
(bar):
(foo):
2016-11-29 Caitlin Potter <caitp@igalia.com>
[JSC] always wrap AwaitExpression operand in a new Promise
https://bugs.webkit.org/show_bug.cgi?id=165181
Reviewed by Yusuke Suzuki.
* stress/async-await-basic.js:
(async.awaitedPromisesAreWrapped):
2016-11-29 Keith Miller <keith_miller@apple.com>
Add simple way to implement Wasm ops that require more than one B3 opcode
https://bugs.webkit.org/show_bug.cgi?id=165129
Reviewed by Geoffrey Garen.
* wasm/function-tests/eqz.js: Added.
* wasm/function-tests/max.js: Added.
* wasm/function-tests/min.js: Added.
* wasm/wasm.json:
2016-11-21 Yusuke Suzuki <utatane.tea@gmail.com>
Crash in com.apple.JavaScriptCore: WTF::ThreadSpecific<WTF::WTFThreadData, + 142
https://bugs.webkit.org/show_bug.cgi?id=164898
Reviewed by Darin Adler.
* stress/tagged-template-registry-key-collect.js: Added.
(shouldBe):
(tag):
(i.eval):
* stress/tagged-template-registry-key.js: Added.
(shouldBe):
(tag):
(a):
(b):
2016-11-20 Caitlin Potter <caitp@igalia.com>
[JSC] speed up parsing of async functions
https://bugs.webkit.org/show_bug.cgi?id=164808
Reviewed by Yusuke Suzuki.
Add tests for line terminator following "async" keyword in async
function syntax.
* stress/async-await-syntax.js:
(shouldBe):
2016-11-19 Mark Lam <mark.lam@apple.com>
op_mod-* JSC tests needs a longer timeout too.
https://bugs.webkit.org/show_bug.cgi?id=164994
Reviewed by Yusuke Suzuki.
* stress/op_mod-ConstVar.js:
* stress/op_mod-VarConst.js:
* stress/op_mod-VarVar.js:
2016-11-19 Mark Lam <mark.lam@apple.com>
Add --timeoutMultiplier option to allow some tests more time to run.
https://bugs.webkit.org/show_bug.cgi?id=164951
Reviewed by Yusuke Suzuki.
Extended the timeout for these tests by 50% more because they run quite slow on
low-end machines.
* stress/op_div-ConstVar.js:
* stress/op_div-VarConst.js:
* stress/op_div-VarVar.js:
2016-11-18 Yusuke Suzuki <utatane.tea@gmail.com>
REGRESSION(r208867): JSC test failure: ChakraCore.yaml/ChakraCore/test/strict/05.arguments_sm.js.default
https://bugs.webkit.org/show_bug.cgi?id=164929
Reviewed by Mark Lam.
ES2017 drops arguments.caller and JavaScriptCore is updated to meet the spec.
This patch rebaselines the result of ChakraCore test for JSC.
* ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
2016-11-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Generator functions should have a displayable name when shown in stack traces
https://bugs.webkit.org/show_bug.cgi?id=164844
<rdar://problem/29300697>
Reviewed by Yusuke Suzuki.
* stress/generator-function-name.js:
Add another test now that we name the inner generator function
that we do not break the lexical resolution of names.
2016-11-17 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Drop arguments.caller
https://bugs.webkit.org/show_bug.cgi?id=164859
Reviewed by Saam Barati.
* stress/strict-mode-arguments-caller.js: Added.
(strictArguments):
(shouldBe):
2016-11-17 Keith Miller <keith_miller@apple.com>
Add rotate to Wasm
https://bugs.webkit.org/show_bug.cgi?id=164871
Reviewed by Filip Pizlo.
* wasm/wasm.json:
2016-11-17 Keith Miller <keith_miller@apple.com>
Add sqrt to Wasm
https://bugs.webkit.org/show_bug.cgi?id=164877
Reviewed by Mark Lam.
B3 already has a Sqrt opcode we just need to map Wasm to it.
* wasm/wasm.json:
2016-11-17 Saam Barati <sbarati@apple.com>
Remove async/await compile time flag and enable tests
https://bugs.webkit.org/show_bug.cgi?id=164828
<rdar://problem/28639334>
Reviewed by Yusuke Suzuki.
* stress/async-arrow-functions-lexical-arguments-binding.js:
* stress/async-arrow-functions-lexical-new.target-binding.js:
* stress/async-arrow-functions-lexical-super-binding.js:
* stress/async-arrow-functions-lexical-this-binding.js:
* stress/async-await-basic.js:
* stress/async-await-long-loop.js:
* stress/async-await-module-reserved-word.js:
* stress/async-await-mozilla.js:
(mozSyntaxErrors):
* stress/async-await-reserved-word.js:
* stress/async-await-syntax.js:
* stress/async-await-throw-loop.js:
* stress/async-function-create-nobaseline.js:
* stress/async-function-create-optimized.js:
* stress/async-function-declaration-sinking-no-double-allocate.js:
* stress/async-function-declaration-sinking-osrexit.js:
* stress/async-function-declaration-sinking-put.js:
* stress/async-function-expression-sinking-no-double-allocate.js:
* stress/async-function-expression-sinking-osrexit.js:
* stress/async-function-expression-sinking-put.js:
* test262.yaml:
2016-11-15 Mark Lam <mark.lam@apple.com>
Make JSC test functions more robust.
https://bugs.webkit.org/show_bug.cgi?id=164807
Reviewed by Keith Miller.
* stress/jsc-test-functions-should-be-more-robust.js: Added.
2016-11-15 Keith Miller <keith_miller@apple.com>
B3 should support UDiv/UMod
https://bugs.webkit.org/show_bug.cgi?id=164811
Reviewed by Filip Pizlo.
Link new instructions to wasm.
* wasm/wasm.json:
2016-11-15 Saam Barati <sbarati@apple.com>
Debug JSC test timeout: stress/has-own-property-name-cache-symbols-and-strings.js.ftl-no-cjit-small-pool
https://bugs.webkit.org/show_bug.cgi?id=163012
Unreviewed. This patch makes a test run for less time because it's timing out on the bots.
* stress/has-own-property-name-cache-symbols-and-strings.js:
2016-11-15 Mark Lam <mark.lam@apple.com>
The jsc shell's setImpureGetterDelegate() should ensure that the set value is an ImpureGetter.
https://bugs.webkit.org/show_bug.cgi?id=164781
<rdar://problem/28418590>
Reviewed by Geoffrey Garen and Michael Saboff.
* stress/jsc-setImpureGetterDelegate-on-bad-type.js: Added.
2016-11-15 Yusuke Suzuki <utatane.tea@gmail.com>
[DOMJIT] Allow using macro assembler scratches in FTL CheckDOM
https://bugs.webkit.org/show_bug.cgi?id=164727
Reviewed by Filip Pizlo.
* stress/check-dom-with-signature.js: Added.
(shouldBe):
(calling):
(i.array.forEach):
2016-11-14 Caitlin Potter <caitp@igalia.com>
[JSC] do not reference AwaitExpression Promises in async function Promise chain
https://bugs.webkit.org/show_bug.cgi?id=164753
Reviewed by Yusuke Suzuki.
* asyncFunctionTests.yaml:
* stress/async-await-long-loop.js: Added.
(shouldBe):
(async.longLoop):
* stress/async-await-throw-loop.js: Added.
(shouldBe):
(async.thrower):
(async.throwLoop):
2016-11-14 Keith Miller <keith_miller@apple.com>
Add Wasm select
https://bugs.webkit.org/show_bug.cgi?id=164743
Reviewed by Saam Barati.
* wasm/function-tests/select.js: Added.
2016-11-14 Caitlin Potter <caitp@igalia.com>
[JSC] Handle new_async_func / new_async_func_exp in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=164037
Reviewed by Yusuke Suzuki.
Add tests based on tests from https://trac.webkit.org/changeset/194216.
* asyncFunctionTests.yaml:
* stress/async-function-create-nobaseline.js: Added.
* stress/async-function-create-optimized.js: Added.
* stress/async-function-declaration-sinking-no-double-allocate.js: Added.
* stress/async-function-declaration-sinking-osrexit.js: Added.
* stress/async-function-declaration-sinking-put.js: Added.
* stress/async-function-expression-sinking-no-double-allocate.js: Added.
* stress/async-function-expression-sinking-osrexit.js: Added.
* stress/async-function-expression-sinking-put.js: Added.
2016-11-14 Mark Lam <mark.lam@apple.com>
Some of JSStringView::SafeView methods are not idiomatically safe for JSString to StringView conversions.
https://bugs.webkit.org/show_bug.cgi?id=164701
<rdar://problem/27462104>
Reviewed by Darin Adler.
* stress/string-prototype-charCodeAt-on-too-long-rope.js: Added.
2016-11-14 Mark Lam <mark.lam@apple.com>
RegExpObject::exec/match should handle errors gracefully.
https://bugs.webkit.org/show_bug.cgi?id=155145
<rdar://problem/27435934>
Reviewed by Keith Miller.
* stress/regexp-prototype-exec-on-too-long-rope.js: Added.
* stress/regexp-prototype-match-on-too-long-rope.js: Added.
* stress/regexp-prototype-test-on-too-long-rope.js: Added.
2016-11-14 Mark Lam <mark.lam@apple.com>
Enhance run-jsc-stress-test script to allow optional test specific options to be added for all test run configurations.
https://bugs.webkit.org/show_bug.cgi?id=164695
Reviewed by Keith Miller.
Replace use of runMisc* test run configurations with equivalents.
* stress/licm-no-pre-header-nested.js:
* stress/licm-no-pre-header.js:
* stress/licm-pre-header-cannot-exit-nested.js:
* stress/licm-pre-header-cannot-exit.js:
* stress/make-dictionary-repatch.js:
* stress/retry-cache-later.js:
* stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js:
* stress/slow-path-generator-updating-current-node-dfg.js:
* stress/unshift-array-storage.js:
2016-11-11 Joseph Pecoraro <pecoraro@apple.com>
test262: DataView with explicit undefined byteLength should be the same as it not being present
https://bugs.webkit.org/show_bug.cgi?id=164453
Reviewed by Darin Adler.
* stress/dataview-construct.js: Added.
(assert):
(shouldThrow):
* test262.yaml:
2016-11-11 Joseph Pecoraro <pecoraro@apple.com>
test262: DataView get methods should allow for missing offset, set methods should allow for missing value
https://bugs.webkit.org/show_bug.cgi?id=164451
Reviewed by Darin Adler.
* test262.yaml:
2016-11-11 Saam Barati <sbarati@apple.com>
We should have a more concise way of determining when we're varargs calling a function using rest parameters
https://bugs.webkit.org/show_bug.cgi?id=164258
Reviewed by Yusuke Suzuki.
* microbenchmarks/call-using-spread.js: Added.
(bar):
(foo):
* microbenchmarks/spread-large-array.js: Added.
(foo):
(arrays.push):
* microbenchmarks/spread-small-array.js: Added.
(foo):
* stress/spread-array-iterator-watchpoint-2.js: Added.
(foo):
(arrayIterator.next):
* stress/spread-array-iterator-watchpoint.js: Added.
(foo):
(Array.prototype.Symbol.iterator):
* stress/spread-non-array.js: Added.
(assert):
(foo):
(let.customIterator.Symbol.iterator):
(bar):
2016-11-11 Keith Miller <keith_miller@apple.com>
Relocate wasm tests and actually add them to the test runner
https://bugs.webkit.org/show_bug.cgi?id=164668
Reviewed by Yusuke Suzuki.
This moves the Wasm tests from their current location down a level.
Without relocating, the tests cannot properly be run by the wasm test runner.
* wasm.yaml:
* wasm/Builder.js: Fix typos, yay lazy synatx checking!
* wasm/LowLevelBinary.js: Fix typos, yay lazy synatx checking!
(export.default.LowLevelBinary.prototype.get return):
* wasm/function-tests/add-12.js: Renamed from JSTests/wasm/js-api/function-tests/add-12.js.
* wasm/function-tests/br-if-loop-less-than.js: Renamed from JSTests/wasm/js-api/function-tests/br-if-loop-less-than.js.
* wasm/function-tests/brTableAsIf.js: Renamed from JSTests/wasm/js-api/function-tests/brTableAsIf.js.
* wasm/function-tests/brTableManyValues.js: Renamed from JSTests/wasm/js-api/function-tests/brTableManyValues.js.
* wasm/function-tests/brTableWithLoop.js: Renamed from JSTests/wasm/js-api/function-tests/brTableWithLoop.js.
* wasm/function-tests/dumb-eq-if-then-else.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-eq-if-then-else.js.
* wasm/function-tests/dumb-less-than-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-fallthrough.js.
* wasm/function-tests/dumb-less-than-ite.js: Renamed from JSTests/wasm/js-api/function-tests/dumb-less-than-ite.js.
* wasm/function-tests/factorial.js: Renamed from JSTests/wasm/js-api/function-tests/factorial.js.
* wasm/function-tests/float-sub.js: Renamed from JSTests/wasm/js-api/function-tests/float-sub.js.
* wasm/function-tests/i32-load.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load.js.
* wasm/function-tests/i32-load8-s.js: Renamed from JSTests/wasm/js-api/function-tests/i32-load8-s.js.
* wasm/function-tests/if-then-else-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-else-fallthrough.js.
* wasm/function-tests/if-then-fallthrough.js: Renamed from JSTests/wasm/js-api/function-tests/if-then-fallthrough.js.
* wasm/function-tests/loop-mult.js: Renamed from JSTests/wasm/js-api/function-tests/loop-mult.js.
* wasm/function-tests/loop-sum.js: Renamed from JSTests/wasm/js-api/function-tests/loop-sum.js.
* wasm/function-tests/ret5.js: Renamed from JSTests/wasm/js-api/function-tests/ret5.js.
* wasm/self-test/test_BuilderJSON.js: Rebasline
2016-11-11 Keith Miller <keith_miller@apple.com>
Move Wasm tests to JS
https://bugs.webkit.org/show_bug.cgi?id=164611
Reviewed by Geoffrey Garen.
This patch translates most of the tests from testWasm.cpp to the JS testing api. Most of the
ommited tests were earliest tests, which tested trivial things, like adding two
constants. Some tests are ommited for other reasons, however. These are:
1) Tests using I64 since the testing api does not yet know how to handle 64-bit numbers. 2)
Tests that would validate the memory of the module once wasm was done with it since that's
not really possible in JS.
In order to make such a translation easier this patch also adds some features to the JS
testing api:
1) Blocks can now be done lexically by adding a lambda as the last argument of the block
opcode. For example one can do:
...
.Block("i32", b => b.I32Const(1) )
and the nested lambda will automatically have an end attached.
2) The JS testing api can now handle inline signature types.
3) Relocate some code to make it easier to follow and prevent 44 space indentation.
4) Rename varuint/varint to varuint32/varint32, this lets them be directly called from the
wasm.json without being remapped.
5) Add support for Memory and Function sections to the Builder.
6) Add support for local variables.
On the JSC side, we needed to expose a new function to validate the compiled wasm code
behaves the way we expect. At least until the JS Wasm API is finished. The new validation
function, testWasmModuleFunctions, takes an array buffer containing the wasm binary, the
number of functions in the blob and tests for each of those functions.
* wasm/Builder.js:
(const._maybeRegisterType):
(const): Deleted.
(switch.typeof): Deleted.
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Import):
(const.emitters.Function):
(const.emitters.Memory):
(const.emitters.Code):
(export.const.Binary):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return):
(export.default.LowLevelBinary.prototype.varuint32):
(export.default.LowLevelBinary.prototype.varint32):
(export.default.LowLevelBinary.prototype.varuint1):
(export.default.LowLevelBinary.prototype.varint7):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getVaruint32):
(export.default.LowLevelBinary.prototype.getVarint32):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.varuint): Deleted.
(export.default.LowLevelBinary.prototype.varint): Deleted.
(export.default.LowLevelBinary.prototype.getVaruint): Deleted.
(export.default.LowLevelBinary.prototype.getVarint): Deleted.
* wasm/js-api/test_old_tests.js: Added.
(ret5):
(brTableWithLoop):
(brTableManyValues):
(run.brTableManyValues.brTableAsIf):
(ifThenFallthrough):
(ifThenElseFallthrough):
(dumbLessThanFallthrough):
(run.dumbLessThanFallthrough.floatSub):
(run.floatSub.add12):
(run.add12.factorial):
(i32load):
(run.i32load.i32load8s):
(run.i32load8s.dumbEqIfThenElse):
(run.dumbEqIfThenElse.dumbEqIfThenElse):
(run.dumbEqIfThenElse.dumbLessThanIfThenElse):
(run.dumbLessThanIfThenElse.loopSum):
(run.loopSum.loopMult):
(brIfLoopLessThan):
(run.brIfLoopLessThan.run):
* wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
* wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
* wasm/Builder.js:
(const._maybeRegisterType):
(const): Deleted.
(switch.typeof): Deleted.
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
(const.emitters.Import):
(const.emitters.Function):
(const.emitters.Memory):
(const.emitters.Code):
(export.const.Binary):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return):
(export.default.LowLevelBinary.prototype.varuint32):
(export.default.LowLevelBinary.prototype.varint32):
(export.default.LowLevelBinary.prototype.varuint1):
(export.default.LowLevelBinary.prototype.varint7):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.inline_signature_type):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getVaruint32):
(export.default.LowLevelBinary.prototype.getVarint32):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.varuint): Deleted.
(export.default.LowLevelBinary.prototype.varint): Deleted.
(export.default.LowLevelBinary.prototype.getVaruint): Deleted.
(export.default.LowLevelBinary.prototype.getVarint): Deleted.
* wasm/js-api/function-tests/add-12.js: Added.
* wasm/js-api/function-tests/br-if-loop-less-than.js: Added.
* wasm/js-api/function-tests/brTableAsIf.js: Added.
* wasm/js-api/function-tests/brTableManyValues.js: Added.
* wasm/js-api/function-tests/brTableWithLoop.js: Added.
* wasm/js-api/function-tests/dumb-eq-if-then-else.js: Added.
* wasm/js-api/function-tests/dumb-less-than-fallthrough.js: Added.
* wasm/js-api/function-tests/dumb-less-than-ite.js: Added.
* wasm/js-api/function-tests/factorial.js: Added.
* wasm/js-api/function-tests/float-sub.js: Added.
* wasm/js-api/function-tests/i32-load.js: Added.
* wasm/js-api/function-tests/i32-load8-s.js: Added.
* wasm/js-api/function-tests/if-then-else-fallthrough.js: Added.
* wasm/js-api/function-tests/if-then-fallthrough.js: Added.
* wasm/js-api/function-tests/loop-mult.js: Added.
* wasm/js-api/function-tests/loop-sum.js: Added.
* wasm/js-api/function-tests/ret5.js: Added.
* wasm/self-test/test_LowLevelBinary_varint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varint.js.
* wasm/self-test/test_LowLevelBinary_varuint32.js: Renamed from JSTests/wasm/self-test/test_LowLevelBinary_varuint.js.
2016-11-11 Saam Barati <sbarati@apple.com>
We recursively grab a lock in the DFGBytecodeParser causing us to deadlock
https://bugs.webkit.org/show_bug.cgi?id=164650
Reviewed by Geoffrey Garen.
* stress/dont-dead-lock-put-by-val-as-put-by-id.js: Added.
(ident):
(let.o.set foo):
(foo):
2016-11-11 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r208584.
Seems to have regressed Speedometer by 1% on Mac
Reverted changeset:
"We should have a more concise way of determining when we're
varargs calling a function using rest parameters"
https://bugs.webkit.org/show_bug.cgi?id=164258
http://trac.webkit.org/changeset/208584
2016-11-11 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r208117 and r208160.
Regressed Speedometer by >1.5%
Reverted changesets:
"We should have a way of profiling when a get_by_id is pure
and to emit a PureGetById in the DFG/FTL"
https://bugs.webkit.org/show_bug.cgi?id=163305
http://trac.webkit.org/changeset/208117
"Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing
out"
https://bugs.webkit.org/show_bug.cgi?id=164227
http://trac.webkit.org/changeset/208160
2016-11-11 Saam Barati <sbarati@apple.com>
We should have a more concise way of determining when we're varargs calling a function using rest parameters
https://bugs.webkit.org/show_bug.cgi?id=164258
Reviewed by Yusuke Suzuki.
* microbenchmarks/call-using-spread.js: Added.
(bar):
(foo):
* microbenchmarks/spread-large-array.js: Added.
(foo):
(arrays.push):
* microbenchmarks/spread-small-array.js: Added.
(foo):
* stress/spread-array-iterator-watchpoint-2.js: Added.
(foo):
(arrayIterator.next):
* stress/spread-array-iterator-watchpoint.js: Added.
(foo):
(Array.prototype.Symbol.iterator):
* stress/spread-non-array.js: Added.
(assert):
(foo):
(let.customIterator.Symbol.iterator):
(bar):
2016-11-10 Mark Lam <mark.lam@apple.com>
Fix broken have-a-bad-time-with-arguments.js test.
https://bugs.webkit.org/show_bug.cgi?id=164626
Reviewed by Filip Pizlo.
But also saved a copy of the broken one as broken-have-a-bad-time-with-arguments-for-gc-testing.js
because coincidentally, it stresses the GC in ways that help reveal bugs.
* stress/broken-have-a-bad-time-with-arguments-for-gc-testing.js: Added.
(testFunction):
(warmupFunction):
(let.argsDeclIndex.in.argumentsDecls.let.indexToReturnIndex.in.indicesToReturn.let.insertElementActionIndex.in.insertElementActions.let.tierWarmupCountIndex.in.tierWarmupCounts.let.testArgsIndex.in.testArgsList.catch):
* stress/have-a-bad-time-with-arguments.js:
2016-11-10 JF Bastien <jfbastien@apple.com>
ASSERTION FAILED: length > offset encountered with wasm.yaml/wasm/js-api/test_Module.js.default-wasm
https://bugs.webkit.org/show_bug.cgi?id=164597
Reviewed by Keith Miller.
Trim the array buffer before returning it: it's optimistically
over-allocated to avoid growing all the time, but when parsed it
can't have extra content.
* wasm/Builder_WebAssemblyBinary.js:
(export.const.Binary):
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return):
2016-11-10 Joseph Pecoraro <pecoraro@apple.com>
test262: DataView / TypedArray methods should throw RangeErrors for negative numbers (ToIndex)
https://bugs.webkit.org/show_bug.cgi?id=164450
Reviewed by Darin Adler.
* stress/dataview-typedarray-toindex.js: Added.
Tests for all cases where ToIndex should be used.
* test262.yaml:
New passing tests.
2016-11-10 Mark Lam <mark.lam@apple.com>
Graph::methodOfGettingAValueProfileFor() should be returning the profile for the operand node.
https://bugs.webkit.org/show_bug.cgi?id=164600
<rdar://problem/28828676>
Reviewed by Filip Pizlo.
* stress/osr-exit-on-op-negate-should-no-fail-assertions.js: Added.
2016-11-08 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Avoid cloned arguments allocation in ArrayPrototype methods
https://bugs.webkit.org/show_bug.cgi?id=164502
Reviewed by Saam Barati.
* stress/argument-intrinsic-basic.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/argument-intrinsic-inlining-with-result-escape.js: Added.
(shouldBe):
(builtin.createBuiltin):
(escape):
* stress/argument-intrinsic-nested-inlining.js: Added.
(shouldBe):
(builtin.createBuiltin):
(builtinCaller1):
(builtinCaller2):
(escape):
* stress/argument-intrinsic-not-convert-to-get-argument.js: Added.
(shouldBe):
(builtin.createBuiltin):
* stress/argument-intrinsic-with-stack-write.js: Added.
(shouldBe):
(builtin.createBuiltin):
2016-11-09 Saam Barati <sbarati@apple.com>
Math.min()/Math.max() with no arguments is lowered incorrectly in the BytecodeParser
https://bugs.webkit.org/show_bug.cgi?id=164464
<rdar://problem/29131452>
Reviewed by Darin Adler.
* stress/math-max-min-no-arguments.js: Added.
(assert):
(min):
(max):
(test):
2016-11-09 Saam Barati <sbarati@apple.com>
TypeProfiler and running GC collection on another thread don't play nicely with each other
https://bugs.webkit.org/show_bug.cgi?id=164441
<rdar://problem/29132174>
Reviewed by Geoffrey Garen.
* typeProfiler/type-profiler-gc.js: Added.
(bar):
(foo):
2016-11-04 Mark Lam <mark.lam@apple.com>
Error description code should be able to handle Symbol values.
https://bugs.webkit.org/show_bug.cgi?id=164436
<rdar://problem/29115583>
Reviewed by Filip Pizlo and Saam Barati.
* stress/error-description-on-symbols-should-not-crash.js: Added.
2016-11-03 Geoffrey Garen <ggaren@apple.com>
EvalCodeCache should not give up in strict mode and other cases
https://bugs.webkit.org/show_bug.cgi?id=164357
Reviewed by Michael Saboff.
* microbenchmarks/eval-cached.js: Added. 45x faster now.
* stress/eval-cached.js: Added. Try running the same eval text in a bunch
of different scopes and verify that we access the right scope.
2016-11-04 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: implement more sections
https://bugs.webkit.org/show_bug.cgi?id=164023
Reviewed by Keith Miller.
On the JSC side:
- Put in parser stubs for all WebAssembly sections.
- Parse Import, Export sections.
- 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.
- Encapsulate all parsed module information into its own structure, making it easier to pass around (from parser to Plan to Module to Instance).
- Create WasmFormat.cpp to hold parsed module information's dtor to avoid including WasmMemory.h needlessly.
- parseCode: avoid overflow through function size.
- Remove all remainders of polyfill-prototype-1, and update license.
- Add missing WasmOps.h and WasmValidateInlines.h auto-generation for cmake build.
On the Builder.js testing side:
- Implement Type, Import (function only), Export (function only) sections.
- Check section order and uniqueness.
- Optionally auto-generate the Type section from subsequent Export / Import / Code entries.
- Allow re-exporting an import.
* wasm/Builder.js: build type, import, and export sections
(const._normalizeFunctionSignature):
* wasm/Builder_WebAssemblyBinary.js: Added. Forked from Builder.js
(const.emitters.Type):
(const.emitters.Import):
(const.emitters.Function):
(const.emitters.Table):
(const.emitters.Memory):
(const.emitters.Global):
(const.emitters.Export):
(const.emitters.Start):
(const.emitters.Element):
(const.emitters.Code):
(const.emitters.Data):
(export.const.Binary):
* wasm/LowLevelBinary.js: Add a few useful outputs
(export.default.LowLevelBinary.prototype.varuint1):
(export.default.LowLevelBinary.prototype.varint7):
* wasm/WASM.js: value type and external kind helpers
* wasm/assert.js: array element-wise equality comparison
(const._eq):
* wasm/js-api/test_Module.js:
(ModuleWithImports):
* 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
(const.assertOpThrows):
(SectionsWithSameCustomName):
(TwoTypeSections):
(EmptyImportSection):
(ImportBeforeTypeSections):
* wasm/self-test/test_BuilderWebAssembly.js: remove a test which wasn't helpful and is now obsolete
(CustomSection):
2016-11-03 Mark Lam <mark.lam@apple.com>
ClonedArguments need to also support haveABadTime mode.
https://bugs.webkit.org/show_bug.cgi?id=164200
<rdar://problem/27211336>
Reviewed by Geoffrey Garen.
* stress/have-a-bad-time-with-arguments.js: Added.
2016-11-03 Filip Pizlo <fpizlo@apple.com>
DFG plays fast and loose with the shadow values of a Phi
https://bugs.webkit.org/show_bug.cgi?id=164309
Reviewed by Saam Barati.
This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
* stress/dfg-ssa-swap.js: Added.
(foo):
2016-11-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r208364.
https://bugs.webkit.org/show_bug.cgi?id=164402
broke the build (Requested by smfr on #webkit).
Reverted changeset:
"DFG plays fast and loose with the shadow values of a Phi"
https://bugs.webkit.org/show_bug.cgi?id=164309
http://trac.webkit.org/changeset/208364
2016-11-03 Filip Pizlo <fpizlo@apple.com>
DFG plays fast and loose with the shadow values of a Phi
https://bugs.webkit.org/show_bug.cgi?id=164309
Reviewed by Saam Barati.
This test demonstrates why the DFG needs to recognize the shadow value of a Phi.
* stress/dfg-ssa-swap.js: Added.
(foo):
2016-11-03 Saam Barati <sbarati@apple.com>
Asking for a value profile prediction should be defensive against not finding a value profile
https://bugs.webkit.org/show_bug.cgi?id=164306
Reviewed by Mark Lam.
* stress/inlined-tail-call-in-inlined-setter-should-not-crash-when-getting-value-profile.js: Added.
(let.o.set foo):
(bar):
2016-11-02 Saam Barati <sbarati@apple.com>
Allocation elimination of rest parameter doesn't take into account indexed properties on Array.prototype/Object.prototype
https://bugs.webkit.org/show_bug.cgi?id=164301
Reviewed by Geoffrey Garen.
* stress/rest-parameter-allocation-elimination-watchpoints-2.js: Added.
(assert):
(foo):
* stress/rest-parameter-allocation-elimination-watchpoints-3.js: Added.
(assert):
(foo):
* stress/rest-parameter-allocation-elimination-watchpoints-4.js: Added.
(assert):
(foo):
* stress/rest-parameter-allocation-elimination-watchpoints-5.js: Added.
(assert):
(foo):
* stress/rest-parameter-allocation-elimination-watchpoints-6.js: Added.
(assert):
(foo):
* stress/rest-parameter-allocation-elimination-watchpoints.js: Added.
(assert):
(foo):
2016-11-01 Saam Barati <sbarati@apple.com>
We should be able to eliminate rest parameter allocations
https://bugs.webkit.org/show_bug.cgi?id=163925
Reviewed by Filip Pizlo.
* microbenchmarks/rest-parameter-allocation-elimination.js: Added.
(assert):
(test1.bar):
(test1):
(test2.jaz):
(test2.jaz2.kaz):
(test2.jaz2):
(test2):
(test3.foo):
(test3.baz):
(test3.jaz):
(test3):
(test4.baz):
(test4.jaz):
(test4):
(test5.baz):
(test5.jaz):
(test5):
(test6.baz):
(test6.jaz):
(test6):
(test7.baz):
(test7.jaz):
(test7.check):
(test7):
(test8.baz):
(test8.jaz):
(test8.check):
(test8):
(test9.baz):
(test9.jaz):
(test9.check):
(test9):
(test10.baz):
(test10.jaz):
(test10):
(test11.bar):
(test11.foo):
(test11.makeArguments):
(test11.):
(test12):
(test12.bar):
(test12.foo):
(test12.makeArguments):
(test12.):
(test13.bar):
(test13.top):
(test13.foo):
(test13.makeArguments):
(test13.):
(test13):
(test14.bar):
(test14.top):
(test14.foo):
(test14.makeArguments):
(test14.):
(test14):
(test15.bar):
(test15.top):
(test15.foo):
(test15.makeArguments):
(test15.):
(test15):
2016-11-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r208208 and r208210.
https://bugs.webkit.org/show_bug.cgi?id=164276
This change caused 28 JSC test failures. (Requested by
ryanhaddad on #webkit).
Reverted changesets:
"We should be able to eliminate rest parameter allocations"
https://bugs.webkit.org/show_bug.cgi?id=163925
http://trac.webkit.org/changeset/208208
"Fix the EFL build."
http://trac.webkit.org/changeset/208210
2016-10-31 Filip Pizlo <fpizlo@apple.com>
JSC should support SharedArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=163986
Reviewed by Keith Miller.
This adds our own test for the various corner cases of SharedArrayBuffer. This test is meant to
check all of the things that don't require concurrency.
* stress/SharedArrayBuffer.js: Added.
(checkAtomics):
(shouldFail):
(Symbol):
(runAtomic):
2016-10-31 Saam Barati <sbarati@apple.com>
We should be able to eliminate rest parameter allocations
https://bugs.webkit.org/show_bug.cgi?id=163925
Reviewed by Filip Pizlo.
* microbenchmarks/rest-parameter-allocation-elimination.js: Added.
(assert):
(test1.bar):
(test1):
(test2.jaz):
(test2.jaz2.kaz):
(test2.jaz2):
(test2):
(test3.foo):
(test3.baz):
(test3.jaz):
(test3):
(test4.baz):
(test4.jaz):
(test4):
(test5.baz):
(test5.jaz):
(test5):
(test6.baz):
(test6.jaz):
(test6):
(test7.baz):
(test7.jaz):
(test7.check):
(test7):
(test8.baz):
(test8.jaz):
(test8.check):
(test8):
(test9.baz):
(test9.jaz):
(test9.check):
(test9):
(test10.baz):
(test10.jaz):
(test10):
(test11.bar):
(test11.foo):
(test11.makeArguments):
(test11.):
(test12):
(test12.bar):
(test12.foo):
(test12.makeArguments):
(test12.):
(test13.bar):
(test13.top):
(test13.foo):
(test13.makeArguments):
(test13.):
(test13):
(test14.bar):
(test14.top):
(test14.foo):
(test14.makeArguments):
(test14.):
(test14):
(test15.bar):
(test15.top):
(test15.foo):
(test15.makeArguments):
(test15.):
(test15):
2016-10-31 Saam Barati <sbarati@apple.com>
Debug JSC test microbenchmarks/pure-get-by-id-cse-2.js timing out
https://bugs.webkit.org/show_bug.cgi?id=164227
Unreviewed timeout fix.
* microbenchmarks/pure-get-by-id-cse-2.js:
2016-10-31 Keith Miller <keith_miller@apple.com>
autogenerated files from wasm.json should be in derived sources.
https://bugs.webkit.org/show_bug.cgi?id=164152
Reviewed by Filip Pizlo.
Delete generation script since it is no longer used.
* wasm/generate-wasmops-header.js: Removed.
2016-10-29 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
https://bugs.webkit.org/show_bug.cgi?id=164123
Reviewed by Mark Lam.
* stress/json-stringify-with-non-jsarray-array.js: Added.
(shouldBe):
(shouldBe.JSON.stringify.new.Proxy):
2016-10-29 Saam Barati <sbarati@apple.com>
We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=163305
Reviewed by Keith Miller.
* microbenchmarks/pure-get-by-id-cse-2.js: Added.
(foo):
* microbenchmarks/pure-get-by-id-cse.js: Added.
(foo):
* stress/pure-get-by-id-cse-correctness.js: Added.
(assert):
(foo):
* stress/pure-get-by-id-on-non-object.js: Added.
(assert):
(foo):
2016-10-28 Csaba Osztrogonác <ossy@webkit.org>
Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164128
Reviewed by Mark Lam.
* microbenchmarks/dense-set.js:
2016-10-20 Caitlin Potter <caitp@igalia.com>
[JSC] implement runtime for async functions
https://bugs.webkit.org/show_bug.cgi?id=163760
Reviewed by Yusuke Suzuki.
* stress/async-await-basic.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(shouldThrowSyntaxError):
(let.AsyncFunction.async):
(async.asyncFunctionForProto):
(Object.getPrototypeOf.async):
(Object.getPrototypeOf.async.method):
(async):
(async.method):
(async.asyncNonConstructorDecl):
(shouldThrow.new.async):
(shouldThrow.new.async.nonConstructor):
(async.asyncDecl):
(async.f):
(MyError):
(async.asyncDeclThrower):
(shouldThrowAsync.async):
(resolveLater):
(rejectLater):
(async.resumeAfterNormal):
(O.async.resumeAfterNormal):
(resumeAfterNormalArrow.async):
(async.resumeAfterThrow):
(O.async.resumeAfterThrow):
(resumeAfterThrowArrow.async):
(catch):
* stress/async-await-module-reserved-word.js: Added.
(shouldThrow):
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.async.await):
(SyntaxError.Cannot.declare.named):
* stress/async-await-mozilla.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(assert):
(shouldThrowSyntaxError):
(mozSemantics.async.empty):
(mozSemantics.async.simpleReturn):
(mozSemantics.async.simpleAwait):
(mozSemantics.async.simpleAwaitAsync):
(mozSemantics.async.returnOtherAsync):
(mozSemantics.async.simpleThrower):
(mozSemantics.async.delegatedThrower):
(mozSemantics.async.tryCatch):
(mozSemantics.async.tryCatchThrow):
(mozSemantics.async.wellFinally):
(mozSemantics.async.finallyMayFail):
(mozSemantics.async.embedded.async.inner):
(mozSemantics.async.embedded):
(mozSemantics.async.fib):
(mozSemantics.async.isOdd.async.isEven):
(mozSemantics.async.isOdd):
(mozSemantics.hardcoreFib.async.fib2):
(mozSemantics.namedAsyncExpr.async.simple):
(mozSemantics.async.executionOrder.async.first):
(mozSemantics.async.executionOrder.async.second):
(mozSemantics.async.executionOrder.async.third):
(mozSemantics.async.executionOrder):
(mozSemantics.async.miscellaneous):
(mozSemantics.thrower):
(mozSemantics.async.defaultArgs):
(mozSemantics.shouldThrow):
(mozSemantics):
(mozMethods.X):
(mozMethods.X.prototype.async.getValue):
(mozMethods.X.prototype.setValue):
(mozMethods.X.prototype.async.increment):
(mozMethods.X.prototype.async.getBaseClassName):
(mozMethods.X.async.getStaticValue):
(mozMethods.Y.prototype.async.getBaseClassName):
(mozMethods.Y):
(mozFunctionNameInferrence.async.test):
(mozSyntaxErrors):
* stress/async-await-reserved-word.js: Added.
(assert):
(shouldThrowSyntaxError):
(AsyncFunction.async):
* stress/async_arrow_functions_lexical_arguments_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(noArgumentsArrow2.async):
* stress/async_arrow_functions_lexical_new.target_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(C1):
(C2):
(shouldThrowAsync.async):
* stress/async_arrow_functions_lexical_super_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass.prototype.get property):
(BaseClass):
(ChildClass.prototype.asyncSuperProp):
(ChildClass.prototype.asyncSuperProp2):
(ChildClass):
(ChildClass2):
* stress/async_arrow_functions_lexical_this_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(d.y):
2016-10-28 Csaba Osztrogonác <ossy@webkit.org>
Skip 2 JS stress tests on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164125
Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.
* stress/joined-strings-should-not-exceed-max-string-length.js:
* stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
2016-10-27 Caitlin Potter <caitp@igalia.com>
[JSC] forbid lexical redeclaration of generator formal parameters
https://bugs.webkit.org/show_bug.cgi?id=163930
Reviewed by Yusuke Suzuki.
* stress/async-await-syntax.js:
* stress/generator-syntax.js:
(testSyntaxError.gen):
(testSyntaxError.arguments):
(testSyntaxError.eval):
* test262.yaml:
2016-10-26 JF Bastien <jfbastien@apple.com>
WebAssembly API: implement Instance
As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects
- Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
- Construct a basic Instance with a Module.
- Handle second argument (importObject) of WebAssembly.Instance.
- Add reference text from the spec to WebAssembly.Module's code.
- Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.
The implementation isn't complete yet: it relies on further work for which I've filed bugs.
WebAssembly API: implement Instance
https://bugs.webkit.org/show_bug.cgi?id=163998
Reviewed by Keith Miller.
* wasm/js-api/test_Instance.js: Added.
(EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch): basic tests of the API
2016-10-26 Mark Lam <mark.lam@apple.com>
JSGenericTypedArrayView::set() should check for exceptions.
https://bugs.webkit.org/show_bug.cgi?id=164007
<rdar://problem/28853775>
Reviewed by Filip Pizlo.
* stress/typed-array-view-set-should-not-crash-on-exception.js: Added.
2016-10-25 Mark Lam <mark.lam@apple.com>
String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
https://bugs.webkit.org/show_bug.cgi?id=163996
<rdar://problem/28263117>
Reviewed by Geoffrey Garen.
* stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.
2016-10-25 Mark Lam <mark.lam@apple.com>
JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=163937
<rdar://problem/28642990>
Reviewed by Geoffrey Garen.
* stress/joined-strings-should-not-exceed-max-string-length.js: Added.
2016-10-25 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: simple Module test
https://bugs.webkit.org/show_bug.cgi?id=163963
Reviewed by Filip Pizlo.
* wasm/LowLevelBinary.js:
(export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
(export.default.LowLevelBinary.prototype.hexdump): Deleted.
(export.default.LowLevelBinary.prototype._maybeGrow): Deleted.
* wasm/js-api/test_Module.js: Added.
(EmptyModule): The most basic module possible
2016-10-25 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: implement Module
This implementation allows us to:
- Syncrhonously create a WebAssembly.Module with a typed array.
- Creates a compilation plan.
- Parse the Module and creates corresponding code.
- Throw WebAssembly.CompileError with mildly helpful [*] error messages on
failure.
Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor
For now the implementation discards the generated code.
The next steps will be:
- Expose a Module's exports.
- Implement WebAssembly.Instance, which allows instantiating and running a
compiled Module.
- Beef up the testing infrastructure under JSTests/wasm so that more complex
modules can be created and tested (instead of writing the bits by hand).
This patch also:
- Adds assert.instanceof in assert.js.
- Refactors Wasm::Parser and friends to accept const uint8_t* as well as a
Vector, to avoid copying when invoked synchronously.
- Remove useless Structure from some of the wasm constructors: they're already
on the JSGlobalObject, visited properly and all.
- Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer
was exactly at end of file.
[*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919
WebAssembly JS API: implement Module
https://bugs.webkit.org/show_bug.cgi?id=163903
Reviewed by Keith Miller.
* wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names
(const._notUndef):
(const._isUndef):
(const._eq):
(const._ge):
(const._throws):
* wasm/js-api/test_basic_api.js: test the WebAssembly.Module API
(const.c.in.constructorProperties.switch):
2016-10-25 Keith Miller <keith_miller@apple.com>
Add trivial Wasm conversion opcodes
https://bugs.webkit.org/show_bug.cgi?id=163950
Reviewed by Filip Pizlo.
This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
those that are not. Some of the Wasm opcodes that are currently a non-simple opcode will
become simple as we add B3 opcodes for Wasm operations. The remaining opcodes will need to
be added via patchpoints in a later patch.
* wasm/generate-wasmops-header.js:
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):
* wasm/wasm.json:
2016-10-24 Yusuke Suzuki <utatane.tea@gmail.com>
Arrow functions with concise bodies cannot return regular expressions
https://bugs.webkit.org/show_bug.cgi?id=163162
Reviewed by Filip Pizlo.
* ChakraCore/test/Operators/instanceof.baseline-jsc:
* ChakraCore/test/Regex/nul_character.baseline-jsc:
* ChakraCore/test/es5/Lex_u3.baseline-jsc:
* stress/parse-regexp-as-token.js: Added.
(shouldBe):
2016-10-24 Keith Miller <keith_miller@apple.com>
Wasm should support floating point operations.
https://bugs.webkit.org/show_bug.cgi?id=163770
Reviewed by Michael Saboff.
Add appropriate b3op names for floating point wasm bytecodes, where they exist.
Also, fix some WASM => Wasm in WasmOps.h generator script that I missed
the first time I made the change.
* wasm/generate-wasmops-header.js:
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted.
* wasm/wasm.json:
2016-10-21 Saam Barati <sbarati@apple.com>
SpeculativeJIT::compileTryGetById needs to pass in NeedsToSpill along both the cell speculation and untyped speculation path
https://bugs.webkit.org/show_bug.cgi?id=163622
Reviewed by Yusuke Suzuki.
* stress/try-get-by-id-should-spill-registers-dfg.js: Added.
(let.f.createBuiltin):
2016-10-21 Caitlin Potter <caitp@igalia.com>
[JSC] don't crash when arguments to `new Function()` produce unexpected AST
https://bugs.webkit.org/show_bug.cgi?id=163748
Reviewed by Mark Lam.
* stress/regress-163748.js: Added.
(assert):
(shouldThrowSyntaxError):
(GeneratorFunction):
2016-10-20 Keith Miller <keith_miller@apple.com>
Add support for WASM calls
https://bugs.webkit.org/show_bug.cgi?id=161727
Reviewed by Filip Pizlo and Michael Saboff.
Add members of the Call category to the WASMOps special group.
* wasm/generate-wasmops-header.js:
2016-10-20 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Drop isEnvironmentRecord type info flag and use JSType information instead
https://bugs.webkit.org/show_bug.cgi?id=163761
Reviewed by Keith Miller.
* modules/string-prototype-module-scope.js: Added.
(shouldBe):
(catch):
(refer):
* stress/string-prototype-scopes-global-lexical-environment-strict.js: Added.
(shouldBe):
(catch):
* stress/string-prototype-scopes-global-lexical-environment.js: Added.
(shouldBe):
(catch):
* stress/string-prototype-scopes-strict.js: Added.
(shouldBe):
(catch):
(try.refer):
(refer):
* stress/string-prototype-scopes.js: Added.
(shouldBe):
(catch):
(try.refer):
(refer):
(object.toString):
(with):
2016-10-20 JF Bastien <jfbastien@apple.com>
WebAssembly API: implement exception constructors properly
- Rename WebAssemblyObject to JSWebAssembly for consistency.
- WebAssembly object now has its own prototype: add WebAssemblyPrototype, and
use it to register JSWebAssembly's function properties through auto-generated
.lut.h, instead of manually.
- The error constructors used to throw (e.g. `new WebAssembly.CompileError()`).
- Register WebAssembly's constructors from the global object, and hold a
reference to their structure and prototype so that invoking the constructor
can use the structure directly from the global object.
- Add a prototype base field to global object creation. Previous ones all had
Object's prototype as their base, but WebAssembly's error constructors have
Error as their base.
- Test for the error object's correctness.
- Add missing #if ENABLE(WEBASSEMBLY)
WebAssembly API: implement exception constructors properly
https://bugs.webkit.org/show_bug.cgi?id=163699
Reviewed by Keith Miller.
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties): more tests
2016-10-20 Caitlin Potter <caitp@igalia.com>
[JSC] disallow references to `await` in AsyncFunction formal parameters
https://bugs.webkit.org/show_bug.cgi?id=163694
Reviewed by Saam Barati.
* stress/async-await-syntax.js:
2016-10-20 Keith Miller <keith_miller@apple.com>
Invalid assertion in arguments elimination
https://bugs.webkit.org/show_bug.cgi?id=163740
<rdar://problem/27911462>
Reviewed by Michael Saboff.
* stress/direct-arguments-osr-entry.js: Added.
(foo.):
(foo):
2016-10-20 Caitlin Potter <caitp@igalia.com>
[JSC] throw TypeError when constructing dynamically created JSGeneratorFunction
https://bugs.webkit.org/show_bug.cgi?id=163714
Reviewed by Mark Lam.
Add missing test coverage that dynamically created
JSGeneratorFunctions can not be constructed.
* stress/generator-function-constructor.js:
(shouldThrow):
2016-10-19 JF Bastien <jfbastien@apple.com>
JavaScript WebAssembly API: baby steps
- Expand WebAssembly constructors into their own files. This requires a lot of
boilerplate, as well as adding the .lut.h files. All of the
JSWebAssembly*.{h,cpp}, as well as Constructor and Prototype files, are
currently the same between the 4 specified WebAssembly constructors. It'll be
easy to implement individual functions on constructed objects as per the
spec, and have each of these files diverge. The error constructors are also
similar, except that their instance derives from ErrorInstance.
- Use constructor macro when initializing the global object.
- Dramatically improve testing of the WebAssembly API by checking for
properties specified in the spec [*].
- Clean up assert.js' exception testing.
- Fix a copy-paste bug in wasm.json: floating-point const return values were
swapped.
[*] https://github.com/WebAssembly/design/blob/master/JS.md
Implement more of the JavaScript WebAssembly API
https://bugs.webkit.org/show_bug.cgi?id=163571
Reviewed by Keith Miller.
* wasm/assert.js:
(export.const.isUndef): add this useful helper
(export.const.throws): fold other throw checks into this one, and check message as well
* wasm/js-api/test_basic_api.js:
(const.checkOwnPropertyDescriptor): check own property descriptor follows the spec
* wasm/self-test/test_BuilderJSON.js:
(const.assertOpThrows): use new assert API
(CheckedOpcodeArgumentsTooMany): ditto
(CheckedOpcodeArgumentsNotEnough): ditto
(CallInvalid): ditto
(I32ConstInvalid): ditto
(F32ConstInvalid): ditto (and this caugth the JSON copy-paste bug)
(F64ConstInvalid): ditto
* wasm/self-test/test_LowLevelBinary_varint.js: use new assert API
* wasm/self-test/test_LowLevelBinary_varuint.js: use new assert API
* wasm/utilities.js: add "global" object, used in basic API test (to access global.WebAssembly).
* wasm/wasm.json: fix copy-paste
2016-10-19 Caitlin Potter <caitp@igalia.com>
[JSC] forbid "use strict" directive in generator functions with non-simple parameters
https://bugs.webkit.org/show_bug.cgi?id=163683
Reviewed by Geoffrey Garen.
Update various generator*-non-simple-param.js tests to be passing.
* test262.yaml:
2016-10-18 Mark Lam <mark.lam@apple.com>
Invoking Object.prototype.__proto__ accessors directly should throw a TypeError.
https://bugs.webkit.org/show_bug.cgi?id=154377
<rdar://problem/27330808>
Reviewed by Filip Pizlo and Saam Barati.
* stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.
2016-10-18 Keith Miller <keith_miller@apple.com>
GetByVal to GetById conversion in the DFG is incorrect for getters with control flow
https://bugs.webkit.org/show_bug.cgi?id=163629
Reviewed by Yusuke Suzuki.
* stress/get-by-val-to-id-with-getter.js: Added.
(foo):
(o.get hello):
2016-10-15 Filip Pizlo <fpizlo@apple.com>
DFG and FTL should be able to use DirectCall ICs when they proved the callee or its executable
https://bugs.webkit.org/show_bug.cgi?id=163371
Reviewed by Geoffrey Garen and Saam Barati.
Add microbenchmarks for all of the cases that this patch optimizes.
* microbenchmarks/direct-call-arity-mismatch.js: Added.
(foo):
(bar):
* microbenchmarks/direct-call.js: Added.
(foo):
(bar):
* microbenchmarks/direct-construct-arity-mismatch.js: Added.
(Foo):
(bar):
* microbenchmarks/direct-construct.js: Added.
(Foo):
(bar):
* microbenchmarks/direct-tail-call-arity-mismatch.js: Added.
(foo):
(bar):
* microbenchmarks/direct-tail-call-inlined-caller-arity-mismatch.js: Added.
(foo):
(bar):
(baz):
* microbenchmarks/direct-tail-call-inlined-caller.js: Added.
(foo):
(bar):
(baz):
* microbenchmarks/direct-tail-call.js: Added.
(foo):
(bar):
2016-10-18 Caitlin Potter <caitp@igalia.com>
[JSC] ES6 Method functions should not have prototype
https://bugs.webkit.org/show_bug.cgi?id=162530
Reviewed by Saam Barati.
Fix test262 expectations about MethodDefinitions
* ChakraCore/test/strict/05.arguments_sm.baseline-jsc:
* stress/reflect-set.js:
* test262.yaml:
2016-10-17 Keith Miller <keith_miller@apple.com>
Add support for WASM Memory.
https://bugs.webkit.org/show_bug.cgi?id=161710
Reviewed by Geoffrey Garen.
Add store and load opcodes to wasm.json. Additionally, add new
enums for those opcodes in the generator.
* stress/wasm/generate-wasmops-header.js:
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):
2016-10-17 Saam Barati <sbarati@apple.com>
Add more tests for the double->String conversion in ValueAdd constant folding
https://bugs.webkit.org/show_bug.cgi?id=163517
Reviewed by Yusuke Suzuki.
* microbenchmarks/string-add-constant-folding.js:
(test):
2016-10-17 JF Bastien <jfbastien@apple.com>
WebAssembly JS API: implement basic stub
Implement the global WebAssembly JavaScript object, and its constructor +
function properties as described in:
https://github.com/WebAssembly/design/blob/master/JS.md
These don't do anything at the moment, the parent bug will take care of adding
more functionality and associated tests.
WebAssembly JS API: implement basic stub
https://bugs.webkit.org/show_bug.cgi?id=163404
Reviewed by Keith Miller.
* wasm.yaml:
* wasm/js-api/test_basic_api.js: Added.
(const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
(const.c.of.constructorProperties.catch):
2016-10-17 Yusuke Suzuki <utatane.tea@gmail.com>
[DOMJIT] Use DOMJIT::Patchpoint in IC
https://bugs.webkit.org/show_bug.cgi?id=163223
Reviewed by Saam Barati.
* stress/domjit-exception-ic.js: Added.
(shouldBe):
(access):
* stress/domjit-exception.js: Added.
(shouldBe):
(access):
* stress/domjit-getter-complex-with-incorrect-object.js: Added.
(shouldThrow):
(access):
(i.shouldThrow):
* stress/domjit-getter-complex.js: Added.
(shouldBe):
(access):
* stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.
(assert):
(bar):
(foo):
2016-10-15 Saam Barati <sbarati@apple.com>
Assertion failed under operationToLowerCase with a rope with zero length
https://bugs.webkit.org/show_bug.cgi?id=163314
Reviewed by Mark Lam.
* stress/to-lower-case-intrinsic-on-empty-rope.js: Added.
(assert):
(returnRope.helper):
(returnRope):
(lower):
2016-10-14 Benjamin Poulain <bpoulain@apple.com>
[JSC] op_negate should with any type
https://bugs.webkit.org/show_bug.cgi?id=162587
Reviewed by Saam Barati.
* stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.
Cover OSR Exits when converting Math.abs() into ArithNegate.
* stress/arith-negate-on-various-types.js: Added.
Cover ArithNegate with all types.
2016-10-14 JF Bastien <jfbastien@apple.com>
Basic WebAssembly testing
Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.
Details and example in README.md.
Basic WebAssembly testing
https://bugs.webkit.org/show_bug.cgi?id=163267
Reviewed by Keith Miller.
* stress/wasm/wasm.json: Removed.
* wasm.yaml: Added.
* wasm/Builder.js: Added.
(const._isValidValue):
(const._BuildWebAssemblyBinary):
(export.default.Builder):
(export.default.Builder.prototype.setChecked):
(export.default.Builder.prototype.setPreamble):
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
(export.default.Builder.prototype._registerSectionBuilders):
(export.default.Builder.prototype._addSection):
(export.default.Builder.prototype.optimize):
(export.default.Builder.prototype.json):
(export.default.Builder.prototype.AsmJS):
(export.default.Builder.prototype.WebAssembly):
* wasm/LowLevelBinary.js: Added.
(const._getterRangeCheck):
(const._hexdump):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.newPatchable):
(export.default.LowLevelBinary.prototype.hexdump):
(export.default.LowLevelBinary.prototype._maybeGrow):
(export.default.LowLevelBinary.prototype._push8):
(export.default.LowLevelBinary.prototype.uint8):
(export.default.LowLevelBinary.prototype.uint16):
(export.default.LowLevelBinary.prototype.uint32):
(export.default.LowLevelBinary.prototype.varuint):
(export.default.LowLevelBinary.prototype.varint):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getSize):
(export.default.LowLevelBinary.prototype.getUint8):
(export.default.LowLevelBinary.prototype.getUint16):
(export.default.LowLevelBinary.prototype.getUint32):
(export.default.LowLevelBinary.prototype.getVaruint):
(export.default.LowLevelBinary.prototype.getVarint):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(PatchableLowLevelBinary):
(PatchableLowLevelBinary.prototype._push8):
(PatchableLowLevelBinary.prototype.apply):
* wasm/README.md: Added.
* wasm/WASM.js: Added.
* wasm/assert.js: Added.
(export.const.notUndef):
(export.const.eq):
(export.const.ge):
(export.const.throwsError):
(export.const.throwsRangeError):
* wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
* wasm/self-test/test_BuilderJSON.js: Added.
(const.assertOpThrows):
(EmptyModule):
(CustomMagicNumber):
(CustomVersion):
(CustomSection):
(CustomSectionAllBytes):
(CustomSectionInvalidByte):
(TwoCustomSections):
(EmptyCodeSection):
(CodeSectionWithEmptyFunction):
(CodeSectionWithEmptyFunctionWithParameters):
(InvalidFunctionParameters):
(SimpleFunction):
(TwoSimpleFunctions):
(TwoBuildersAtTheSameTime):
(CheckedOpcodeArgumentsTooMany):
(CheckedOpcodeArgumentsNotEnough):
(CallNoArguments):
(CallInvalid):
(I32ConstInvalid):
(F32ConstInvalid):
(F64ConstInvalid):
(CallManyFromStack):
(OpcodeAdd):
(OpcodeUnreachable):
(OpcodeUnreachableCombinations):
(OpcodeSelect):
* wasm/self-test/test_BuilderWebAssembly.js: Added.
(EmptyModule):
(CustomSection):
(Basic):
* wasm/self-test/test_LowLevelBinary_encode.js: Added.
* wasm/self-test/test_LowLevelBinary_string.js: Added.
* wasm/self-test/test_LowLevelBinary_uint16.js: Added.
* wasm/self-test/test_LowLevelBinary_uint32.js: Added.
* wasm/self-test/test_LowLevelBinary_uint8.js: Added.
* wasm/self-test/test_LowLevelBinary_varint.js: Added.
* wasm/self-test/test_LowLevelBinary_varuint.js: Added.
* wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
* wasm/self-test/test_WASM.js: Added.
* wasm/test.sh: Added.
* wasm/utilities.js: Added.
(const._read.filename.switch):
(const._load.filename.switch):
(const._json.filename.switch):
* wasm/wasm.json: Added.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
test262: @isConstructor incorrectly thinks Math.cos is a constructor
https://bugs.webkit.org/show_bug.cgi?id=163437
Reviewed by Saam Barati.
* stress/is-constructor.js: Added.
(assert):
(prototype.assert):
New test to cover the @isConstructor builtin.
* test262.yaml:
Test now passes.
2016-10-14 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r207322.
This change caused JSC test failures
Reverted changeset:
"Fix Array.prototype.splice ES6 compliance."
https://bugs.webkit.org/show_bug.cgi?id=163372
http://trac.webkit.org/changeset/207322
2016-10-14 Mark Lam <mark.lam@apple.com>
JSON.parse should not modify frozen objects.
https://bugs.webkit.org/show_bug.cgi?id=163430
Reviewed by Saam Barati.
* stress/json-parse-on-frozen-object.js: Added.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
test262: Failure with RegExp.prototype.compile when pattern is undefined
https://bugs.webkit.org/show_bug.cgi?id=163431
Reviewed by Yusuke Suzuki.
* test262.yaml:
2016-10-13 Joseph Pecoraro <pecoraro@apple.com>
Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
https://bugs.webkit.org/show_bug.cgi?id=163426
Reviewed by Geoffrey Garen.
* ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
* ChakraCore/test/Object/null.baseline-jsc:
* stress/exception-in-to-property-key-should-be-handled-early.js:
Better exception messages.
2016-10-13 Mark Lam <mark.lam@apple.com>
Fix Array.prototype.splice ES6 compliance.
https://bugs.webkit.org/show_bug.cgi?id=163372
Reviewed by Geoffrey Garen and Yusuke Suzuki.
* stress/array-splice-on-frozen-object.js: Added.
2016-10-12 Keith Miller <keith_miller@apple.com>
Handle non-function, non-undefined comparator in Array.prototype.sort
https://bugs.webkit.org/show_bug.cgi?id=163085
Reviewed by Yusuke Suzuki.
* ChakraCore/test/Array/array_sort.baseline-jsc:
* stress/array-sort-bad-comparator.js: Added.
(test):
2016-10-12 Mark Lam <mark.lam@apple.com>
Array.prototype.slice should not modify frozen objects.
https://bugs.webkit.org/show_bug.cgi?id=163338
Reviewed by Filip Pizlo.
* stress/array-slice-on-frozen-object.js: Added.
2016-10-11 Mark Lam <mark.lam@apple.com>
Array.prototype.concat should not modify frozen objects.
https://bugs.webkit.org/show_bug.cgi?id=163302
Reviewed by Filip Pizlo.
* stress/array-concat-on-frozen-object.js: Added.
2016-10-11 Saam Barati <sbarati@apple.com>
ValueAdd should be constant folded if the operands are constant String,Primitive or Primitive,String
https://bugs.webkit.org/show_bug.cgi?id=163182
Reviewed by Filip Pizlo.
* microbenchmarks/string-add-constant-folding.js: Added.
(assert):
(runTests):
(add):
(test):
2016-10-07 Mark Lam <mark.lam@apple.com>
Object.freeze() and seal() should throw if [[PreventExtensions]]() fails.
https://bugs.webkit.org/show_bug.cgi?id=163160
Reviewed by Saam Barati.
* stress/object-freeze-with-proxy-preventExtensions.js: Added.
* stress/object-seal-with-proxy-preventExtensions.js: Added.
2016-10-05 Yusuke Suzuki <utatane.tea@gmail.com>
[DOMJIT] Add initial CheckDOM and CallDOM implementations
https://bugs.webkit.org/show_bug.cgi?id=162941
Reviewed by Filip Pizlo.
* stress/domjit-getter-poly.js: Added.
(shouldBe):
(access):
* stress/domjit-getter-proto.js: Added.
(shouldBe):
(access):
* stress/domjit-getter-super-poly.js: Added.
(shouldBe):
(access):
* stress/domjit-getter.js: Added.
(shouldBe):
(access):
2016-10-04 Saam Barati <sbarati@apple.com>
String.prototype.toLowerCase should be a DFG/FTL intrinsic
https://bugs.webkit.org/show_bug.cgi?id=162887
Reviewed by Filip Pizlo and Yusuke Suzuki.
* microbenchmarks/to-lower-case.js: Added.
(assert):
(foo):
(bar):
* stress/to-lower-case.js: Added.
(assert):
(foo):
2016-10-04 JF Bastien <jfbastien@apple.com>
WebAssembly: handle a few corner cases
https://bugs.webkit.org/show_bug.cgi?id=162884
Reviewed by Keith Miller.
* stress/wasm/generate-wasmops-header.js:
(const.opcodeIterator): max opcode value
2016-10-03 JF Bastien <jfbastien@apple.com>
Auto-generate WASMOps.h, share with testing JSON file
https://bugs.webkit.org/show_bug.cgi?id=162870
Reviewed by Keith Miller.
* stress/wasm/to-c++.js: Added. Generates WASMOps.h, siilar to the current one but with more data.
(const.opcode_iterator):
(opcode_macroizer):
* stress/wasm/wasm.json: Added. Data from 0xC binary format version.
2016-10-03 Saam Barati <sbarati@apple.com>
MapHash should speculate on the type of its child node
https://bugs.webkit.org/show_bug.cgi?id=161922
Reviewed by Filip Pizlo.
* microbenchmarks/map-key-well-typed.js: Added.
(assert):
(intKey):
(doubleKey):
(objectKey):
(stringKey):
(booleanKey):
(symbolKey):
(cellKey):
(assert.doubleKey):
(assert.booleanKey):
2016-10-03 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] GeneratorFunction (a.k.a. GeneratorWrapperFunction)'s prototype object does not have constructor property
https://bugs.webkit.org/show_bug.cgi?id=162849
Reviewed by Geoffrey Garen.
* test262.yaml:
2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Align attributes of Generator related properties to spec
https://bugs.webkit.org/show_bug.cgi?id=162839
Reviewed by Saam Barati.
* test262.yaml:
2016-10-01 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] GeneratorFunction constructor should instantiate generator function
https://bugs.webkit.org/show_bug.cgi?id=162838
Reviewed by Saam Barati.
* stress/generator-function-constructor-is-subclassible.js: Added.
(shouldBe):
(GeneratorFunction):
(prototype.hello):
* stress/generator-function-constructor.js:
* test262.yaml:
2016-09-30 Saam Barati <sbarati@apple.com>
Arrow functions should not allow duplicate parameter names
https://bugs.webkit.org/show_bug.cgi?id=162741
Reviewed by Filip Pizlo.
* test262.yaml:
2016-09-30 Saam Barati <sbarati@apple.com>
Make some microbenchmarks run for less time.
Rubber stamped by Filip Pizlo.
* microbenchmarks/bound-function-construction-performance.js:
(foo):
* microbenchmarks/getter-richards-try-catch.js:
2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
Arrow functions do not infer name from computed property but normal functions do
https://bugs.webkit.org/show_bug.cgi?id=162720
Reviewed by Saam Barati.
* stress/inferred-names.js:
2016-09-29 Mark Lam <mark.lam@apple.com>
Break some slow running tests into smaller bits so they don't time out.
https://bugs.webkit.org/show_bug.cgi?id=162743
Reviewed by Keith Miller.
The following tests have shown to be slow running:
op_div.js
op_lshift.js
op_mod.js
op_mul.js
op_rshift.js
op_sub.js
op_urshift
These tests auto-generate permutations of values to apply to binary operations.
They also test the operations with 3 permutations of value types:
1. VarVar - both operands variables
2. VarConst - variable operand 1, constant / literal operand 2
3. ConstVar - constant / literal operand 1, variable operand 2
We can prevent these tests from timing out by breaking each up to only run 1 of
the 3 permutations of value types.
* stress/op_div-ConstVar.js: Added.
* stress/op_div-VarConst.js: Added.
* stress/op_div-VarVar.js: Copied from JSTests/stress/op_div.js.
(o1.valueOf): Deleted.
* stress/op_div.js: Removed.
* stress/op_lshift-ConstVar.js: Added.
* stress/op_lshift-VarConst.js: Added.
* stress/op_lshift-VarVar.js: Copied from JSTests/stress/op_lshift.js.
(o1.valueOf): Deleted.
* stress/op_lshift.js: Removed.
* stress/op_mod-ConstVar.js: Added.
* stress/op_mod-VarConst.js: Added.
* stress/op_mod-VarVar.js: Copied from JSTests/stress/op_mod.js.
(o1.valueOf): Deleted.
* stress/op_mod.js: Removed.
* stress/op_mul-ConstVar.js: Added.
* stress/op_mul-VarConst.js: Added.
* stress/op_mul-VarVar.js: Copied from JSTests/stress/op_mul.js.
(o1.valueOf): Deleted.
* stress/op_mul.js: Removed.
* stress/op_rshift-ConstVar.js: Added.
* stress/op_rshift-VarConst.js: Added.
* stress/op_rshift-VarVar.js: Copied from JSTests/stress/op_rshift.js.
(o1.valueOf): Deleted.
* stress/op_rshift.js: Removed.
* stress/op_sub-ConstVar.js: Added.
* stress/op_sub-VarConst.js: Added.
* stress/op_sub-VarVar.js: Copied from JSTests/stress/op_sub.js.
(o1.valueOf): Deleted.
* stress/op_sub.js: Removed.
* stress/op_urshift-ConstVar.js: Added.
* stress/op_urshift-VarConst.js: Added.
* stress/op_urshift-VarVar.js: Copied from JSTests/stress/op_urshift.js.
(o1.valueOf): Deleted.
* stress/op_urshift.js: Removed.
* stress/resources/binary-op-values.js: Added.
(o1.valueOf):
2016-09-29 Joseph Pecoraro <pecoraro@apple.com>
test262: class and function names should be inferred in assignment
https://bugs.webkit.org/show_bug.cgi?id=146262
Reviewed by Saam Barati.
* stress/arrowfunction-name.js: Added.
Quick tests for arrow function names.
* stress/inferred-names.js: Added.
General test for inferred function names.
* test262.yaml:
Pass many tests checking inferred function names.
2016-09-29 Saam Barati <sbarati@apple.com>
We don't properly propagate non-simple-parameter-list when parsing a setter
https://bugs.webkit.org/show_bug.cgi?id=160483
Reviewed by Joseph Pecoraro.
* test262.yaml:
2016-09-28 Saam Barati <sbarati@apple.com>
stringProtoFuncRepeatCharacter will return `null` when it should not
https://bugs.webkit.org/show_bug.cgi?id=161944
Reviewed by Yusuke Suzuki.
* stress/pad-start-calls-repeat-character-with-double.js: Added.
(logLinesWithContext):
2016-09-27 Filip Pizlo <fpizlo@apple.com>
B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
https://bugs.webkit.org/show_bug.cgi?id=162644
Reviewed by Keith Miller.
* stress/chill-mod-chill-mod.js: Added.
(foo):
2016-09-26 Csaba Osztrogonác <oszi@inf.u-szeged.hu>
Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=162386
Unreviewed, relanding r206317 after typo fix.
* stress/string-joining-long-strings-should-not-crash.js:
2016-09-24 Caitlin Potter <caitp@igalia.com>
[JSTests] fix test262 expectations following r206333
https://bugs.webkit.org/show_bug.cgi?id=162533
Reviewed by Yusuke Suzuki.
* test262.yaml:
2016-09-23 Caitlin Potter <caitp@igalia.com>
[JSC] Implement parsing of Async Functions
https://bugs.webkit.org/show_bug.cgi?id=161409
Reviewed by Yusuke Suzuki.
* stress/async-await-syntax.js: Added.
(testSyntax):
(testSyntaxError):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntax):
(testTopLevelAsyncAwaitSyntaxSloppyMode):
(testTopLevelAsyncAwaitSyntaxStrictMode):
(testTopLevelAsyncAwaitSyntaxStrictMode.testSyntax):
(testNestedAsyncAwaitSyntax.async):
(testNestedAsyncAwaitSyntax.foo):
(testTopLevelAsyncAwaitSyntaxSloppyMode.testSyntaxError):
2016-09-23 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r206317.
This change caused timeouts on El Capitan Release JSC tests
Reverted changeset:
"Skip stress/string-joining-long-strings-should-not-crash.js
on memory limited devices"
https://bugs.webkit.org/show_bug.cgi?id=162386
http://trac.webkit.org/changeset/206317
2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
Skip mozilla-tests.yaml/js1_5/Array/regress-157652 on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=162381
Reviewed by Mark Lam.
* mozilla/mozilla-tests.yaml:
2016-09-23 Csaba Osztrogonác <ossy@webkit.org>
Skip stress/string-joining-long-strings-should-not-crash.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=162386
Reviewed by Mark Lam.
* stress/string-joining-long-strings-should-not-crash.js:
2016-09-22 Benjamin Poulain <bpoulain@apple.com>
[JSC] Use an inline cache to generate op_negate
https://bugs.webkit.org/show_bug.cgi?id=162371
Reviewed by Saam Barati.
* stress/op-negate-inline-cache.js: Added.
2016-09-22 Mark Lam <mark.lam@apple.com>
Array.prototype.join should do overflow checks on string joins.
https://bugs.webkit.org/show_bug.cgi?id=162459
Reviewed by Saam Barati.
* stress/array-join-on-strings-need-overflow-checks.js: Added.
(assert):
(catch):
2016-09-22 Joseph Pecoraro <pecoraro@apple.com>
test262: Function length should be number of parameters before parameters with default values
https://bugs.webkit.org/show_bug.cgi?id=162377
Reviewed by Saam Barati.
* stress/es6-default-parameters.js:
Add our own tests for function lengths with default parameters.
* test262.yaml:
We now pass all dflt-length tests.
2016-09-20 Benjamin Poulain <bpoulain@apple.com>
[JSC] Do not use EagerRun on tests counting recompilation
https://bugs.webkit.org/show_bug.cgi?id=162248
Reviewed by Geoffrey Garen.
This patch adds defaultNoEagerRun to all the tests
for which recompilation is the symptom of a bug.
The reason is that an OSR Exit can be unrelated to the tested
nodes when we are running in Eager mode.
* stress/arith-abs-on-various-types.js:
* stress/arith-ceil-on-various-types.js:
* stress/arith-clz32-on-various-types.js:
* stress/arith-cos-on-various-types.js:
* stress/arith-floor-on-various-types.js:
* stress/arith-fround-on-various-types.js:
* stress/arith-log-on-various-types.js:
* stress/arith-round-on-various-types.js:
* stress/arith-sin-on-various-types.js:
* stress/arith-sqrt-on-various-types.js:
* stress/arith-tan-on-various-types.js:
* stress/arith-trunc-on-various-types.js:
* stress/compare-strict-eq-on-various-types.js:
(testAllTypesCall):
The value 2 came from the other tests.
CompareStrictEq supports many more cases, the worst case
is bool->int->int52->number->polymorphic.
2016-09-20 Filip Pizlo <fpizlo@apple.com>
Make MarkedBlock state tracking support overlapped allocation and marking state
https://bugs.webkit.org/show_bug.cgi?id=161581
Reviewed by Geoffrey Garen.
Add a microbenchmark for why we want to reclaim empty blocks from other allocators.
* microbenchmarks/switching-size-classes.js: Added.
2016-09-20 Saam Barati <sbarati@apple.com>
Unreviewed, added test for x86 32-bit failure for HasOwnProperty node in DFG.
* stress/has-own-property-called-on-non-object.js: Added.
(let.objs):
(new.String):
(foo):
2016-09-20 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Add `typeof value === "symbol"` handling to bytecode compiler
https://bugs.webkit.org/show_bug.cgi?id=162253
Reviewed by Sam Weinig.
* microbenchmarks/is-symbol-mixed.js: Added.
(isSymbol):
(i.let.pair.of.list.String):
* microbenchmarks/is-symbol.js: Added.
(isSymbol):
2016-09-19 Saam Barati <sbarati@apple.com>
Make HasOwnProperty faster
https://bugs.webkit.org/show_bug.cgi?id=161708
Reviewed by Geoffrey Garen.
* microbenchmarks/has-own-property-name-cache.js: Added.
(foo):
* stress/has-own-property-cache-basics.js: Added.
(assert):
(foo):
* stress/has-own-property-name-cache-string-keys.js: Added.
(assert):
(foo):
* stress/has-own-property-name-cache-symbol-keys.js: Added.
(assert):
(foo):
* stress/has-own-property-name-cache-symbols-and-strings.js: Added.
(assert):
(foo):
2016-09-19 Benjamin Poulain <bpoulain@apple.com>
[JSC] Make the rounding-related nodes support any type
https://bugs.webkit.org/show_bug.cgi?id=161895
Reviewed by Geoffrey Garen.
* stress/arith-ceil-on-various-types.js: Added.
* stress/arith-floor-on-various-types.js: Added.
* stress/arith-round-on-various-types.js: Added.
* stress/arith-trunc-on-various-types.js: Added.
2016-09-18 Yusuke Suzuki <utatane.tea@gmail.com>
[JSC] Do not need to use defineProperty to define methods for object literals
https://bugs.webkit.org/show_bug.cgi?id=162111
Reviewed by Saam Barati.
* stress/object-literal-methods.js: Added.
(shouldBe):
(throw.new.Error.let.object.get name):
(throw.new.Error):
(shouldBe.let.object.get name):
(shouldBe.let.object.get prototype):
(shouldBe.let.object.get 42):
2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Introduce IsCellWithType node and unify IsJSArray, IsRegExpObject and newly added IsProxyObject
https://bugs.webkit.org/show_bug.cgi?id=162000
Reviewed by Filip Pizlo.
* microbenchmarks/is-array-for-array.js: Added.
(isArray):
* microbenchmarks/is-array-for-mixed-case.js: Added.
(isArray):
* microbenchmarks/is-array-for-non-array-object.js: Added.
(isArray):
* microbenchmarks/is-array-for-proxy.js: Added.
(isArray):
(isArray.proxy.throw.new.Error.isArray):
(isArray.proxy.throw.new.Error):
2016-09-16 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, gardening test262 results
Some tests are now passed with JSC, but marked as failed.
* test262.yaml:
2016-09-16 Joseph Pecoraro <pecoraro@apple.com>
test262: Various Constructors length properties should be configurable
https://bugs.webkit.org/show_bug.cgi?id=161998
Reviewed by Saam Barati.
* test262.yaml:
2016-09-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r205931.
https://bugs.webkit.org/show_bug.cgi?id=162021
Tests for this change fail on 32-bit JSC bots (Requested by
ryanhaddad on #webkit).
Reverted changeset:
"[JSC] Make the rounding-related nodes support any type"
https://bugs.webkit.org/show_bug.cgi?id=161895
http://trac.webkit.org/changeset/205931
2016-09-15 Joseph Pecoraro <pecoraro@apple.com>
test262: Should be a SyntaxError for duplicate parameter names in function with default parameters
https://bugs.webkit.org/show_bug.cgi?id=162013
Reviewed by Saam Barati.
* stress/es6-default-parameters.js:
* test262.yaml:
2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
ASSERT_NOT_REACHED when using spread inside an array literal with Function.prototype.apply
https://bugs.webkit.org/show_bug.cgi?id=162003
Reviewed by Saam Barati.
* stress/spread-calling.js:
* test262.yaml:
2016-09-14 Michael Saboff <msaboff@apple.com>
YARR doesn't check for invalid flags for literal regular expressions
https://bugs.webkit.org/show_bug.cgi?id=161995
Reviewed by Mark Lam.
New test.
* stress/regress-161995.js: Added.
(testStatic):
(catch):
2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
test262: TypedArray constructors length should be 3 and configurable
https://bugs.webkit.org/show_bug.cgi?id=161955
Reviewed by Mark Lam.
* test262.yaml:
2016-09-14 Benjamin Poulain <bpoulain@apple.com>
[JSC] Make the rounding-related nodes support any type
https://bugs.webkit.org/show_bug.cgi?id=161895
Reviewed by Geoffrey Garen.
* stress/arith-ceil-on-various-types.js: Added.
* stress/arith-floor-on-various-types.js: Added.
* stress/arith-round-on-various-types.js: Added.
* stress/arith-trunc-on-various-types.js: Added.
2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
TaggedTemplateString function calls should emit tail position calls
https://bugs.webkit.org/show_bug.cgi?id=161948
Reviewed by Yusuke Suzuki.
* stress/tail-call-recognize.js:
(runTests):
Ensure a tagged template string function call is tail call.
* test262.yaml:
These now pass.
2016-09-14 Joseph Pecoraro <pecoraro@apple.com>
test262: Array.prototype.slice should always set length
https://bugs.webkit.org/show_bug.cgi?id=161953
Reviewed by Mark Lam.
* test262.yaml:
2016-09-13 JF Bastien <jfbastien@apple.com>
Support jsc shell builtin `read`
https://bugs.webkit.org/show_bug.cgi?id=161662
Reviewed by Keith Miller.
* stress/jsc-read.js: Added.
(test): test `read` and `readFile` shell builtins, in string and binary mode.
2016-09-12 Skachkov Oleksandr <gskachkov@gmail.com>
ES6: Classes: Should be allowed to create a static method with name "arguments"
https://bugs.webkit.org/show_bug.cgi?id=152985
Reviewed by Keith Miller.
* test262.yaml:
2016-09-12 Saam Barati <sbarati@apple.com>
Speed up Function.prototype.bind a bit by making it a builtin
https://bugs.webkit.org/show_bug.cgi?id=161879
Reviewed by Filip Pizlo.
* microbenchmarks/function-bind-inlining.js: Added.
(assert):
(test):
(test2):
(foo):
* microbenchmarks/function-bind-no-inlining.js: Added.
(assert):
(test):
(test2):
(foo):
2016-09-12 Saam Barati <sbarati@apple.com>
HashMapImpl should take into account m_deleteCount in its load factor and it should be able to rehash the table to be smaller
https://bugs.webkit.org/show_bug.cgi?id=161640
Reviewed by Geoffrey Garen.
* microbenchmarks/map-rehash.js: Added.
* stress/map-delete.js: Added.
(assert):
* stress/map-rehash-2.js: Added.
(assert):
* stress/map-rehash.js: Added.
(assert):
2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, fix tests for different libm environments
https://bugs.webkit.org/show_bug.cgi?id=161857
* stress/ftl-arithtan.js:
2016-09-12 Benjamin Poulain <bpoulain@apple.com>
[JSC] Use GetArrayLength for JSArray.length even when the array type is undecided
https://bugs.webkit.org/show_bug.cgi?id=161671
Reviewed by Geoffrey Garen.
* stress/get-array-length-on-undecided.js: Added.
2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Add ArithTan
https://bugs.webkit.org/show_bug.cgi?id=161857
Reviewed by Filip Pizlo.
* microbenchmarks/tan.js: Added.
* stress/arith-tan-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueTanNoArgument):
(testNoArgument):
(opaqueAllTypesTan):
(testAllTypesCall):
(testTangleTypeCall):
(testConstant):
(opaqueTanForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueTanForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(opaqueTanForDCE):
(testDCE.let.testObject.valueOf):
(testDCE):
(testException.opaqueTanWithException):
(testException):
* stress/ftl-arithtan.js: Added.
(foo):
2016-09-12 Saam Barati <sbarati@apple.com>
MapHash should do constant folding when it has a constant argument and its legal to hash that value
https://bugs.webkit.org/show_bug.cgi?id=161639
Reviewed by Filip Pizlo.
* microbenchmarks/map-constant-key.js: Added.
(assert):
(test):
(foo):
2016-09-12 Michael Saboff <msaboff@apple.com>
JSC test timeout: ChakraCore.yaml/ChakraCore/test/Bugs/bug56026_trycatch.js.default
https://bugs.webkit.org/show_bug.cgi?id=161863
Reviewed by Saam Barati.
* ChakraCore.yaml:
Disabled Bugs/bug56026_trycatch.js.
2016-09-09 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling r205759 back in with a fix.
The expectation file, JSTests/ChakraCore/test/Lib/tostring.baseline-jsc,
should be named "toString.baseline-jsc".
* ChakraCore/test/Lib/toString.baseline-jsc: Copied from JSTests/ChakraCore/test/Lib/tostring.baseline-jsc.
* ChakraCore/test/Lib/tostring.baseline-jsc: Removed.
2016-09-09 Michael Saboff <msaboff@apple.com>
Disable three flakey Chakra Tests
https://bugs.webkit.org/show_bug.cgi?id=161807
Reviewed by Saam Barati.
* ChakraCore.yaml: Disabled the flakey tests
ChakraCore/test/Array/protoLookup_native.js
ChakraCore/test/LetConst/delete.js
ChakraCore/test/fieldopts/fieldhoist_sideeffect.js
2016-09-08 Saam Barati <sbarati@apple.com>
We should inline operationConvertJSValueToBoolean into JIT code
https://bugs.webkit.org/show_bug.cgi?id=161729
Reviewed by Filip Pizlo.
* stress/value-to-boolean.js: Added.
(assert):
(test1):
(test2):
(test3):
2016-09-08 Mark Lam <mark.lam@apple.com>
REGRESSION (r205569?): 32-bit JSC test timeout: stress/rest-parameter-many-arguments.js.dfg-maximal-flush-validate-no-cjit
https://bugs.webkit.org/show_bug.cgi?id=161756
Reviewed by Saam Barati.
It looks like the 32-bit JSC bot is just too slow at running this test with the
dfg-maximal-flush-validate-no-cjit configuration. We'll try excluding that
configuration.
* stress/rest-parameter-many-arguments.js:
2016-09-08 JF Bastien <jfbastien@apple.com>
Delete older WebAssembly tests
https://bugs.webkit.org/show_bug.cgi?id=161758
Reviewed by Filip Pizlo.
They're not running, rely on the older polyfill prototype, and the older code was deleted in: https://trac.webkit.org/changeset/204180
* stress/wasm-arithmetic-float32.js: Removed.
* stress/wasm-arithmetic-float64.js: Removed.
* stress/wasm-arithmetic-int32.js: Removed.
* stress/wasm-calls.js: Removed.
* stress/wasm-comma.js: Removed.
* stress/wasm-control-flow.js: Removed.
* stress/wasm-globals.js: Removed.
* stress/wasm-linear-memory.js: Removed.
* stress/wasm-locals.js: Removed.
* stress/wasm-relational.js: Removed.
* stress/wasm-type-conversion.js: Removed.
* stress/wasm/arithmetic-float32.wasm: Removed.
* stress/wasm/arithmetic-float64.wasm: Removed.
* stress/wasm/arithmetic-int32.wasm: Removed.
* stress/wasm/calls.wasm: Removed.
* stress/wasm/comma.wasm: Removed.
* stress/wasm/control-flow.wasm: Removed.
* stress/wasm/globals.wasm: Removed.
* stress/wasm/linear-memory.wasm: Removed.
* stress/wasm/locals.wasm: Removed.
* stress/wasm/relational.wasm: Removed.
* stress/wasm/type-conversion.wasm: Removed.
2016-09-08 Per Arne Vollan <pvollan@apple.com>
[Win] Exception fuzz tests fail
https://bugs.webkit.org/show_bug.cgi?id=140928
Reviewed by Mark Lam.
Unskip tests.
* exceptionFuzz.yaml:
2016-09-06 Saam Barati <sbarati@apple.com>
ProxyObject's structure should not have ObjectPrototype as its prototype and it should not have special behavior for intercepting "__proto__"
https://bugs.webkit.org/show_bug.cgi?id=161558
Reviewed by Benjamin Poulain.
* stress/proxy-get-prototype-of.js:
* stress/proxy-set-prototype-of.js:
(let.handler.setPrototypeOf): Deleted.
* stress/proxy-underscore-proto.js: Added.
(assert):
2016-09-06 Saam Barati <sbarati@apple.com>
Make JSMap and JSSet faster
https://bugs.webkit.org/show_bug.cgi?id=160989
Reviewed by Filip Pizlo.
* microbenchmarks/dense-set.js: Added.
(bench):
* microbenchmarks/large-map-iteration-with-additions.js: Added.
(bar):
(foo):
* microbenchmarks/large-map-iteration-with-mutation.js: Added.
(bar):
(foo):
* microbenchmarks/large-map-iteration.js: Added.
(bar):
(foo):
* microbenchmarks/map-get-get-cse.js: Added.
(bar):
(foo):
* microbenchmarks/map-has-get-cse-opportunity.js: Added.
(bar):
(foo):
* microbenchmarks/sparse-set.js: Added.
(bench):
* stress/map-cse-correctness.js: Added.
(assert):
(testHas):
(testGet):
(foo):
* stress/map-iteration.js: Added.
(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(test7):
(test8):
(test9):
(test10):
(test11):
(test12):
(test13):
(test14):
(test15):
(test16):
(test17):
(test18):
2016-09-06 Benjamin Poulain <bpoulain@apple.com>
[JSC] Make ArithClz32 work with Cell arguments
https://bugs.webkit.org/show_bug.cgi?id=161369
Reviewed by Geoffrey Garen.
* stress/arith-clz32-on-various-types.js: Added.
2016-09-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r205504.
https://bugs.webkit.org/show_bug.cgi?id=161645
Broke the iOS device build (Requested by ryanhaddad on
#webkit).
Reverted changeset:
"Make JSMap and JSSet faster"
https://bugs.webkit.org/show_bug.cgi?id=160989
http://trac.webkit.org/changeset/205504
2016-09-06 Saam Barati <sbarati@apple.com>
Make JSMap and JSSet faster
https://bugs.webkit.org/show_bug.cgi?id=160989
Reviewed by Filip Pizlo.
* microbenchmarks/dense-set.js: Added.
(bench):
* microbenchmarks/large-map-iteration-with-additions.js: Added.
(bar):
(foo):
* microbenchmarks/large-map-iteration-with-mutation.js: Added.
(bar):
(foo):
* microbenchmarks/large-map-iteration.js: Added.
(bar):
(foo):
* microbenchmarks/map-get-get-cse.js: Added.
(bar):
(foo):
* microbenchmarks/map-has-get-cse-opportunity.js: Added.
(bar):
(foo):
* microbenchmarks/sparse-set.js: Added.
(bench):
* stress/map-cse-correctness.js: Added.
(assert):
(testHas):
(testGet):
(foo):
* stress/map-iteration.js: Added.
(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(test7):
(test8):
(test9):
(test10):
(test11):
(test12):
(test13):
(test14):
(test15):
(test16):
(test17):
(test18):
2016-08-31 Filip Pizlo <fpizlo@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=160125
Reviewed by Geoffrey Garen and Keith Miller.
Most of the things I did properly covered by existing tests, but I found some simple cases of
unshifting that had sketchy coverage.
* stress/array-storage-array-unshift.js: Added.
* stress/contiguous-array-unshift.js: Added.
* stress/double-array-unshift.js: Added.
* stress/int32-array-unshift.js: Added.
2016-09-02 Michael Saboff <msaboff@apple.com>
Unreviewed fix after importing Chakra test
* ChakraCore.yaml: Skipped ChakraCore/test/UnifiedRegex/crazy.js because the original
test contained tab characters. I removed the tabs before landing. This test depended
on the tab characters and now fails after they were removed.
test.
2016-09-01 Michael Saboff <msaboff@apple.com>
Import Chakra tests to JSC
https://bugs.webkit.org/show_bug.cgi?id=154697
Reviewed by Saam Barati.
Added Chakra tests. All these tests are under Chakra/test. This is the same layout
for tests in the Chakra tree.
Created a ChakraCore.yaml file to be used with run-jsc-stress-tests. This file contains
the tests that are run when the original Chakra runtests.py script is run. That script
is the test driver for *nix platforms and does not attempt to run all tests or all
variations of tests. The runtest.py driver consults rlexe.xml files in each test
subdirectory to determine the test to run, the options to pass to the test and how to
determine pass/fail of the test. With runtests.py as the start, tests that didn't
pass directly where either skipped, with a message describing why or through
adjustments to the test infrastructure, as described below, where made to pass.
The only modification to the test infrastrucutre are:
1) Added simple mapping of Chakra expected exception text to JSC expected text in
test/UnitTestFramework/UnitTestFramework.js. It would make sense to also
map some JSC specific exception text to more generic text for the cases where
that text contains indetifier names or other source specific strings and the
Chakra equivolent exception texts are generic.
2) Created JSC specific expected text files where it is clear that the text work
as expected on JSC but the test output is different. Typically the differences
fall into three categories, different exception output, different output from
toString() of a function, slight numeric differences, and test that rely on
iteration order.
3) Stripped the CR's from the CR-LF line terminations of the files.
No actual test .js files were modified.
* ChakraCore: Added.
* ChakraCore.yaml: Added.
* ChakraCore/CONTRIBUTING.md: Added.
* ChakraCore/LICENSE.txt: Added.
* ChakraCore/README.md: Added.
* ChakraCore/THIRD-PARTY-NOTICES.txt: Added.
* ChakraCore/test: Added this directory and the tests included therein.
2016-09-01 JF Bastien <jfbastien@apple.com>
GetByIdWithThis/GetByValWithThis should have ValueProfiles so that they can predict their result types
https://bugs.webkit.org/show_bug.cgi?id=160922
Reviewed by Keith Miller.
Benchmark GetBy{Id,Val}WithThis in monomorphic and polymorphic uses.
The value profile is used by the calc functions, which do some mild math with the result.
These benchmarks get ~4% faster with value profiling.
* microbenchmarks/super-get-by-id-with-this-monomorphic.js: Added.
(A):
(A.prototype.set value):
(A.prototype.get value):
(B.prototype.set value):
(B.prototype.get value):
(B):
(const.bench):
* microbenchmarks/super-get-by-id-with-this-polymorphic.js: Added.
(A):
(A.prototype.set value):
(A.prototype.get value):
(B.prototype.set value):
(B.prototype.get value):
(B):
(const.bench):
* microbenchmarks/super-get-by-val-with-this-monomorphic.js: Added.
(value):
(A):
(A.prototype.set v):
(A.prototype.get v):
(B.prototype.set v):
(B.prototype.get v):
(B):
(const.bench):
* microbenchmarks/super-get-by-val-with-this-polymorphic.js: Added.
(value):
(A):
(A.prototype.set v):
(A.prototype.get v):
(B.prototype.set v):
(B.prototype.get v):
(B):
(const.bench):
2016-09-01 Benjamin Poulain <bpoulain@apple.com>
arith-abs-on-various-types.js is flaky
Unreviewed.
* stress/arith-abs-on-various-types.js:
Two compilation is too small for the worst case.
Math.abs() can be typed integer->number->untyped if we are very unlucky.
2016-09-01 Filip Pizlo <fpizlo@apple.com>
ObjectAllocationSinkingPhase::insertOSRHintsForUpdate() fails to emit updated hints in some cases
https://bugs.webkit.org/show_bug.cgi?id=161492
Reviewed by Mark Lam.
This bug affected function->activation references but not object->object field references,
because object->object field references are !neededForMaterialization(). So, the object
test always passed but the activation/function test used to always fail. It passes now.
* stress/materialize-activation-referenced-from-phantom-function.js: Added.
(bar):
(inc):
(dec):
(foo):
(test):
* stress/materialize-object-referenced-from-phantom-object.js: Added.
(bar):
(foo):
(test):
2016-08-31 Yusuke Suzuki <utatane.tea@gmail.com>
stress/random-53bit.js.ftl-no-cjit-no-inline-validate sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=161436
Reviewed by Filip Pizlo.
The test checks Math.random() correctly produces 53bit random values.
The test can fail by design, but this should be fairly rare.
However, when introducing, we wrap the `test()` with 1e4 to ensure the FTL compilation, and this
increases the failure rate. By increasing the MAX in the test, we make the failures much more rare case.
And we also add getRandomSeed() and setRandomSeed(seed) JSC shell helpers to dump more useful information
and reproduce the situation easily.
* stress/random-53bit.js:
(test):
2016-08-29 Benjamin Poulain <bpoulain@apple.com>
[JSC] Improve ArithAbs with polymorphic input
https://bugs.webkit.org/show_bug.cgi?id=161286
Reviewed by Saam Barati.
* stress/arith-abs-on-various-types.js: Added.
New tests.
* stress/arith-cos-on-various-types.js:
* stress/arith-fround-on-various-types.js:
* stress/arith-log-on-various-types.js:
* stress/arith-sin-on-various-types.js:
* stress/arith-sqrt-on-various-types.js:
Extend the existing tests to cover the DCE case.
2016-08-26 Benjamin Poulain <benjamin@webkit.org>
[JSC] Implement CompareStrictEq(String, Untyped) in FTL
https://bugs.webkit.org/show_bug.cgi?id=161229
Reviewed by Geoffrey Garen.
* stress/compare-strict-eq-on-various-types.js: Added.
2016-08-26 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] newPromiseCapabilities should check the given argument is constructor
https://bugs.webkit.org/show_bug.cgi?id=161226
Reviewed by Mark Lam.
The arrow function should not be a constructor. So the error should be raised.
* stress/new-promise-capabilities-requires-constructor.js: Added.
(shouldThrow):
2016-08-25 Benjamin Poulain <bpoulain@apple.com>
[JSC] Clean up the abstract interpreter for cos/sin/sqrt/fround/log
https://bugs.webkit.org/show_bug.cgi?id=161181
Reviewed by Geoffrey Garen.
Extend the tests to constants.
Add no-argument cases where needed.
* stress/arith-cos-on-various-types.js:
* stress/arith-fround-on-various-types.js:
* stress/arith-log-on-various-types.js:
* stress/arith-sin-on-various-types.js:
* stress/arith-sqrt-on-various-types.js:
2016-08-25 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG][FTL] Implement ES6 Generators in DFG / FTL
https://bugs.webkit.org/show_bug.cgi?id=152723
Reviewed by Filip Pizlo.
* stress/generator-fib-ftl-and-array.js: Added.
(fib):
* stress/generator-fib-ftl-and-object.js: Added.
(fib):
* stress/generator-fib-ftl-and-string.js: Added.
(fib):
* stress/generator-fib-ftl.js: Added.
(fib):
* stress/generator-frame-empty.js: Added.
(shouldThrow):
(shouldThrow.fib):
* stress/generator-reduced-save-point-put-to-scope.js: Added.
(shouldBe):
(gen):
* stress/generator-transfer-register-beyond-mutiple-yields.js: Added.
(shouldBe):
(gen):
2016-08-25 JF Bastien <jfbastien@apple.com>
TryGetById should have a ValueProfile so that it can predict its output type
https://bugs.webkit.org/show_bug.cgi?id=160921
Reviewed by Saam Barati.
* microbenchmarks/try-get-by-id-basic.js: Added.
(const.check):
(const.bench.f.const.fooPlusBar.createBuiltin):
* microbenchmarks/try-get-by-id-polymorphic.js: Added.
(const.check):
(fooPlusBar.createBuiltin):
(bench):
2016-08-25 Caio Lima <ticaiolima@gmail.com>
NewRegexp should not prevent inlining
https://bugs.webkit.org/show_bug.cgi?id=154808
Reviewed by Geoffrey Garen.
Added test where functions with NewRegExp can be inlined right now.
* stress/new-regex-inline.js: Added.
(assert):
(testRegexpInline):
(toInlineGlobal):
(withRegexp):
(inlineRegexpNotGlobal):
(toInlineRecursive):
(regexpContainsRecursive):
2016-08-24 Benjamin Poulain <benjamin@webkit.org>
[JSC] Make FRound work with any type
https://bugs.webkit.org/show_bug.cgi?id=161129
Reviewed by Geoffrey Garen.
* stress/arith-fround-on-various-types.js: Added.
2016-08-24 Filip Pizlo <fpizlo@apple.com>
Unreviewed, roll out r204901, r204897, r204866, r204856, r204854.
* stress/array-storage-array-unshift.js: Removed.
* stress/contiguous-array-unshift.js: Removed.
* stress/double-array-unshift.js: Removed.
* stress/int32-array-unshift.js: Removed.
2016-08-24 Skachkov Oleksandr <gskachkov@gmail.com>
[ES2016] Allow assignment in for-in head in not-strict mode
https://bugs.webkit.org/show_bug.cgi?id=160955
Reviewed by Saam Barati.
* stress/for-in-tests.js:
(foo):
(boo):
(catch):
2016-08-23 Benjamin Poulain <benjamin@webkit.org>
[JSC] Make ArithLog works with any type
https://bugs.webkit.org/show_bug.cgi?id=161110
Reviewed by Geoffrey Garen.
* stress/arith-log-on-various-types.js: Added.
2016-08-23 Saam Barati <sbarati@apple.com>
JSC should have a "microbenchmarks" directory instead of "regress" directory
https://bugs.webkit.org/show_bug.cgi?id=161096
Rubber stamped by Mark Lam.
* microbenchmarks: Copied from LayoutTests/js/regress/script-tests.
2016-08-23 Keith Miller <keith_miller@apple.com>
%TypedArray%.prototype.slice needs to check that the source and destination have not been detached.
https://bugs.webkit.org/show_bug.cgi?id=161031
<rdar://problem/27937019>
Reviewed by Geoffrey Garen.
* stress/typedarray-slice.js:
(get let):
(get try):
(testSpeciesWithTransferring):
2016-08-22 Filip Pizlo <fpizlo@apple.com>
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
https://bugs.webkit.org/show_bug.cgi?id=160125
Reviewed by Geoffrey Garen.
Most of the things I did properly covered by existing tests, but I found some simple cases of
unshifting that had sketchy coverage.
* stress/array-storage-array-unshift.js: Added.
* stress/contiguous-array-unshift.js: Added.
* stress/double-array-unshift.js: Added.
* stress/int32-array-unshift.js: Added.
2016-08-23 Keith Miller <keith_miller@apple.com>
Update/add new test262 tests
https://bugs.webkit.org/show_bug.cgi?id=161098
Reviewed by Saam Barati.
* test262.yaml:
* test262/test/annexB/language/statements/for-in/bare-initializer.js: Added.
* test262/test/annexB/language/statements/for-in/const-initializer.js: Added.
* test262/test/annexB/language/statements/for-in/let-initializer.js: Added.
* test262/test/annexB/language/statements/for-in/nonstrict-initializer.js: Added.
(a):
* test262/test/annenxB/language/statements/for-in/strict-initializer.js: Added.
* test262/test/annexB/language/statements/for-in/var-arraybindingpattern-initializer.js: Added.
* test262/test/annexB/language/statements/for-in/var-objectbindingpattern-initializer.js: Added.
* test262/test/built-ins/AsyncFunction/AsyncFunction-construct.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunction-is-extensible.js: Added.
(AsyncFunction.async):
* test262/test/built-ins/AsyncFunction/AsyncFunction-is-subclass.js: Added.
(async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunction-length.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunction-name.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunction-prototype.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunction.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-is-extensible.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-prototype.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/AsyncFunctionPrototype-to-string.js: Added.
(AsyncFunction.async.foo):
* test262/test/built-ins/AsyncFunction/instance-construct.js: Added.
(async.foo):
* test262/test/built-ins/AsyncFunction/instance-has-name.js: Added.
(async.foo):
* test262/test/built-ins/AsyncFunction/instance-length.js: Added.
(async.l0):
(async.l1):
(async.l2):
* test262/test/built-ins/AsyncFunction/instance-prototype-property.js: Added.
(async.foo):
* test262/test/built-ins/AsyncFunction/is-not-a-global.js: Added.
* 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.
* test262/test/built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset.js:
* 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.
* test262/test/built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setFloat32/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setFloat64/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setInt16/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setInt16/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setInt32/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setInt32/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setInt8/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setInt8/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setUint16/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setUint16/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setUint32/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setUint32/range-check-after-value-conversion.js:
* 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.
* test262/test/built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset.js:
* test262/test/built-ins/DataView/prototype/setUint8/index-check-before-value-conversion.js:
* test262/test/built-ins/DataView/prototype/setUint8/range-check-after-value-conversion.js:
* test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget-bound.js: Added.
(A):
* test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-boundtarget.js: Added.
(A):
* test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-new.js: Added.
(A):
* test262/test/built-ins/Function/prototype/bind/instance-construct-newtarget-self-reflect.js: Added.
(A):
* test262/test/built-ins/Function/prototype/toString/AsyncFunction.js: Added.
(async.f):
* test262/test/built-ins/Function/prototype/toString/async-function-declaration.js: Added.
(async.f):
* test262/test/built-ins/Function/prototype/toString/async-function-expression.js: Added.
(let.f.async.f):
* test262/test/built-ins/Function/prototype/toString/async-method.js: Added.
(let.f.async.f):
(let.g.async.string_appeared_here):
* test262/test/built-ins/JSON/parse/reviver-array-define-prop-err.js: Added.
(defineProperty):
* test262/test/built-ins/JSON/parse/reviver-array-delete-err.js: Added.
(deleteProperty):
* test262/test/built-ins/JSON/parse/reviver-array-length-coerce-err.js: Added.
(uncoercible.valueOf):
(get if):
* test262/test/built-ins/JSON/parse/reviver-array-length-get-err.js: Added.
(get if):
* test262/test/built-ins/JSON/parse/reviver-call-err.js: Added.
* test262/test/built-ins/JSON/parse/reviver-get-name-err.js: Added.
(thrower):
* test262/test/built-ins/JSON/parse/reviver-object-define-prop-err.js: Added.
(defineProperty):
* test262/test/built-ins/JSON/parse/reviver-object-delete-err.js: Added.
(deleteProperty):
* test262/test/built-ins/JSON/parse/reviver-object-own-keys-err.js: Added.
(ownKeys):
* test262/test/built-ins/Number/prototype/toExponential/infinity.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/nan.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/prop-desc.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits-symbol.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/return-abrupt-tointeger-fractiondigits.js: Added.
(fd1.valueOf):
(fd2.toString):
* test262/test/built-ins/Number/prototype/toExponential/return-values.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-0.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/this-is-0-fractiondigits-is-not-0.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/this-type-not-number-or-number-object.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/tointeger-fractiondigits.js: Added.
* test262/test/built-ins/Number/prototype/toExponential/undefined-fractiondigits.js: Added.
* test262/test/built-ins/Object/getOwnPropertyDescriptors/duplicate-keys.js:
* test262/test/built-ins/Object/getOwnPropertyDescriptors/proxy-undefined-descriptor.js: Added.
(badProxyHandlers.allowProxyTraps.getOwnPropertyDescriptor):
(badProxyHandlers.allowProxyTraps.ownKeys):
* test262/test/built-ins/Proxy/setPrototypeOf/boolean-trap-result-extensible-target.js: Removed.
(setPrototypeOf): Deleted.
* test262/test/built-ins/Proxy/setPrototypeOf/internals-call-order.js: Added.
(target.new.Proxy.Object.create.isExtensible):
(target.new.Proxy.Object.create.getPrototypeOf):
(target.new.Proxy.Object.create):
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-not-same-target-prototype.js:
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-target-same-target-prototype.js:
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/not-extensible-trap-is-false-return-false.js: Removed.
(setPrototypeOf): Deleted.
* test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-get-trap.js: Added.
* test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-isextensible-target.js: Added.
(isExtensible):
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-target-getprototypeof.js: Added.
(getPrototypeOf):
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/return-abrupt-from-trap.js: Renamed from JSTests/test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js.
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/return-is-abrupt.js:
(setPrototypeOf): Deleted.
* test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-false.js: Added.
(isExtensible):
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/toboolean-trap-result-true-target-is-extensible.js: Added.
(isExtensible):
(getPrototypeOf):
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/trap-is-not-callable.js:
* test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined-or-null.js: Added.
(setPrototypeOf):
* test262/test/built-ins/Proxy/setPrototypeOf/trap-is-undefined.js: Removed.
* test262/test/built-ins/RegExp/lastIndex.js: Added.
* test262/test/built-ins/RegExp/prototype/global/15.10.7.2-1.js: Removed.
* test262/test/built-ins/RegExp/prototype/global/this-val-invalid-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/global/this-val-non-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/global/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1.js: Removed.
* test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-invalid-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-non-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/ignoreCase/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-1.js: Removed.
* test262/test/built-ins/RegExp/prototype/lastIndex/15.10.7.5-2.js: Removed.
* test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A8.js: Removed.
(__re.hasOwnProperty): Deleted.
(__re.propertyIsEnumerable): Deleted.
(count.0): Deleted.
* test262/test/built-ins/RegExp/prototype/lastIndex/S15.10.7.5_A9.js: Removed.
(__re.hasOwnProperty): Deleted.
(catch): Deleted.
* test262/test/built-ins/RegExp/prototype/multiline/15.10.7.4-1.js: Removed.
* test262/test/built-ins/RegExp/prototype/multiline/this-val-invalid-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/multiline/this-val-non-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/multiline/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/no-regexp-matcher.js: Added.
* test262/test/built-ins/RegExp/prototype/source/15.10.7.1-1.js: Removed.
* test262/test/built-ins/RegExp/prototype/source/this-val-invalid-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/source/this-val-non-obj.js: Added.
(get Object):
* test262/test/built-ins/RegExp/prototype/source/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/source/value-empty.js: Added.
* test262/test/built-ins/RegExp/prototype/source/value-line-terminator.js: Added.
* test262/test/built-ins/RegExp/prototype/source/value-u.js: Added.
* test262/test/built-ins/RegExp/prototype/source/value.js: Added.
* 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.
* 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.
* test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/sticky/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/sticky/this-regexp.js.
* 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.
* 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.
* test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp-prototype.js: Added.
* test262/test/built-ins/RegExp/prototype/unicode/this-val-regexp.js: Renamed from JSTests/test262/test/built-ins/RegExp/prototype/unicode/this-regexp.js.
* test262/test/built-ins/String/numeric-properties.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-infinity-throws.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/date-is-nan-throws.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/formatToParts.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/length.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/main.js: Added.
(reduce):
(compareFTPtoFormat):
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/name.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/return-abrupt-tonumber-date.js: Added.
(obj1.valueOf):
(obj2.toString):
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/formatToParts.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/length.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/main.js: Added.
(reduce):
(compareFTPtoFormat):
* test262/test/intl402/NumberFormat/prototype/formatToParts/name.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/return-abrupt-tonumber.js: Added.
(obj1.valueOf):
(obj2.toString):
* test262/test/intl402/NumberFormat/prototype/formatToParts/this-has-not-internal-throws.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/this-is-not-object-throws.js: Added.
* test262/test/language/arguments-object/10.6-10-c-ii-2-s.js:
(foo): Deleted.
* test262/test/language/arguments-object/unmapped/via-params-dflt.js: Added.
(dflt):
* test262/test/language/arguments-object/unmapped/via-params-dstr.js: Added.
(dstr):
* test262/test/language/arguments-object/unmapped/via-params-rest.js: Added.
(rest):
* 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.
(foo):
* test262/test/language/block-scope/syntax/redeclaration-global/allowed-to-redeclare-function-declaration-with-function-declaration.js:
(f): Deleted.
* test262/test/language/eval-code/direct/super-call-arrow.js: Added.
(catch):
* test262/test/language/eval-code/direct/super-call-fn.js: Added.
(f):
* test262/test/language/eval-code/direct/super-call.js: Added.
(catch):
* test262/test/language/eval-code/direct/super-prop-arrow.js: Added.
(catch):
* test262/test/language/eval-code/direct/super-prop-method.js: Added.
(o.method):
* test262/test/language/eval-code/direct/super-prop.js: Added.
(catch):
* test262/test/language/eval-code/indirect/super-call.js: Added.
(catch):
(try.m):
* test262/test/language/eval-code/indirect/super-prop.js: Added.
(catch):
(try.m):
* test262/test/language/expressions/arrow-function/params-trailing-comma-length.js: Added.
(assert.sameValue):
* test262/test/language/expressions/arrow-function/params-trailing-comma.js: Added.
* test262/test/language/expressions/async-arrow-function/arrow-returns-promise.js: Added.
(p.then):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-NSPL-with-USD.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-arguments-in-formal-parameters.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals-default.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-await-in-formals.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-call.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-body-contains-super-property.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-duplicate-parameters.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-eval-in-formal-parameters.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-body-duplicate.js: Added.
(async):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-call.js: Added.
(async.foo.super):
* test262/test/language/expressions/async-arrow-function/early-errors-arrow-formals-contains-super-property.js: Added.
(async):
* test262/test/language/expressions/async-function/early-errors-expression-NSPL-with-USD.js: Added.
(async):
* test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-arguments.js: Added.
(async.arguments):
* test262/test/language/expressions/async-function/early-errors-expression-binding-identifier-eval.js: Added.
(async.eval):
* test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-call.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-body-contains-super-property.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-eval-in-formal-parameters.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-formals-body-duplicate.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-call.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-formals-contains-super-property.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/early-errors-expression-not-simple-assignment-target.js: Added.
(async.foo):
* test262/test/language/expressions/async-function/expression-returns-promise.js: Added.
(p.async):
* test262/test/language/expressions/async-function/syntax-expression-is-PrimaryExpression.js: Added.
(async.foo):
* test262/test/language/expressions/await/await-BindingIdentifier-in-global.js: Added.
(async.await):
* test262/test/language/expressions/await/await-BindingIdentifier-nested.js: Added.
(async.foo.await):
(async.foo):
* test262/test/language/expressions/await/await-awaits-thenable-not-callable.js: Added.
(async.foo):
* test262/test/language/expressions/await/await-awaits-thenables-that-throw.js: Added.
(thenable.then):
(async.foo):
* test262/test/language/expressions/await/await-awaits-thenables.js: Added.
(thenable.then):
(async.foo):
* test262/test/language/expressions/await/await-in-function.js: Added.
(foo):
* test262/test/language/expressions/await/await-in-generator.js: Added.
(foo):
* test262/test/language/expressions/await/await-in-global.js: Added.
* test262/test/language/expressions/await/await-in-nested-function.js: Added.
(async.foo.bar):
(async.foo):
* test262/test/language/expressions/await/await-in-nested-generator.js: Added.
(async.foo.bar):
(async.foo):
* test262/test/language/expressions/await/await-throws-rejections.js: Added.
(async.foo):
* test262/test/language/expressions/await/early-errors-await-not-simple-assignment-target.js: Added.
(async.foo):
* test262/test/language/expressions/await/no-operand.js: Added.
(async.foo):
* test262/test/language/expressions/await/syntax-await-has-UnaryExpression-with-MultiplicativeExpression.js: Added.
(async.foo):
* test262/test/language/expressions/await/syntax-await-has-UnaryExpression.js: Added.
(async.foo):
* test262/test/language/expressions/call/trailing-comma.js: Added.
(foo):
* test262/test/language/expressions/function/arguments-with-arguments-fn.js: Added.
(f):
* test262/test/language/expressions/function/arguments-with-arguments-lex.js: Added.
(f):
* test262/test/language/expressions/function/params-trailing-comma-arguments.js: Added.
(f1):
(f2):
* test262/test/language/expressions/function/params-trailing-comma-length.js: Added.
(assert.sameValue):
* test262/test/language/expressions/function/params-trailing-comma.js: Added.
* test262/test/language/expressions/generators/arguments-with-arguments-fn.js: Added.
(g):
* test262/test/language/expressions/generators/arguments-with-arguments-lex.js: Added.
(g):
* test262/test/language/expressions/generators/params-trailing-comma-arguments.js: Added.
(f1):
(f2):
* test262/test/language/expressions/generators/params-trailing-comma-length.js: Added.
(assert.sameValue):
* test262/test/language/expressions/generators/params-trailing-comma.js: Added.
* test262/test/language/expressions/object/computed-property-evaluation-order.js: Added.
* test262/test/language/expressions/object/method-definition/async-super-call-body.js: Added.
(sup.method):
(child.async.method):
* test262/test/language/expressions/object/method-definition/async-super-call-param.js: Added.
(sup.method):
(child.async.method.x.super.method):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-NSPL-with-USD.js: Added.
(foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-arguments-in-formal-parameters.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals-default.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-await-in-formals.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-body-contains-super-call.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-eval-in-formal-parameters.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-body-duplicate.js: Added.
(async.foo):
* test262/test/language/expressions/object/method-definition/early-errors-object-method-formals-contains-super-call.js: Added.
(async.foo.foo.super):
* test262/test/language/expressions/object/method-definition/object-method-returns-promise.js: Added.
(obj.async.method):
* test262/test/language/expressions/object/method-definition/params-trailing-comma-arguments.js: Added.
(obj.f1):
(obj.f2):
* test262/test/language/expressions/object/method-definition/params-trailing-comma-length.js: Added.
(obj.one):
(obj.two):
* test262/test/language/expressions/object/method-definition/params-trailing-comma-rest.js: Added.
(m):
* test262/test/language/expressions/object/method-definition/params-trailing-comma.js: Added.
(one):
(two):
* 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.
(f):
* test262/test/language/global-code/decl-func.js: Added.
(brandNew):
* test262/test/language/global-code/decl-lex-configurable-global.js: Added.
* test262/test/language/global-code/decl-lex-deletion.js: Added.
(test262class):
* test262/test/language/global-code/decl-lex-restricted-global.js: Added.
* test262/test/language/global-code/decl-lex.js: Added.
(test262class):
* test262/test/language/global-code/decl-var.js: Added.
* test262/test/language/global-code/return.js: Added.
* test262/test/language/global-code/script-decl-func-dups.js: Added.
* test262/test/language/global-code/script-decl-func-err-non-configurable.js: Added.
* test262/test/language/global-code/script-decl-func-err-non-extensible.js: Added.
* test262/test/language/global-code/script-decl-func.js: Added.
* test262/test/language/global-code/script-decl-lex-deletion.js: Added.
* test262/test/language/global-code/script-decl-lex-lex.js: Added.
(test262Class):
* test262/test/language/global-code/script-decl-lex-restricted-global.js: Added.
* test262/test/language/global-code/script-decl-lex-var.js: Added.
(test262Fn):
* test262/test/language/global-code/script-decl-lex.js: Added.
* test262/test/language/global-code/script-decl-var-collision.js: Added.
(test262Class):
* test262/test/language/global-code/script-decl-var-err.js: Added.
* test262/test/language/global-code/script-decl-var.js: Added.
* test262/test/language/global-code/super-call-arrow.js: Added.
* test262/test/language/global-code/super-call.js: Added.
* test262/test/language/global-code/super-prop-arrow.js: Added.
* test262/test/language/global-code/super-prop.js: Added.
* test262/test/language/global-code/yield-non-strict.js: Added.
(catch):
* test262/test/language/global-code/yield-strict.js: Added.
* test262/test/language/literals/regexp/lastIndex.js: Added.
* test262/test/language/literals/regexp/u-unicode-esc-bounds.js:
* test262/test/language/literals/regexp/y-assertion-start.js: Added.
* test262/test/language/module-code/instn-star-err-not-found-faulty_FIXTURE.js:
* test262/test/language/module-code/instn-star-err-not-found.js:
* test262/test/language/module-code/namespace/internals/get-own-property-str-found-init.js:
* test262/test/language/module-code/parse-err-return.js: Added.
* test262/test/language/module-code/parse-err-yield.js: Added.
* test262/test/language/rest-parameters/params-trailing-comma-rest.js: Added.
* test262/test/language/statements/async-function/declaration-returns-promise.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-NSPL-with-USD.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-arguments-in-formal-parameters.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-await-in-formals-default.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-await-in-formals.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-arguments.js: Added.
(async.arguments):
* test262/test/language/statements/async-function/early-errors-declaration-binding-identifier-eval.js: Added.
(async.eval):
* test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-call.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-body-contains-super-property.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-duplicate-parameters.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-eval-in-formal-parameters.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-formals-body-duplicate.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-call.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-declaration-formals-contains-super-property.js: Added.
(async.foo):
* test262/test/language/statements/async-function/early-errors-no-async-generator.js: Added.
(async.foo):
* test262/test/language/statements/async-function/evaluation-body-that-returns-after-await.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/async-function/evaluation-body-that-returns.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/async-function/evaluation-body-that-throws-after-await.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/async-function/evaluation-body-that-throws.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/async-function/evaluation-body.js: Added.
(async.foo):
* test262/test/language/statements/async-function/evaluation-default-that-throws.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/async-function/evaluation-mapped-arguments.js: Added.
(async.foo):
* test262/test/language/statements/async-function/evaluation-this-value-global.js: Added.
(async.foo):
* test262/test/language/statements/async-function/evaluation-this-value-passed.js: Added.
(async.foo):
* test262/test/language/statements/async-function/evaluation-unmapped-arguments.js: Added.
(async.foo):
* test262/test/language/statements/async-function/syntax-declaration-line-terminators-allowed.js: Added.
(async.foo):
* test262/test/language/statements/async-function/syntax-declaration-no-line-terminator.js: Added.
(async.foo):
* test262/test/language/statements/async-function/syntax-declaration.js: Added.
(async.foo):
(foo.then):
* test262/test/language/statements/class/definition/class-method-returns-promise.js: Added.
(Foo.prototype.async.method):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-NSPL-with-USD.js: Added.
(Foo.prototype.async.bar):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-arguments-in-formal-parameters.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals-default.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-await-in-formals.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-body-contains-super-call.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-duplicate-parameters.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-eval-in-formal-parameters.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-formals-body-duplicate.js: Added.
(Foo.async.foo):
(Foo):
* test262/test/language/statements/class/definition/early-errors-class-method-formals-contains-super-call.js: Added.
(Foo.prototype.async.foo):
(Foo):
* test262/test/language/statements/class/definition/methods-async-super-call-body.js: Added.
(A.prototype.async.method):
(A):
(B.prototype.async.method):
(B):
* test262/test/language/statements/class/definition/methods-async-super-call-param.js: Added.
(A.prototype.async.method):
(A):
(B.prototype.async.method):
(B):
* test262/test/language/statements/class/definition/params-trailing-comma-arguments.js: Added.
(C.prototype.f1):
(C.prototype.f2):
(C):
* test262/test/language/statements/class/definition/params-trailing-comma-length.js: Added.
(C.prototype.one):
(C.prototype.two):
(C):
* test262/test/language/statements/class/definition/params-trailing-comma-rest.js: Added.
(C.prototype.m):
(C):
* test262/test/language/statements/class/definition/params-trailing-comma.js: Added.
(C.prototype.one):
(C.prototype.two):
(C):
* test262/test/language/statements/function/arguments-with-arguments-fn.js: Added.
(f):
* test262/test/language/statements/function/arguments-with-arguments-lex.js: Added.
(f):
* test262/test/language/statements/function/params-trailing-comma-arguments.js: Added.
(f1):
(f2):
* test262/test/language/statements/function/params-trailing-comma-length.js: Added.
(one):
(two):
* test262/test/language/statements/function/params-trailing-comma.js: Added.
(one):
(two):
* test262/test/language/statements/generators/arguments-with-arguments-fn.js: Added.
(g):
* test262/test/language/statements/generators/arguments-with-arguments-lex.js: Added.
(g):
* test262/test/language/statements/generators/params-trailing-comma-length.js: Added.
(one):
(two):
* test262/test/language/statements/generators/params-trailing-comma.js: Added.
(one):
(two):
* test262/test262-Revision.txt:
2016-08-23 Benjamin Poulain <bpoulain@apple.com>
[JSC] Make Math.cos() and Math.sin() work with any argument type
https://bugs.webkit.org/show_bug.cgi?id=161069
Reviewed by Geoffrey Garen.
* stress/arith-cos-on-various-types.js: Added.
* stress/arith-sin-on-various-types.js: Added.
2016-08-23 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Module namespace object's Symbol.iterator method should only accept module namespace objects
https://bugs.webkit.org/show_bug.cgi?id=161097
Reviewed by Keith Miller.
* test262.yaml:
2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Modules' `export default function/class` should be declaration
https://bugs.webkit.org/show_bug.cgi?id=160499
Reviewed by Saam Barati.
Add several module tests. And flip the failed tests flags in test262.
* modules/export-default-function-name-in-assignment-expression.js: Added.
(export.default):
* modules/export-default-function-name-in-class-declaration.js: Added.
* modules/export-default-function-name-in-function-declaration.js: Added.
(export.default):
* modules/export-default-function-name-in-generator-declaration.js: Added.
(export.default):
* stress/method-name.js: Added.
(testSyntax):
(testSyntaxError):
(testSyntaxError.Hello.prototype.hello.hello):
(testSyntaxError.Hello):
(SyntaxError.Unexpected.identifier.string_appeared_here.Expected.an.opening.string_appeared_here.before.a.method.testSyntaxError.let.obj.hello.hello):
(testSyntaxError.Hello.prototype.get hello):
(testSyntaxError.Hello.prototype.set hello):
* test262.yaml:
2016-08-22 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Module should not allow HTML comments
https://bugs.webkit.org/show_bug.cgi?id=161041
Reviewed by Saam Barati.
* modules/html-comments.js: Added.
(shouldThrow):
* test262.yaml:
2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Should not fixup AnyIntUse in 32_64
https://bugs.webkit.org/show_bug.cgi?id=161029
Reviewed by Saam Barati.
* typeProfiler/int52-dfg.js: Added.
(test):
2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
Unreviewed, rolling out r204697
https://bugs.webkit.org/show_bug.cgi?id=161029
* typeProfiler/int52-dfg.js: Removed.
(test): Deleted.
* typeProfiler/number-filter-dfg.js: Removed.
(test): Deleted.
2016-08-21 Yusuke Suzuki <utatane.tea@gmail.com>
[DFG] Should not fixup AnyIntUse in 32_64
https://bugs.webkit.org/show_bug.cgi?id=161029
Reviewed by Saam Barati.
* typeProfiler/int52-dfg.js: Added.
(test):
* typeProfiler/number-filter-dfg.js: Added.
(test):
2016-08-19 Benjamin Poulain <bpoulain@apple.com>
[JSC] ArithSqrt should work with any argument type
https://bugs.webkit.org/show_bug.cgi?id=160954
Reviewed by Saam Barati.
* stress/arith-sqrt-on-various-types.js: Added.
(let.validInputTypedTestCases.validInputTestCases.map):
(isIdentical):
(opaqueAllTypesSqrt):
(testAllTypesCall):
(testSingleTypeCall):
(opaqueSqrtForSideEffects):
(testSideEffect.let.testObject.valueOf):
(testSideEffect):
(opaqueSqrtForCSE):
(testCSE.let.testObject.valueOf):
(testCSE):
(testException.opaqueSqrtWithException):
(testException):
2016-08-19 Joseph Pecoraro <pecoraro@apple.com>
Make custom Error properties (line, column, sourceURL) configurable and writable
https://bugs.webkit.org/show_bug.cgi?id=160984
<rdar://problem/27905979>
Reviewed by Saam Barati.
* stress/native-error-properties.js: Added.
(assert):
(shouldNotThrow):
(checkEmptyErrorPropertiesDescriptors):
(checkNonEmptyErrorPropertiesDescriptors):
The spec only describes the "message" property, so
ensure it has the right descriptor attributes.
(checkErrorPropertiesWritable):
Ensure common error property names are writable.
In strict mode this would have thrown an exception
if they were readonly.
2016-08-18 Mark Lam <mark.lam@apple.com>
ScopedArguments is using the wrong owner object for a write barrier.
https://bugs.webkit.org/show_bug.cgi?id=160976
<rdar://problem/27328506>
Reviewed by Keith Miller.
* stress/scoped-arguments-write-barrier-should-be-on-scope-object.js: Added.
2016-08-17 JF Bastien <jfbastien@apple.com>
We allow assignments to const variables when in a for-in/for-of loop
https://bugs.webkit.org/show_bug.cgi?id=156673
Reviewed by Filip Pizlo.
* stress/for-in-of-const.js: Added.
(expect_nothrow):
(expect_throw):
(capture):
2016-08-17 Mark Lam <mark.lam@apple.com>
Remove an invalid assertion in the DFG backend's GetById emitter.
https://bugs.webkit.org/show_bug.cgi?id=160925
<rdar://problem/27248961>
Reviewed by Filip Pizlo.
* stress/dfg-get-by-id-should-not-assert-non-null-prediction.js: Added.
2016-08-16 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r204464.
This is no longer needed after r204495.
Reverted changeset:
"Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
https://bugs.webkit.org/show_bug.cgi?id=160662
http://trac.webkit.org/changeset/204464
2016-08-15 Ryan Haddad <ryanhaddad@apple.com>
Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
https://bugs.webkit.org/show_bug.cgi?id=160662
Unreviewed test gardening.
* mozilla/ecma/LexicalConventions/7.7.3.js:
2016-08-14 Skachkov Oleksandr <gskachkov@gmail.com>
[2016] Set correct status for test262 after implementation of Object.values&Object.entries
https://bugs.webkit.org/show_bug.cgi?id=160844
Reviewed by Saam Barati.
Patch contains fix statuses of specs in the test262 test collection after implementation of
Object.values and Object.entries functions. Also patch contains small fixes in tests of the
tests for Object.values/entries functions.
* stress/object-entries.js:
(Object.getOwnPropertyDescriptor):
* stress/object-values.js:
(Object.getOwnPropertyDescriptor):
* test262.yaml:
2016-08-12 Saam Barati <sbarati@apple.com>
Inline store loop for CopyRest in DFG and FTL for certain array modes
https://bugs.webkit.org/show_bug.cgi?id=159612
Reviewed by Filip Pizlo.
* stress/rest-parameter-having-a-bad-time.js: Added.
* stress/rest-parameter-many-arguments.js: Added.
* stress/rest-parameter-various-types.js: Added.
2016-08-12 Skachkov Oleksandr <gskachkov@gmail.com>
[ES2016] Implement Object.entries
https://bugs.webkit.org/show_bug.cgi?id=160412
Reviewed by Saam Barati.
Patch contains tests for Object.entries function and
fix of wrong tests for Object.values function.
* stress/object-entries.js:
(compare):
(string_appeared_here.forEach):
(const.getInvokedFunctions.):
(const.getInvokedFunctions):
(Array.prototype.push):
* stress/object-values.js:
2016-08-11 Mark Lam <mark.lam@apple.com>
OverridesHasInstance should not branch across register allocations.
https://bugs.webkit.org/show_bug.cgi?id=160792
<rdar://problem/27361778>
Reviewed by Benjamin Poulain.
* stress/OverrideHasInstance-should-not-branch-across-register-allocations.js: Added.
2016-08-11 Mark Lam <mark.lam@apple.com>
The jsc shell's Element host constructor should throw if it fails to construct an object.
https://bugs.webkit.org/show_bug.cgi?id=160773
<rdar://problem/27328608>
Reviewed by Saam Barati.
* stress/generational-opaque-roots.js:
2016-08-11 Mark Lam <mark.lam@apple.com>
Disallow synchronous sweeping for eden GCs.
https://bugs.webkit.org/show_bug.cgi?id=160716
Reviewed by Geoffrey Garen.
* stress/eden-gc-with-retired-blocks.js: Added.
- This test is just in case we add back support for eden GCs with synchronous
sweeping in the future.
2016-08-10 Michael Saboff <msaboff@apple.com>
Baseline GetByVal and PutByVal for cache ID stubs need to handle exceptions
https://bugs.webkit.org/show_bug.cgi?id=160749
Reviewed by Filip Pizlo.
New test that causes baseline GetByValWithCachedId and PutByValWithCachedId
stubs to be generated and then throws exceptions for those stub to handle
to verify that they are properly handled.
* stress/regress-160749.js: Added.
(testCachedGetByVal.):
(testCachedGetByVal.get for):
(testCachedGetByVal):
(testCachedPutByVal.):
(testCachedPutByVal.set for):
(testCachedPutByVal):
2016-08-10 Mark Lam <mark.lam@apple.com>
DFG's flushForTerminal() needs to add PhantomLocals for bytecode live locals.
https://bugs.webkit.org/show_bug.cgi?id=160755
<rdar://problem/27488507>
Reviewed by Filip Pizlo.
* stress/need-bytecode-liveness-for-unreachable-blocks-at-dfg-time.js: Added.
2016-08-09 Skachkov Oleksandr <gskachkov@gmail.com>
[ES2016] Implement Object.values
https://bugs.webkit.org/show_bug.cgi?id=160410
Reviewed by Saam Barati, Yusuke Suzuki.
* stress/object-values.js: Added.
(compare):
(string_appeared_here.forEach):
(const.getInvokedFunctions.):
(const.getInvokedFunctions):
(Array.prototype.push):
2016-08-09 Saam Barati <sbarati@apple.com>
JSBoundFunction should lazily generate its name string
https://bugs.webkit.org/show_bug.cgi?id=160678
<rdar://problem/27043194>
Reviewed by Mark Lam.
* stress/bound-function-lazy-name-generation.js: Added.
(assert):
(test.let.f):
(test.f):
(test):
2016-08-08 Mark Lam <mark.lam@apple.com>
ASSERTION FAILED: hasInlineStorage() in JSFinalObject::visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=160666
Reviewed by Keith Miller.
* stress/object-constructor-should-be-new-target-aware.js:
2016-08-07 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] Module namespace object should not allow unset IC
https://bugs.webkit.org/show_bug.cgi?id=160553
Reviewed by Saam Barati.
* modules/namespace-object-get-property.js: Added.
(import.as.ns.from.string_appeared_here.shouldThrow):
* modules/namespace-object-has-property.js: Added.
* modules/namespace-object-inline-caching.js: Added.
(import.as.A.from.string_appeared_here.import.as.B.from.string_appeared_here.lookup):
(shouldBe.lookup.lookup):
(shouldBe.lookup):
* modules/namespace-object-inline-caching/a.js: Added.
* modules/namespace-object-inline-caching/b.js: Added.
* modules/namespace-object-try-get.js: Added.
(import.as.ns.from.string_appeared_here.tryGetByIdText):
(tryGetByIdTextStrict):
* modules/namespace-object-typed-array-fast-path.js: Added.
* test262.yaml:
2016-08-05 Saam Barati <sbarati@apple.com>
various math operations don't properly check for an exception after calling toNumber() on the lhs
https://bugs.webkit.org/show_bug.cgi?id=160154
Reviewed by Mark Lam.
* stress/to-number-throws-correct-exception.js: Added.
(test.let.test.runTest.):
(test.let.test.runTest.get f):
(test.let.test.runTest):
(test.let.test):
(test):
(test2.runTest.):
(test2.runTest.get f):
(test2.runTest):
(test2):
2016-08-05 Saam Barati <sbarati@apple.com>
Assertion failure when accessing TDZ variable in catch through eval
https://bugs.webkit.org/show_bug.cgi?id=160554
Reviewed by Mark Lam and Keith Miller.
* stress/catch-variables-under-tdz.js: Added.
(test):
2016-08-04 Yusuke Suzuki <utatane.tea@gmail.com>
[ES6] JSModuleNamespaceObject's Symbol.iterator function should have name
https://bugs.webkit.org/show_bug.cgi?id=160549
Reviewed by Saam Barati.
* modules/namespace-object-symbol-iterator-name.js: Added.
* test262.yaml:
2016-08-04 Keith Miller <keith_miller@apple.com>
ASSERTION FAILED: !hasInstanceValueNode->isCellConstant() || defaultHasInstanceFunction == hasInstanceValueNode->asCell()
https://bugs.webkit.org/show_bug.cgi?id=160562
Reviewed by Mark Lam.
* stress/instanceof-late-constant-folding.js: Added.
(Constructor):
(value):
(body):
2016-08-04 Caitlin Potter <caitp@igalia.com>
[JSC] fix generator-syntax.js JSTest again after yield grammar fix
https://bugs.webkit.org/show_bug.cgi?id=160550
Reviewed by Yusuke Suzuki.
* stress/generator-syntax.js:
(testYieldBindingIdentifier):
2016-08-03 Caitlin Potter <caitp@igalia.com>
Clarify SyntaxErrors around yield and unskip tests
https://bugs.webkit.org/show_bug.cgi?id=158460
Reviewed by Saam Barati.
Fix and unskip tests which erroneously asserted that `yield` is not a
valid BindingIdentifier, and improve error message for YieldExpressions
occuring in Arrow formal parameters.
* stress/generator-syntax.js:
* stress/yield-out-of-generator.js:
2016-08-03 Filip Pizlo <fpizlo@apple.com>
REGRESSION(r203368): broke some test262 tests
https://bugs.webkit.org/show_bug.cgi?id=160479
Reviewed by Mark Lam.
Added a stress test for this case, since we don't always run test262.
* stress/freeze-setter.js: Added.
(let.o.set foo):
2016-08-03 Saam Barati <sbarati@apple.com>
Implement nested rest destructuring w.r.t the ES7 spec
https://bugs.webkit.org/show_bug.cgi?id=160423
Reviewed by Filip Pizlo.
* stress/destructuring-rest-element.js: Added.
(assert):
(test):
(arr):
(eq):
(gen):
(fakeGen.return.Symbol.iterator):
(fakeGen):
* stress/rest-elements.js:
(testSyntaxError.String.raw):
* stress/rest-parameter-is-destructuring.js: Added.
(assert):
(test):
(foo):
(bar):
* test262.yaml:
2016-08-02 Saam Barati <sbarati@apple.com>
Rename Changelog to ChangeLog
Rubber stamped by Keith Miller.
* Changelog: Removed.
2016-08-02 Saam Barati <sbarati@apple.com>
update a class extending null w.r.t the ES7 spec
https://bugs.webkit.org/show_bug.cgi?id=160417
Reviewed by Keith Miller.
* Changelog:
* stress/class-derived-from-null.js: Added.
(assert):
(test):
(test1.C):
(test1):
(jsNull):
(test2.C):
(test2):
(test3.C):
(test3.D):
(test3.E):
(test3):
(test4.E):
(test4):
(test5.E):
(test5):
(test6.Base):
(test6.D):
(test6.E):
(test6.F):
(test6.G):
(test6):
* test262.yaml:
2016-08-01 Filip Pizlo <fpizlo@apple.com>
Rationalize varargs stack overflow checks
https://bugs.webkit.org/show_bug.cgi?id=160425
Reviewed by Michael Saboff.
* stress/arity-check-ftl-throw-more-args.js: Added.
(catch):
2016-08-01 Keith Miller <keith_miller@apple.com>
We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
https://bugs.webkit.org/show_bug.cgi?id=160372
Rubber stamped by Geoffrey Garen.
This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
a new top level directory, JSTests. Having the tests in the Source directory
was both confusing an inconvenient for people that just want to checkout the
source code of WebKit. Since there is no other obvious place to put all the
JavaScript tests a new top level directory seemed the most sensible.
* tests/: Deleted.