blob: 2aca08744b80c568d8d5ceba654fa10346716a08 [file] [log] [blame]
2022-01-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Support import assertion syntax
https://bugs.webkit.org/show_bug.cgi?id=235312
Reviewed by Ross Kirsling.
* modules/import-meta-syntax.js:
(shouldThrow):
* stress/import-syntax.js:
* stress/modules-syntax-error.js:
* stress/modules-syntax-import-assertion-error.js: Added.
(shouldThrow):
* stress/modules-syntax-import-assertion.js: Added.
2022-01-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Relax Date.parse requirement
https://bugs.webkit.org/show_bug.cgi?id=235468
Reviewed by Darin Adler.
* stress/date-relaxed-separator.js: Added.
(shouldBe):
2022-01-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Temporal.Now.instant()
https://bugs.webkit.org/show_bug.cgi?id=234836
Reviewed by Ross Kirsling.
* stress/temporal-now-instant.js: Added.
(shouldBe):
2022-01-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix YarrJIT backtrackCharacterClassNonGreedy breakpoint
https://bugs.webkit.org/show_bug.cgi?id=235348
Reviewed by Michael Saboff.
* stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:
2022-01-19 Michael Catanzaro <mcatanzaro@gnome.org>
Unreviewed, skip new test max-typed-array-length-toString.js when memory-limited
https://bugs.webkit.org/show_bug.cgi?id=235217
* stress/max-typed-array-length-toString.js:
2022-01-18 Mark Lam <mark.lam@apple.com>
Gardening: resolve test failure on CLoop.
Not reviewed.
Change test to not rely on WebAssembly.
* stress/max-typed-array-length-toString.js:
2022-01-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix Date functions' argument coercion
https://bugs.webkit.org/show_bug.cgi?id=235271
Reviewed by Alexey Shvayka.
* test262/expectations.yaml:
2022-01-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix misc issues in WebAssembly.Exception
https://bugs.webkit.org/show_bug.cgi?id=235261
Reviewed by Alexey Shvayka.
* wasm/stress/create-tag-from.js:
* wasm/v8/exceptions-api.js:
(TestGetArg):
2022-01-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=235263
Reviewed by Alexey Shvayka.
Update to the latest one.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/test262-Revision.txt:
2022-01-14 Mark Lam <mark.lam@apple.com>
JSStringJoiner's constructor should take a size_t length.
https://bugs.webkit.org/show_bug.cgi?id=235217
rdar://87538657
Reviewed by Yusuke Suzuki.
* stress/max-typed-array-length-toString.js: Added.
2022-01-14 Alexey Shvayka <ashvayka@apple.com>
JSArray::fastSlice() should not convert the source from CoW
https://bugs.webkit.org/show_bug.cgi?id=234990
Reviewed by Yusuke Suzuki.
* stress/array-slice-cow.js:
2022-01-14 Justin Michaud <justin_michaud@apple.com>
Update libWABT
https://bugs.webkit.org/show_bug.cgi?id=235050
Update libWabt to support new simd instructions, and add stubs so that the
wasm test runner can run in v8.
Reviewed by Yusuke Suzuki.
* wasm/assert.js:
* wasm/libwabt.js:
(WabtModule):
(set get if):
2022-01-11 Asumu Takikawa <asumu@igalia.com>
[Wasm] Unify memory import handling in module loader and JS cases
https://bugs.webkit.org/show_bug.cgi?id=234116
Reviewed by Yusuke Suzuki.
Add an instantiation test case that tests that instantiating the same
binary module twice will not crash.
* wasm/js-api/web-assembly-instantiate.js:
(assert.asyncTest.async test):
(assert.asyncTest):
2022-01-10 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, add a bit more Intl.Locale hourCycle tests to investigate flakiness
* stress/intl-locale-info.js:
(let.l.new.Intl.Locale.shouldBe):
(shouldBe):
2022-01-07 Alexey Shvayka <ashvayka@apple.com>
Expand the set of objects we take JSArray::fastSlice() path for
https://bugs.webkit.org/show_bug.cgi?id=234539
Reviewed by Yusuke Suzuki.
* microbenchmarks/array-slice-call-cloned-arguments.js: Added.
* stress/array-slice-beyond-length.js: Added.
* stress/array-slice-length-lookup.js: Added.
2022-01-06 Saam Barati <sbarati@apple.com>
preparePatchpointForExceptions needs to handle tuples
https://bugs.webkit.org/show_bug.cgi?id=234909
Reviewed by Yusuke Suzuki.
Add support to the builder to have functions return tuples.
* wasm/Builder.js:
(const._normalizeFunctionSignature):
(const._maybeRegisterType):
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
* wasm/stress/exception-throw-from-function-returning-tuple.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testCatchWithExceptionThrownFromFunctionReturningTuple):
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
Array.prototype.toLocaleString does not respect deletion of Object.prototype.toLocaleString
https://bugs.webkit.org/show_bug.cgi?id=232723
Reviewed by Alexey Shvayka.
* ChakraCore/test/Array/toLocaleString.baseline-jsc:
* stress/array-tolocalestring-delete-tolocalestring.js: Added.
(shouldThrow):
* stress/array-tolocalestring-empty-separator.js: Added.
(shouldBe):
* stress/array-tolocalestring-options.js: Added.
(shouldBe):
* stress/array-tolocalestring-undefined-null.js: Added.
(shouldBe):
(shouldBe.toLocaleString):
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix Intl.PluralRules.selectRange input validation
https://bugs.webkit.org/show_bug.cgi?id=234817
Reviewed by Alexey Shvayka.
* stress/intl-pluralrules-select-range-validate-inputs.js: Added.
(shouldThrow):
(Intl.PluralRules.prototype.selectRange.shouldThrow):
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update UCD to Unicode 14.0.0
https://bugs.webkit.org/show_bug.cgi?id=234811
Reviewed by Sam Weinig.
* test262/expectations.yaml:
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Read-modify-write operation's second put-to-scope should not throw error if binding does not exist
https://bugs.webkit.org/show_bug.cgi?id=234813
Reviewed by Alexey Shvayka.
* stress/global-object-read-modify-write-remove-at-get-strict.js: Added.
(shouldThrow):
* stress/global-object-read-modify-write-remove-at-get.js: Added.
(shouldBe):
* test262/expectations.yaml:
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix length of Intl.NumberFormat.formatRange and Intl.PluralRules.selectRange
https://bugs.webkit.org/show_bug.cgi?id=234806
Reviewed by Alexey Shvayka.
* stress/intl-numberformat-format-range-v3.js:
(nf.formatRange.nf.formatRangeToParts.methods.forEach):
* stress/intl-pluralrules-selectrange.js:
2022-01-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=234807
Reviewed by Alexey Shvayka.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/test262-Revision.txt:
2022-01-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use emitPutProperty / emitGetPropertyValue consistently to handle private names in edge cases
https://bugs.webkit.org/show_bug.cgi?id=234794
Reviewed by Alexey Shvayka.
* test262/expectations.yaml:
2021-12-22 Saam Barati <sbarati@apple.com>
LLInt should loop OSR into BBQ and BBQ should loop OSR into OMG
https://bugs.webkit.org/show_bug.cgi?id=234542
Reviewed by Yusuke Suzuki.
* wasm/wast-tests/harness.js:
2021-12-19 Ross Kirsling <ross.kirsling@sony.com>
[JSC] OpPow should have a "small int exponent" fast path at lower tiers
https://bugs.webkit.org/show_bug.cgi?id=234408
Reviewed by Yusuke Suzuki.
* microbenchmarks/pow-double-int.js: Added.
* microbenchmarks/pow-int-int.js: Added.
2021-12-16 Devin Rousso <drousso@apple.com>
Implement Array.prototype.groupBy and Array.prototype.groupByToMap
https://bugs.webkit.org/show_bug.cgi?id=234327
Reviewed by Yusuke Suzuki.
* stress/array-groupBy.js: Added.
(shouldBe):
(shouldBeObject):
(shouldBeObject.replacer):
(notReached):
(toObject):
(reverseInsertionOrder):
* stress/array-groupByToMap.js: Added.
(shouldBe):
(shouldBeObject):
(shouldBeObject.replacer):
(shouldBeMap):
(notReached):
(toObject):
(reverseInsertionOrder):
2021-12-15 Joseph Griego <jgriego@igalia.com>
[Shadow Realms] Wrapped functions must only throw TypeError from calling realm
https://bugs.webkit.org/show_bug.cgi?id=234357
Test the cases when the exception would be thrown by a function
originating from both the shadow realm and the incubating realm.
Reviewed by Yusuke Suzuki.
* stress/shadow-realm-evaluate.js:
(shouldBe):
(let.f.realm.evaluate):
(shouldBe.f):
2021-12-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update Intl tests based on ICU 69~
https://bugs.webkit.org/show_bug.cgi?id=234276
Reviewed by Mark Lam.
Rebaseline Intl tests based on ICU 69~'s CLDR update.
* stress/array-toLocaleString.js:
* stress/date-toLocaleString.js:
* stress/intl-canonical-locale-alias-mapping.js:
(Intl.getCanonicalLocales):
* stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
(vm.icuVersion):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
* stress/intl-datetimeformat.js:
* stress/intl-enumeration.js:
* stress/intl-locale-info.js:
(shouldBe):
* stress/intl-locale.js:
2021-12-10 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, we may not throw an stack overflow error
* stress/stack-overflow-in-custom-hasInstance.js:
(catch):
2021-12-08 Asumu Takikawa <asumu@igalia.com>
Support WebAssembly.Memory imports in Wasm/ESM modules.
https://bugs.webkit.org/show_bug.cgi?id=184745
Reviewed by Yusuke Suzuki.
* wasm/modules/wasm-imports-js-exports.js:
(then):
* wasm/modules/wasm-imports-js-exports/memory-fail-1.js: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-1.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-1.wat: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-2.js: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-2.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-2.wat: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-3.js: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-3.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-3.wat: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-4.js: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-4.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-4.wat: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-5.js: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-5.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory-fail-5.wat: Added.
* wasm/modules/wasm-imports-js-exports/memory.js: Added.
(export.setMemory):
* wasm/modules/wasm-imports-js-exports/memory.wasm: Added.
* wasm/modules/wasm-imports-js-exports/memory.wat: Added.
* wasm/modules/wasm-imports-js-exports/shared-memory.js: Added.
* wasm/modules/wasm-imports-js-exports/shared-memory.wasm: Added.
* wasm/modules/wasm-imports-js-exports/shared-memory.wat: Added.
* 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:
2021-12-07 Saam Barati <sbarati@apple.com>
TypedArray prototype set should go down the fast path when using non clamped integer types of the same byte size
https://bugs.webkit.org/show_bug.cgi?id=233905
Reviewed by Keith Miller.
* microbenchmarks/typed-array-prototype-set.js: Added.
* microbenchmarks/typed-array-prototype-set-order.js: Added.
* stress/typed-array-prototype-set.js: Added.
2021-12-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] shell's $.globalObjectFor is not safe for non object cells
https://bugs.webkit.org/show_bug.cgi?id=233794
Reviewed by Saam Barati.
* stress/dollar-global-object.js: Added.
2021-12-02 Saam Barati <sbarati@apple.com>
Fix OOM crash in JSValue::toWTFStringForConsole
https://bugs.webkit.org/show_bug.cgi?id=233775
<rdar://85259423>
Reviewed by Mark Lam.
* stress/pretty-print-oom.js: Added.
2021-11-30 Saam Barati <sbarati@apple.com>
GetMyArgumentByValOutOfBounds needs to check for negative indices
https://bugs.webkit.org/show_bug.cgi?id=232966
<rdar://problem/85519898>
Reviewed by Yusuke Suzuki.
* get-my-argument-by-val-negative-1.js: Added.
* get-my-argument-by-val-negative-2.js: Added.
* get-my-argument-by-val-negative-3.js: Added.
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] jumpForTypedArrayOutOfBounds should use asAnyInt since it uses isAnyInt
https://bugs.webkit.org/show_bug.cgi?id=233610
rdar://85820476
Reviewed by Saam Barati.
* stress/anyint-index.js: Added.
(foo):
2021-11-29 Saam Barati <sbarati@apple.com>
FTL's implementation of HasIndexedProperty for InBounds accesses checks the inverse of what it should be checking when exiting by seeing a hole
https://bugs.webkit.org/show_bug.cgi?id=233408
<rdar://problem/85787251>
Reviewed by Mark Lam.
* stress/in-by-val-has-indexed-property-ftl-3.js: Added.
* stress/in-by-val-has-indexed-property-ftl-2.js: Added.
* stress/in-by-val-has-indexed-property-ftl.js: Added.
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] slice should be aware of TerminationException
https://bugs.webkit.org/show_bug.cgi?id=233593
rdar://85823844
Reviewed by Mark Lam.
* stress/slice-termination-exception.js: Added.
(async infiniteLoop):
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add Intl.NumberFormat.formatRangeToParts
https://bugs.webkit.org/show_bug.cgi?id=233539
Reviewed by Ross Kirsling.
* stress/intl-numberformat-format-large.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
* stress/intl-numberformat-format-range-v3.js:
(nf.formatRange.nf.formatRangeToParts.methods.forEach):
(nf.formatRange.string_appeared_here.forEach): Deleted.
* stress/intl-numberformat-format-string-v3.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
* stress/intl-numberformat-format-string.js:
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
(nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Public Class Field initialization is slow
https://bugs.webkit.org/show_bug.cgi?id=232479
Reviewed by Alexey Shvayka.
* microbenchmarks/class-fields-classic-constructor-assignments.js: Added.
(Classic_Constructor_Assignments):
(bench):
* microbenchmarks/class-fields-private-fields.js: Added.
(ES2022_Private_Fields):
(bench):
* microbenchmarks/class-fields-public-fields.js: Added.
(ES2022_Public_Fields):
(bench):
* stress/class-fields-getter-override.js: Added.
(shouldThrow):
(defineCGetter.):
(B):
(define0Getter.):
(define0Getter):
(D):
* stress/custom-get-set-proto-chain-put.js:
(let.object.of.getObjects):
* stress/freeze-and-seal-should-prevent-extensions.js:
* stress/object-assign-fast-path.js:
* stress/ordinary-set-exceptions.js:
(shouldThrow):
* stress/put-non-reified-static-function-or-custom.js:
* wasm/js-api/test_basic_api.js:
(const.c.in.constructorProperties.switch):
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] private name operation should use RETURN_IF_EXCEPTION
https://bugs.webkit.org/show_bug.cgi?id=233577
rdar://85813869
Reviewed by Mark Lam.
* stress/termination-error-in-private-name.js: Added.
(C):
2021-11-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] GetTypedArrayLengthAsInt52 can get Array::Generic ArrayMode
https://bugs.webkit.org/show_bug.cgi?id=233571
rdar://85812164
Reviewed by Mark Lam.
* stress/get-typed-array-length-as-int52-generic.js: Added.
(foo.bar):
(foo):
2021-11-24 Michael Catanzaro <mcatanzaro@gnome.org>
Skip new stress test get-array-length-reuse.js if memory-limited
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079
Reviewed by Yusuke Suzuki.
* stress/get-array-length-reuse.js:
2021-11-24 Aditi Singh <asingh@igalia.com>
[JSC] Implement Date.prototype.toTemporalInstant()
https://bugs.webkit.org/show_bug.cgi?id=232075
Reviewed by Yusuke Suzuki.
* stress/date-to-temporal-instant.js: Added.
(shouldBe):
(shouldThrow):
2021-11-19 Asumu Takikawa <asumu@igalia.com>
Fix WebAssembly memory.fill out of bounds error message
https://bugs.webkit.org/show_bug.cgi?id=233392
Reviewed by Yusuke Suzuki.
* wasm/references/memory_fill_out_of_bounds.js: Added.
(async test):
2021-11-19 Saam Barati <sbarati@apple.com>
Fix assertion added in r285592
https://bugs.webkit.org/show_bug.cgi?id=233373
Reviewed by Keith Miller.
* stress/validate-assert-uid-is-not-index-or-it-is-symbol.js: Added.
(main.v11):
(main.v29):
(main):
2021-11-19 Joseph Griego <jgriego@igalia.com>
[JSC] Shadow realms: set correct Function prototype on wrapped functions
https://bugs.webkit.org/show_bug.cgi?id=233143
Reviewed by Yusuke Suzuki.
At present, the Function prototype set on each of the returned wrapped
functions will be the Function object from the realm the shadow realm
builtin is from--to comply with the latest draft of the shadow realms
spec [1], wrapped function objects should have the Function prototype
from the realm the wrapper object is destined for, instead.
At present, this requires tracking both the calling (destination) and
target (source) realm and switching between the two as function
arguments are wrapped (when the notion of source and destination realm
also flips)
Adds a simple builtin (moveFunctionToRealm) that can switch the Function
prototype given only the Shadow Realm object corresponding to the
correct global object.
Also marks the corresponding part of test262 as passing.
* test262/expectations.yaml:
2021-11-19 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Workaround for failing mips tests
https://bugs.webkit.org/show_bug.cgi?id=233359
Reviewed by Adrian Perez de Castro.
Re-enable tests skipped on mips after adding workaround.
* stress/call-varargs-double-new-array-buffer.js:
* stress/callee-save-fpr.js:
* stress/forward-varargs-double-new-array-buffer.js:
* stress/new-array-with-spread-cow-double.js:
* stress/new-array-with-spread-double-new-array-buffer.js:
* stress/spread-escapes-but-new-array-buffer-does-not-double.js:
2021-11-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] TypedArray GetArrayLength should not use Reuse
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079
Reviewed by Robin Morisset.
* stress/get-array-length-reuse.js: Added.
(foo):
2021-11-17 Saam Barati <sbarati@apple.com>
Run the memmove fast path in JSGenericTypedArrayView<Adaptor>::set when using a combination of Uint8 and Uint8Clamped
https://bugs.webkit.org/show_bug.cgi?id=233271
<rdar://85259288>
Reviewed by Yusuke Suzuki.
* microbenchmarks/typed-array-set-uint8-and-uint8clamped.js: Added.
2021-11-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use operation path when PutByVal child1 is not speculated as a Cell
https://bugs.webkit.org/show_bug.cgi?id=233147
rdar://85344310
Reviewed by Mark Lam.
* stress/put-by-val-slow-dfg.js: Added.
(foo):
2021-11-15 Angelos Oikonomopoulos <angelos@igalia.com>
Skip tests newly-failing on mips
https://bugs.webkit.org/show_bug.cgi?id=233124
Unreviewed gardening.
After 3f59d2aa489ec843e055fc3104c275851d7fbd35, these tests started
failing with a SIGBUS on MIPS (on fuloong hardware, they pass on the
ci20 boards). Temporarily skip them on this arch until we can track
down the issue.
* stress/call-varargs-double-new-array-buffer.js:
* stress/callee-save-fpr.js:
* stress/forward-varargs-double-new-array-buffer.js:
* stress/new-array-with-spread-cow-double.js:
* stress/new-array-with-spread-double-new-array-buffer.js:
* stress/spread-escapes-but-new-array-buffer-does-not-double.js:
2021-11-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use CallLinkInfo in LLInt
https://bugs.webkit.org/show_bug.cgi?id=232746
Reviewed by Saam Barati.
* stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js:
* stress/sampling-profiler-wasm-name-section.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* stress/sampling-profiler-wasm.js:
(platformSupportsSamplingProfiler.vm.isWasmSupported):
* stress/sampling-profiler/samplingProfiler.js:
(doesTreeHaveStackTrace):
(runTest):
* wasm/function-tests/nameSection.js:
2021-11-14 Mikhail R. Gadelha <mikhail@igalia.com>
Prevent fused multiply add during ParseInt
https://bugs.webkit.org/show_bug.cgi?id=232951
Reviewed by Yusuke Suzuki.
When parsing the string in parseInt, gcc can wrongfully generate
a fused multiply-add instruction, causing the conversion to be wrong
for some high values. An add followed by a multiply gives the correct
result and it is the code generated most of the times.
This patch adds a volatile qualifier to the number variable, so the
compiler doesn't try to optimize it, and enables a failing test on
mips.
Alternative solutions that I tried but gcc seems to ignore: #pragma
STDC FP_CONTRACT OFF, compiling with -ffp-contract=off, and setting function
attributes __attribute__((optimize("fp-contract=off"))) and
__attribute__((optimize("-ffp-contract=off"))), so volative seems to be
a good compromise.
The issue was found when cross compiling to mips with gcc 8.4.0 and
options -ffp-contract=off -mmadd4.
* ChakraCore.yaml:
2021-11-12 Joseph Griego <jgriego@igalia.com>
[JSC] update test262
https://bugs.webkit.org/show_bug.cgi?id=233058
For picking up changes to the ShadowRealms test set.
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/harness/arrayContains.js: Removed.
* test262/harness/async-gc.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/every/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/filter/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/find/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/findIndex/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/findLast/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/findLastIndex/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/forEach/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/map/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/reduce/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/reduceRight/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/Array/prototype/some/callbackfn-resize-arraybuffer.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js:
(catch):
* test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js:
(catch):
* test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
* test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
* test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-2.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-from-caller-realm.js: Added.
(realm.Reflect.construct):
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-arguments.js: Added.
(Symbol.toPrimitive):
(toString):
(valueOf):
(apply):
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-returns.js: Added.
(r.evaluate):
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-functions-accepts-callable-objects.js:
* test262/test/built-ins/SharedArrayBuffer/prototype/prop-desc.js: Added.
* test262/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js:
* test262/test/built-ins/Temporal/Duration/compare/relativeto-string-zoneddatetime-wrong-offset.js: Added.
* test262/test/built-ins/Temporal/Duration/compare/relativeto-sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js:
* test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js: Added.
(const.result.instance.add.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-string-zoneddatetime-wrong-offset.js: Added.
(instance.add.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-sub-minute-offset.js: Added.
(const.result.instance.add.new.Temporal.Duration):
(instance.add.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js:
* test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-zoneddatetime-wrong-offset.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js:
* test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js: Added.
(const.result.instance.subtract.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-string-zoneddatetime-wrong-offset.js: Added.
(instance.subtract.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-sub-minute-offset.js: Added.
(const.result.instance.subtract.new.Temporal.Duration):
(instance.subtract.new.Temporal.Duration):
* test262/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js:
* test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-zoneddatetime-wrong-offset.js: Added.
* test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-offset.js: Added.
(test):
* test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-string-datetime.js:
* test262/test/built-ins/Temporal/Instant/prototype/toString/timezone.js:
* test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
* test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/basic.js: Added.
(test):
* test262/test/built-ins/Temporal/ZonedDateTime/from/zoneddatetime-sub-minute-offset.js: Added.
(string_appeared_here.forEach):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/offset.js: Added.
(test):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/offset/basic.js: Added.
(test):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js:
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/offset.js: Added.
(test):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/balance-negative-time-units.js:
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/offset.js: Added.
(test):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/sub-minute-offset.js: Added.
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/offset-property-sub-minute.js: Added.
(string_appeared_here.forEach):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/receiver-offset-broken.js: Added.
(ObservedCalendar):
(ObservedCalendar.prototype.toString):
(ObservedCalendar.prototype.mergeFields):
(ObservedCalendar.prototype.resetCalls):
* test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
* test262/test/built-ins/Temporal/getOwnPropertyNames.js:
* test262/test/built-ins/TypedArray/prototype/every/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/filter/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/find/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/findIndex/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/findLast/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/findLastIndex/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/map/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/some/callbackfn-resize.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
* test262/test/harness/arrayContains.js: Removed.
* test262/test/harness/testTypedArray.js:
* test262/test/intl402/Collator/prototype/resolvedOptions/order.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-dayPeriod.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-fractionalSecondDigits.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-style.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order.js:
* test262/test/intl402/ListFormat/prototype/resolvedOptions/order.js:
* test262/test/intl402/NumberFormat/constructor-options-roundingMode-invalid.js: Added.
(brokenToString.toString):
* test262/test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-mode.js: Added.
(get roundingMode):
* test262/test/intl402/NumberFormat/constructor-signDisplay-negative.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-ceil.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-expand.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-floor.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-ceil.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-even.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-expand.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-floor.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-trunc.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-trunc.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-de-DE.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-en-US.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ja-JP.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ko-KR.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-zh-TW.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-de-DE.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-en-US.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ja-JP.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ko-KR.js: Added.
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-zh-TW.js: Added.
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-de-DE.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-en-US.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ja-JP.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ko-KR.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-zh-TW.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-de-DE.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-en-US.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ja-JP.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ko-KR.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-zh-TW.js: Added.
(verifyFormatParts):
(verifyFormatParts.nf.formatToParts):
* test262/test/intl402/NumberFormat/prototype/resolvedOptions/order.js:
* test262/test/intl402/NumberFormat/prototype/resolvedOptions/roundingMode.js: Added.
* test262/test/intl402/PluralRules/prototype/resolvedOptions/order.js:
* test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/order.js:
* test262/test/intl402/Segmenter/prototype/resolvedOptions/order.js:
* test262/test/language/block-scope/syntax/for-in/acquire-properties-from-array.js:
* test262/test/language/block-scope/syntax/for-in/acquire-properties-from-object.js:
* test262/test/language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-function-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-function-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-gen-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-block-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-do-while-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-else-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-function-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-if-braceless-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-if-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/nested-while-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js:
* test262/test/language/expressions/dynamic-import/usage/top-level-import-then-eval-script-code-host-resolves-module-code.js:
* test262/test262-Revision.txt:
2021-11-12 Guillaume Emont <guijemont@igalia.com>
Unskip typeProfiler/getter-richards.js on armv7
https://bugs.webkit.org/show_bug.cgi?id=233050
Unreviewed gardening.
Our arm bots are now fast enough to run this, it does still timeout on
some of our test mips devices though.
* typeProfiler/getter-richards.js:
2021-11-12 Xan Lopez <xan@igalia.com>
[JSC][32bit] Unskip JSTests/microbenchmarks/redefine-property-accessor-dictionary.js
https://bugs.webkit.org/show_bug.cgi?id=233034
Unreviewed gardening.
This is skipped for memoryLimited *and* mips|arm systems, but a)
seems to run fine on both setups and b) is almost identical to the
other tests/benchmarks that landed in the same patch, that do not
have that limitation. Optimistically remove the skip and let's see
if it sticks.
* microbenchmarks/redefine-property-accessor-dictionary.js:
2021-11-11 Michael Saboff <msaboff@apple.com>
Inline RegExp.test JIT code in DFG and FTL
https://bugs.webkit.org/show_bug.cgi?id=230469
Reviewed by Saam Barati.
New microbenchmark.
* microbenchmarks/regexp-test-inlined.js: Added.
2021-11-10 Saam Barati <sbarati@apple.com>
in_by_val should not constant fold to in_by_id when the property is a property index
https://bugs.webkit.org/show_bug.cgi?id=232753
Reviewed by Yusuke Suzuki.
* stress/dont-in-by-id-when-index-2.js: Added.
(assert):
(main.v179):
(main.async v244):
(main):
* stress/dont-in-by-id-when-index.js: Added.
(assert):
(test):
2021-11-10 Xan Lopez <xan@igalia.com>
[JSC][32bit] Unskip JSTests/stress/json-stringify-string-builder-overflow.js
https://bugs.webkit.org/show_bug.cgi?id=232944
Unreviewed gardening.
This seems to survive 1000 iterations on both armv7 and mips
hw. Remove the arch-specific skips leaving the memory limited
ones.
* stress/json-stringify-string-builder-overflow.js:
2021-11-09 Saam Barati <sbarati@apple.com>
When inlining NewSymbol in the DFG don't universally call ToString on the input
https://bugs.webkit.org/show_bug.cgi?id=232754
Reviewed by Robin Morisset.
* stress/inline-new-symbol-dfg-undefined-first-arg.js: Added.
(assert):
(foo):
2021-11-09 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg on ARM
https://bugs.webkit.org/show_bug.cgi?id=232811
Unreviewed gardening.
Gate the number of iterations adjustment on $memoryLimited instead of
the arch.
* stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
2021-11-09 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip deltablue-for-of.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227291
Unreviewed gardening.
The test is not crashing but timeouts because of the number of
iterations. So to enable testing in more archs, we reduced the
number of iterations and constraints.
* typeProfiler/deltablue-for-of.js:
(deltaBlue):
2021-11-09 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip microbenchmarks/memcpy-typed-loop.js on arm/mips
https://bugs.webkit.org/show_bug.cgi?id=232813
Unreviewed gardening.
Can't reproduce this any more.
* microbenchmarks/memcpy-typed-loop.js:
2021-11-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement IntlNumberFormat v3
https://bugs.webkit.org/show_bug.cgi?id=215438
Reviewed by Ross Kirsling.
* stress/intl-numberformat-format-large.js: Added.
(shouldBe):
* stress/intl-numberformat-format-range-v3.js: Added.
(shouldBe):
(shouldThrow):
(shouldNotThrow):
(nf.formatRange.string_appeared_here.forEach):
(nf.formatRangeToParts.validRanges.forEach):
(nf6.formatRange.shouldThrow):
* stress/intl-numberformat-format-string-v3.js: Added.
(shouldBe):
* stress/intl-numberformat-format-string.js: Added.
(shouldBe):
* stress/intl-numberformat-format-to-parts.js:
* stress/intl-numberformat-rounding-increment-resolved-match-v3.js: Added.
(shouldBe):
(validRoundingIncrements.forEach):
* stress/intl-numberformat-rounding-increment-v3.js: Added.
(shouldThrow):
(validRoundingIncrements.forEach):
(invalidRoundingIncrements.forEach):
* stress/intl-numberformat-rounding-increment-value-hanidec.js: Added.
(shouldBe):
* stress/intl-numberformat-rounding-increment-value-v3.js: Added.
(shouldBe):
* stress/intl-numberformat-rounding-increment-value.js: Added.
(shouldBe):
* stress/intl-numberformat-rounding-mode-table-v3.js: Added.
(shouldBe):
(Object.keys.expectations.forEach):
* stress/intl-numberformat-rounding-mode-v3.js: Added.
(shouldBe):
(shouldThrow):
(validRoundingMode.forEach):
(invalidRoundingMode.forEach):
(let.options.get signDisplay):
(let.options.get roundingMode):
* stress/intl-numberformat-sign-display-v3.js: Added.
(shouldBe):
* stress/intl-numberformat-trailing-zero-display-resolved-options-v3.js: Added.
(shouldBe):
* stress/intl-numberformat-trailing-zero-display-v3.js: Added.
(shouldBe):
* stress/intl-numberformat-usegrouping-v3.js: Added.
(shouldBe):
(shouldThrow):
(validUseGrouping.forEach):
(invalidUseGrouping.forEach):
(all.forEach):
(mgd1.forEach):
(mgd2.forEach):
* stress/intl-numberformat.js:
(testNumberFormat):
(shouldBe.testNumberFormat.Intl.NumberFormat):
* stress/intl-pluralrules-selectrange.js: Added.
(shouldBe):
* test262/config.yaml:
2021-11-08 Saam Barati <sbarati@apple.com>
We need to PreferNumber when calling toPrimitive for negate
https://bugs.webkit.org/show_bug.cgi?id=232679
Reviewed by Alexey Shvayka.
* stress/negate-prefer-number-to-primitive.js
2021-11-05 Russell Epstein <repstein@apple.com>
Cherry-pick r284635. rdar://problem/85039977
[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059
Reviewed by Saam Barati.
JSTests:
* stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
(foo.bar):
(foo):
Source/JavaScriptCore:
When inserting GetTypedArrayLengthAsInt52 after fixup phase, we must set NodeResultInt52.
* dfg/DFGSSALoweringPhase.cpp:
(JSC::DFG::SSALoweringPhase::handleNode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-10-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059
Reviewed by Saam Barati.
* stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
(foo.bar):
(foo):
2021-11-04 Alexey Shvayka <ashvayka@apple.com>
We need to PreferNumber when calling toPrimitive for coercion to BigInt
https://bugs.webkit.org/show_bug.cgi?id=232720
Reviewed by Saam Barati.
* stress/big-int-constructor.js:
* stress/bigint-asintn.js:
* stress/bigint-asuintn.js:
2021-11-04 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip tests disabled because of the recent 32 bits issues
https://bugs.webkit.org/show_bug.cgi?id=230490
Unreviewed gardening.
* ChakraCore.yaml:
2021-11-02 Philip Chimento <pchimento@igalia.com>
[JSC] Implement Temporal.Instant
https://bugs.webkit.org/show_bug.cgi?id=229826
Reviewed by Yusuke Suzuki.
* stress/temporal-instant.js: Added.
(shouldBe):
(shouldNotBe):
(shouldThrow):
(instants.forEach):
(shouldThrow.new.Temporal.Instant):
(const.maxValue.new.Temporal.Instant):
(shouldBe.epoch.subtract):
* test262/config.yaml: No need to ignore all Temporal.Instant tests
anymore, only the ones for the unimplemented methods.
2021-11-02 Saam Barati <sbarati@apple.com>
EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn't always recover the property name
https://bugs.webkit.org/show_bug.cgi?id=231321
<rdar://problem/84211697>
Reviewed by Yusuke Suzuki.
* stress/enumerator-get-by-val-needs-to-recover-property-name.js: Added.
2021-11-01 Saam Barati <sbarati@apple.com>
ArrayBuffer species watchpoint being invalidated doesn't mean it's not an ArrayBuffer constructor from the same global object
https://bugs.webkit.org/show_bug.cgi?id=231322
<rdar://problem/84212078>
Reviewed by Yusuke Suzuki.
* stress/array-buffer-species-watchpoint-should-not-dictate-if-constructor-is-correct.js: Added.
(main.async v23):
(main):
2021-11-01 Robin Morisset <rmorisset@apple.com>
JSGenericTypedArrayView<Adaptor>::set crashes if the length + objectOffset is > UINT32_MAX
https://bugs.webkit.org/show_bug.cgi?id=231975
rdar://84402043
Reviewed by Yusuke Suzuki.
- regress-84402043 is the testcase that revealed the problem.
- typed-array-set-large(-offset) test the same function, in the typed-array to typed-array case
- typed-array-large-slice tests the only caller that passes a non-0 objectOffset, and found other issues with it
- typed-array-large-oob-eventually-not.js is just another test of the Wasm4GB change that I had forgotten to commit
* stress/regress-84402043.js: Added.
* stress/typed-array-large-oob-eventually-not.js: Added.
(test):
* stress/typed-array-large-slice.js: Added.
(expect):
* stress/typed-array-set-large-offset.js: Added.
* stress/typed-array-set-large.js: Added.
2021-10-29 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce # of iterations in stress/validate-int-52-ai-state.js due to Debug timeout
* stress/validate-int-52-ai-state.js:
2021-10-29 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, skip stress/unlinked-code-block-destructor.js when it is debug build
The bug was not related to Debug build. And it is timing out on Debug build due to
heavy test load.
* stress/unlinked-code-block-destructor.js:
2021-10-29 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, reduce # of iteration since it is timing out on Debug JSC bot
* stress/put-private-name-ic-write-barrier.js:
(PutPrivateNameIC):
2021-10-29 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-Function-References] Add support for (ref.null heaptype)
https://bugs.webkit.org/show_bug.cgi?id=229707
Reviewed by Yusuke Suzuki.
Added spec tests for (ref.null $t) : https://github.com/WebAssembly/function-references/blob/master/test/core/ref_null.wast.
* wasm.yaml:
* wasm/function-references-spec-tests/call_ref.wast.js:
* wasm/function-references-spec-tests/ref_null.wast.js: Added.
2021-10-27 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-Function-References] Add call_ref spec tests
https://bugs.webkit.org/show_bug.cgi?id=229710
Reviewed by Yusuke Suzuki.
Add tests for call_ref instruction from the spec repo:
https://github.com/WebAssembly/function-references/blob/master/test/core/call_ref.wast.
Also added tests for Funcref/Externref in Wasm tables and globals to test
new internal representation of Funcref = (ref null funcref).
* wasm.yaml:
* wasm/function-references-spec-tests/call_ref.wast.js: Added.
* wasm/function-references/ref_types.js:
(async testRefGlobalCheck):
(async testNonNullExternrefIncompatible):
(async testNonNullFuncrefIncompatible):
(async testWasmJSGlobals):
(async testRefTypesInTables):
* wasm/wasm.json:
2021-10-26 Yusuke Suzuki <ysuzuki@apple.com>
Unreivewed, fix CLoop build and test failure
CLoop is running Yarr interpreter instead of Yarr JIT.
* mozilla/ecma_3/RegExp/regress-85721.js:
2021-10-26 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, fix test262 bot failures
https://bugs.webkit.org/show_bug.cgi?id=232005
* test262/expectations.yaml:
2021-10-25 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Don't branch around register allocation in DFG enumerator get by val
https://bugs.webkit.org/show_bug.cgi?id=232260
rdar://84544469
Reviewed by Robin Morisset.
* stress/dont-branch-around-regalloc-enumerator-get-by-val-float.js: Added.
(foo):
2021-10-24 Alexey Shvayka <ashvayka@apple.com>
InternalFunction::createSubclassStructure() should use prototype's global object
https://bugs.webkit.org/show_bug.cgi?id=231874
Reviewed by Yusuke Suzuki.
* stress/internal-function-subclass-structure-realm.js: Added.
2021-10-23 Phillip Mates <pmates@igalia.com>
update test262
https://bugs.webkit.org/show_bug.cgi?id=232005
Reviewed by Yusuke Suzuki.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_large-typed-array.js:
(concatTypedArray):
* test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_small-typed-array.js:
(concatTypedArray):
* test262/test/built-ins/Array/prototype/copyWithin/non-negative-target-and-start.js:
* test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
* test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js:
* test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-49.js:
* test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-2.js:
* test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-available-properties.js: Added.
* test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js: Added.
(const.remainingNames.names.filter.name.esNonConfigValues.includes):
(hasOwn.call):
* test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-orginary-object.js: Added.
* test262/test/built-ins/ShadowRealm/prototype/evaluate/throws-error-from-ctor-realm.js: Added.
* test262/test/built-ins/ShadowRealm/prototype/evaluate/validates-realm-object.js:
* test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
(checkArgWrapperFn.realm.evaluate.string_appeared_here.assert.sameValue.checkArgWrapperFn):
* test262/test/built-ins/ShadowRealm/prototype/importValue/not-constructor.js:
* test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
* test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/basic.js:
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-de-DE.js:
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-en-US.js:
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ja-JP.js:
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ko-KR.js:
* test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-zh-TW.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-de-DE.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-en-US.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ja-JP.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ko-KR.js:
* test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-zh-TW.js:
* test262/test/intl402/Temporal/Instant/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/Instant/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js.
* test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js.
* test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js.
* test262/test/language/computed-property-names/basics/number.js:
* test262/test/language/computed-property-names/basics/string.js:
* test262/test/language/computed-property-names/basics/symbol.js:
* test262/test/language/computed-property-names/class/method/generator.js:
* test262/test/language/computed-property-names/class/method/number.js:
* test262/test/language/computed-property-names/class/method/string.js:
* test262/test/language/computed-property-names/class/method/symbol.js:
* test262/test/language/computed-property-names/object/method/generator.js:
* test262/test/language/computed-property-names/object/method/number.js:
* test262/test/language/computed-property-names/object/method/string.js:
* test262/test/language/computed-property-names/object/method/symbol.js:
* test262/test/language/computed-property-names/to-name-side-effects/numbers-object.js:
* test262/test/language/computed-property-names/to-name-side-effects/object.js:
* test262/test/language/identifiers/part-unicode-14.0.0-escaped.js: Added.
* test262/test/language/identifiers/part-unicode-14.0.0.js: Added.
* test262/test/language/identifiers/start-unicode-14.0.0-escaped.js: Added.
* test262/test/language/identifiers/start-unicode-14.0.0.js: Added.
* test262/test/language/rest-parameters/arrow-function.js:
* test262/test/language/rest-parameters/no-alias-arguments.js:
(f):
* test262/test/language/rest-parameters/with-new-target.js:
(Base):
(Child):
* test262/test/language/statements/class/definition/fn-length-static-precedence-order.js:
* test262/test/language/statements/class/definition/fn-name-static-precedence-order.js:
* test262/test/language/statements/class/static-init-arguments-functions.js:
* test262/test/language/statements/class/static-init-arguments-methods.js:
* test262/test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js:
* test262/test/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js:
* test262/test262-Revision.txt:
2021-10-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering
https://bugs.webkit.org/show_bug.cgi?id=232168
rdar://84366658
Reviewed by Robin Morisset.
* stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js: Added.
(foo):
2021-10-22 Asumu Takikawa <asumu@igalia.com>
Change WebAssembly module import linking time to evaluate step.
https://bugs.webkit.org/show_bug.cgi?id=231114
Reviewed by Yusuke Suzuki.
Added test cases based on Wasm/ESM proposal examples from:
https://github.com/WebAssembly/esm-integration/blob/main/proposals/esm-integration/EXAMPLES.md
The new tests cases cover the bindings made for both JS<->Wasm
and Wasm<->JS cyclic module cases, and importing values from JS
into Wasm modules. The tests do not cover importing memory values
as this does not work yet.
* wasm/modules/wasm-js-cycle.js:
* wasm/modules/wasm-js-cycle/entry-global.wasm:
* wasm/modules/wasm-js-cycle/entry-global.wat:
* wasm/modules/wasm-js-cycle/entry-table.wasm:
* wasm/modules/wasm-js-cycle/entry-table.wat:
* wasm/modules/wasm-js-cycle/global.js:
(from.string_appeared_here.export.incrementGlobal): Deleted.
* wasm/modules/wasm-js-cycle/table.js:
(from.string_appeared_here.export.setTable): Deleted.
* wasm/modules/js-wasm-cycle.js:
(then):
* wasm/modules/js-wasm-cycle/entry-function.js: Added.
(f):
* wasm/modules/js-wasm-cycle/entry-i32-global.js: Added.
* wasm/modules/js-wasm-cycle/entry-i32-value.js: Added.
* wasm/modules/js-wasm-cycle/entry-memory.js: Added.
* wasm/modules/js-wasm-cycle/entry-table.js: Added.
* wasm/modules/js-wasm-cycle/entry-wasm-global.js: Added.
(f):
* wasm/modules/js-wasm-cycle/entry-wasm-memory.js: Added.
(f):
* wasm/modules/js-wasm-cycle/entry-wasm-table.js: Added.
(f):
* wasm/modules/js-wasm-cycle/function.wasm: Added.
* wasm/modules/js-wasm-cycle/function.wat: Added.
* wasm/modules/js-wasm-cycle/i32-global.wasm: Added.
* wasm/modules/js-wasm-cycle/i32-global.wat: Added.
* wasm/modules/js-wasm-cycle/i32-value.wasm: Added.
* wasm/modules/js-wasm-cycle/i32-value.wat: Added.
* wasm/modules/js-wasm-cycle/memory.wasm: Added.
* wasm/modules/js-wasm-cycle/memory.wat: Added.
* wasm/modules/js-wasm-cycle/table.wasm: Added.
* wasm/modules/js-wasm-cycle/table.wat: Added.
* wasm/modules/js-wasm-cycle/wasm-global.wasm: Added.
* wasm/modules/js-wasm-cycle/wasm-global.wat: Added.
* wasm/modules/js-wasm-cycle/wasm-memory.wasm: Added.
* wasm/modules/js-wasm-cycle/wasm-memory.wat: Added.
* wasm/modules/js-wasm-cycle/wasm-table.wasm: Added.
* wasm/modules/js-wasm-cycle/wasm-table.wat: Added.
* wasm/modules/wasm-imports-js-exports.js:
* wasm/modules/wasm-imports-js-exports/global.js: Added.
* wasm/modules/wasm-imports-js-exports/global.wasm: Added.
* wasm/modules/wasm-imports-js-exports/global.wat: Added.
* wasm/modules/wasm-imports-js-exports/table.js: Added.
* wasm/modules/wasm-imports-js-exports/table.wasm: Added.
* wasm/modules/wasm-imports-js-exports/table.wat: Added.
* wasm/modules/wasm-js-cycle.js:
* wasm/modules/wasm-js-cycle/entry-global.wasm: Added.
* wasm/modules/wasm-js-cycle/entry-global.wat: Added.
* wasm/modules/wasm-js-cycle/entry-memory.wasm: Added.
* wasm/modules/wasm-js-cycle/entry-memory.wat: Added.
* wasm/modules/wasm-js-cycle/entry-table.wasm: Added.
* wasm/modules/wasm-js-cycle/entry-table.wat: Added.
* wasm/modules/wasm-js-cycle/global.js: Added.
(export.incrementGlobal):
* wasm/modules/wasm-js-cycle/memory.js: Added.
(from.string_appeared_here.export.setMemory):
* wasm/modules/wasm-js-cycle/table.js: Added.
(export.setTable):
2021-10-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
https://bugs.webkit.org/show_bug.cgi?id=232059
Reviewed by Saam Barati.
* stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
(foo.bar):
(foo):
2021-10-18 Phillip Mates <pmates@igalia.com>
Test coverage for JSC shadow realms implementation
https://bugs.webkit.org/show_bug.cgi?id=230602
Reviewed by Yusuke Suzuki.
* modules/import-meta-syntax.js:
(shouldThrow):
* stress/eval-indirect.js: Added.
(shouldBe):
(shouldThrow):
* stress/import-syntax.js:
* stress/resources/shadow-realm-example-module.js: Added.
(putInGlobal):
(getFromGlobal):
(getAnObject):
(getCallCount):
* stress/shadow-realm-evaluate.js: Added.
(shouldBe):
(shouldThrow):
(assertionFn):
(shouldBe.String):
(shouldBe.globalObjectFor.doEval):
(shouldBe.globalObjectFor):
* stress/shadow-realm-import-value.js: Added.
(shouldBe):
(shouldThrow):
(async shouldThrowAsync):
(async const):
(doImport):
* stress/shadow-realm.js: Added.
(shouldBe):
(throw.new.Error):
* test262/config.yaml:
2021-10-18 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] PutByVal's child5 should be KnownInt32Use / Int52RepUse in FTL
https://bugs.webkit.org/show_bug.cgi?id=231884
rdar://84357099
Reviewed by Robin Morisset.
* stress/put-by-val-known-int32.js: Added.
(new.Uint8Array.1000000.map):
2021-10-16 Robin Morisset <rmorisset@apple.com>
Allow WASM to use up to 4GB
https://bugs.webkit.org/show_bug.cgi?id=229353
rdar://81603447
Reviewed by Yusuke Suzuki.
The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
They now expect success at 4GB, and failure at 4GB+1.
The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.
I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.
* stress/big-wasm-memory-grow-no-max.js:
(test):
* stress/big-wasm-memory-grow.js:
(test):
* stress/big-wasm-memory.js:
(test):
* stress/typed-array-always-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* stress/typed-array-eventually-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* stress/typed-array-large-eventually-oob.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
2021-10-15 Robin Morisset <rmorisset@apple.com>
Revert r284230, my last fixes to the watch build make it break tests
https://bugs.webkit.org/show_bug.cgi?id=231797
Unreviewed.
* stress/big-wasm-memory-grow-no-max.js:
(test):
* stress/big-wasm-memory-grow.js:
(test):
* stress/big-wasm-memory.js:
(test):
* stress/typed-array-always-large.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
* stress/typed-array-eventually-large.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
* stress/typed-array-large-eventually-oob.js: Removed.
(getArrayLength): Deleted.
(getByVal): Deleted.
(putByVal): Deleted.
(test): Deleted.
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
2021-10-14 Robin Morisset <rmorisset@apple.com>
Allow WASM to use up to 4GB
https://bugs.webkit.org/show_bug.cgi?id=229353
rdar://81603447
Reviewed by Yusuke Suzuki.
The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
They now expect success at 4GB, and failure at 4GB+1.
The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.
I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.
* stress/big-wasm-memory-grow-no-max.js:
(test):
* stress/big-wasm-memory-grow.js:
(test):
* stress/big-wasm-memory.js:
(test):
* stress/typed-array-always-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* stress/typed-array-eventually-large.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* stress/typed-array-large-eventually-oob.js: Added.
(getArrayLength):
(getByVal):
(putByVal):
(test):
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
* wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:
2021-10-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r284151.
https://bugs.webkit.org/show_bug.cgi?id=231740
WTR
Reverted changeset:
"Test coverage for JSC shadow realms implementation"
https://bugs.webkit.org/show_bug.cgi?id=230602
https://commits.webkit.org/r284151
2021-10-14 Phillip Mates <pmates@igalia.com>
Test coverage for JSC shadow realms implementation
https://bugs.webkit.org/show_bug.cgi?id=230602
Reviewed by Yusuke Suzuki.
* modules/import-meta-syntax.js:
(shouldThrow):
* stress/eval-indirect.js: Added.
(shouldBe):
(shouldThrow):
* stress/import-syntax.js:
* stress/resources/shadow-realm-example-module.js: Added.
(putInGlobal):
(getFromGlobal):
(getAnObject):
(getCallCount):
* stress/shadow-realm-evaluate.js: Added.
(shouldBe):
(shouldThrow):
(assertionFn):
(shouldBe.String):
(shouldBe.globalObjectFor.doEval):
(shouldBe.globalObjectFor):
* stress/shadow-realm-import-value.js: Added.
(shouldBe):
(shouldThrow):
(async shouldThrowAsync):
(async const):
(doImport):
* stress/shadow-realm.js: Added.
(shouldBe):
(throw.new.Error):
* test262/config.yaml:
2021-10-11 Saam Barati <sbarati@apple.com>
Don't branch around register allocation in DFG enumerator get by val and pass in the right LValue type to strictInt52ToJSValue
https://bugs.webkit.org/show_bug.cgi?id=231465
<rdar://83876470>
Reviewed by Yusuke Suzuki.
* stress/dont-branch-around-regalloc-enumerator-get-by-val.js: Added.
(foo):
2021-10-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Refine RegExp#compile based on regexp-legacy-features proposal
https://bugs.webkit.org/show_bug.cgi?id=231486
Reviewed by Alexey Shvayka.
* stress/regexp-recompile.js: Added.
(shouldBe):
(recompile):
(target):
* test262/expectations.yaml:
2021-10-08 Tadeu Zagallo <tzagallo@apple.com>
Implement the WebAssembly exception handling proposal
https://bugs.webkit.org/show_bug.cgi?id=229681
<rdar://81603387>
Reviewed by Keith Miller.
Add new tests for the exception handling and import a set of tests used by V8 into wasm/v8.
* wasm.yaml:
* wasm/Builder.js:
(const._importExceptionContinuation.type.Import.field):
(export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
(const._exportFunctionContinuation.type.Export.field): Deleted.
(const._exportFunctionContinuation): Deleted.
* wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Import):
(const.emitters.Export):
(const.emitters.Exception):
* wasm/assert.js:
* wasm/self-test/test_BuilderJSON.js:
(ImportBeforeTypeSections): Deleted.
* wasm/stress/catch-with-delegate.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
(assert.throws):
* wasm/stress/create-tag-from.js: Added.
* wasm/stress/exception-cross-instance-2.js: Added.
(test):
(assert.eq):
* wasm/stress/exception-cross-instance-3.js: Added.
(test):
(assert.eq):
* wasm/stress/exception-cross-instance.js: Added.
(test):
(assert.throws):
(instB.new.WebAssembly.Instance):
* wasm/stress/exception-liveness-tier-up.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.catch):
(assert.eq.):
(assert.eq):
* wasm/stress/exception-multiple-instances.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.module.new.WebAssembly.Module):
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.inst.exports.throw):
* wasm/stress/exception-simple-delegate.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testSimpleThrowDelegate):
(testThrowDelegateSkip):
(testDelegateCaller):
(testSimpleDelegateMerge):
* wasm/stress/exception-simple-throw-catch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testSimpleTryCatch):
(testSimpleTryCatchAll):
(testCallTryCatch):
(testCallTryCatchAll):
(testSimpleTryCatchValue):
(testCallTryCatchValue):
(testStackTryCatch):
(testLiveAfterTryCatch):
(testLiveAfterTryCatchAll):
(testUnifyTryCatchCatch):
(testUnifyTryCatchCatchAll):
(testUnifyTryNoThrow):
(testUnifyTryNoCatch):
(testNestedCatch):
* wasm/stress/exception-thrown-from-js-to-wasm-catchall-rethrow.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
* wasm/stress/exception-thrown-from-js-to-wasm-catchall.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
* wasm/stress/exception-thrown-from-js-to-wasm.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
* wasm/stress/exception-thrown-out-of-wasm.js: Added.
* wasm/stress/exception-thrown-over-wasm.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
* wasm/stress/exception-trap.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testCannotCatchUnreachable):
(testCannotCatchOOB):
(testWasmAPIThrow):
(testJSCatchAndRethrow):
* wasm/stress/rethrow-from-catch-to-catch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
* wasm/stress/rethrow-to-catch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
(assert.throws.callback):
(assert.throws):
* wasm/stress/rethrow-to-delegate-to-catch.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here):
(assert.eq.exn.getArg):
(assert.throws):
(assert.throws.callback):
(assert.eq):
* wasm/stress/simple-export-exception.js: Added.
* wasm/v8/LICENSE: Added.
* wasm/v8/exceptions-api.js: Added.
(TestImport):
(TestImportExport):
(TestExceptionConstructor):
(TestExceptionConstructorWithPayload):
(TestCatchJSException.js_func):
(js_func):
(TestCatchJS):
(TestCatchJSExceptionWithPayload):
(TestGetArg):
* wasm/v8/exceptions-export.js: Added.
(TestExportMultiple):
(TestExportOutOfBounds):
* wasm/v8/exceptions-externref.js: Added.
(TestThrowRefNull):
(TestThrowRefParam):
* wasm/v8/exceptions-import.js: Added.
(NewExportedTag):
(TestImportSimple):
(TestImportMissing):
* wasm/v8/exceptions-rethrow.js: Added.
(TestRethrowInCatch):
(TestRethrowInCatchAll):
(TestRethrowNested):
(TestRethrowRecatch):
* wasm/v8/exceptions-shared.js: Added.
(NewExportedException):
(TestSingleInstance.let.instance.builder.instantiate.):
(TestSingleInstance):
(TestMultiInstanceNonShared.let.instance2.builder.instantiate.):
(TestMultiInstanceShared.let.instance2.builder.instantiate.):
(TestMultiModuleShared.let.instance2.builder2.instantiate.):
* wasm/v8/exceptions-type-reflection.js: Added.
(TestExport):
(TestImportExport):
* wasm/v8/exceptions-utils.js: Added.
(assertWasmThrows):
* wasm/v8/exceptions.js: Added.
(TestThrowSimple):
(TestCatchSimple):
(TestTrapNotCaught):
(TestTrapViaJSNotCaught.js_import):
(TestManuallyThrownRuntimeErrorCaught.throw_exc):
(TestManuallyThrownRuntimeErrorCaught):
(TestExnWithWasmProtoNotCaught.js_import):
(TestExnWithWasmProtoNotCaught):
(TestStackOverflowNotCaught.stack_overflow):
(TestStackOverflowNotCaught):
(TestThrowParamI):
(TestThrowParamF):
(TestThrowParamL):
(TestThrowParamD):
(TestCatchCrossFunctions.throw_value):
(TestCatchCrossFunctions.throw_string):
(TestCatchCrossFunctions.throw_undefined):
(TestCatchCrossFunctions.throw_fp):
(TestCatchCrossFunctions.throw_large):
(TestDelegateNoThrow):
(TestDelegateThrow):
(TestDelegateThrowNoCatch):
(TestDelegateMerge):
(TestDelegate1):
(TestDelegateUnreachable):
(TestDelegateToCaller):
(TestUnreachableInCatchAll):
(TestThrowWithLocal):
(TestCatchlessTry):
* wasm/v8/mjsunit.js: Added.
(MjsUnitAssertionError):
(MjsUnitAssertionError.prototype.toString):
(catch):
(classOf):
(ValueOf):
(prettyPrinted):
(prettyPrintedArrayElement):
(failWithMessage):
(formatFailureText):
(fail):
(deepObjectEquals):
(deepEquals):
(assertSame):
(assertNotSame):
(assertEquals):
(assertNotEquals):
(assertEqualsDelta):
(assertArrayEquals):
(assertPropertiesEqual):
(assertToStringEquals):
(assertTrue):
(assertFalse):
(assertNull):
(assertNotNull):
(executeCode):
(checkException):
(assertThrows):
(assertThrowsEquals):
(assertThrowsAsync):
(assertInstanceof):
(assertDoesNotThrow):
(assertUnreachable):
(assertContains):
(assertMatches):
(concatenateErrors):
(assertPromiseResult):
(OptimizationStatus):
(assertUnoptimized):
(assertOptimized):
(isNeverOptimizeLiteMode):
(isNeverOptimize):
(isAlwaysOptimize):
(isInterpreted):
(isBaseline):
(isUnoptimized):
(isOptimized):
(isTurboFanned):
(MjsUnitAssertionError.prepareStackTrace):
* wasm/v8/wasm-module-builder.js: Added.
(bytes):
(wasmOptRefType):
(wasmRefType):
(wasmRtt):
(wasmRttNoDepth):
(makeSig):
(makeSig_v_x):
(makeSig_x_v):
(makeSig_v_xx):
(makeSig_r_v):
(makeSig_r_x):
(makeSig_r_xx):
(defineWasmOpcode):
(assertTraps):
(Binary):
(Binary.prototype.ensure_space):
(Binary.prototype.trunc_buffer):
(Binary.prototype.reset):
(Binary.prototype.emit_u8):
(Binary.prototype.emit_u16):
(Binary.prototype.emit_u32):
(Binary.prototype.emit_leb_u):
(Binary.prototype.emit_u32v):
(Binary.prototype.emit_u64v):
(Binary.prototype.emit_bytes):
(Binary.prototype.emit_string):
(Binary.prototype.emit_heap_type):
(Binary.prototype.emit_type):
(Binary.prototype.emit_init_expr_recursive):
(Binary.prototype.emit_init_expr):
(Binary.prototype.emit_header):
(Binary.prototype.emit_section):
(WasmFunctionBuilder):
(WasmFunctionBuilder.prototype.numLocalNames):
(WasmFunctionBuilder.prototype.exportAs):
(WasmFunctionBuilder.prototype.exportFunc):
(WasmFunctionBuilder.prototype.setCompilationHint):
(WasmFunctionBuilder.prototype.addBody):
(WasmFunctionBuilder.prototype.addBodyWithEnd):
(WasmFunctionBuilder.prototype.getNumLocals):
(WasmFunctionBuilder.prototype.addLocals):
(WasmFunctionBuilder.prototype.end):
(WasmInitExpr.I32Const):
(WasmInitExpr.I64Const):
(WasmInitExpr.F32Const):
(WasmInitExpr.F64Const):
(WasmInitExpr.S128Const):
(WasmInitExpr.GlobalGet):
(WasmInitExpr.RefFunc):
(WasmInitExpr.RefNull):
(WasmInitExpr.StructNewWithRtt):
(WasmInitExpr.StructNew):
(WasmInitExpr.StructNewDefaultWithRtt):
(WasmInitExpr.StructNewDefault):
(WasmInitExpr.ArrayInit):
(WasmInitExpr.ArrayInitStatic):
(WasmInitExpr.RttCanon):
(WasmInitExpr.RttSub):
(WasmInitExpr.RttFreshSub):
(WasmInitExpr.defaultFor):
(WasmInitExpr):
(WasmGlobalBuilder):
(WasmGlobalBuilder.prototype.exportAs):
(WasmTableBuilder):
(WasmTableBuilder.prototype.exportAs):
(makeField):
(WasmStruct):
(WasmStructSubtype):
(WasmArray):
(WasmArraySubtype):
(WasmElemSegment):
(WasmElemSegment.prototype.is_active):
(WasmElemSegment.prototype.is_passive):
(WasmElemSegment.prototype.is_declarative):
(WasmElemSegment.prototype.expressions_as_elements):
(WasmModuleBuilder):
(WasmModuleBuilder.prototype.addStart):
(WasmModuleBuilder.prototype.addMemory):
(WasmModuleBuilder.prototype.addMemory64):
(WasmModuleBuilder.prototype.addExplicitSection):
(WasmModuleBuilder.prototype.stringToBytes):
(WasmModuleBuilder.prototype.createCustomSection):
(WasmModuleBuilder.prototype.addCustomSection):
(WasmModuleBuilder.prototype.addType):
(WasmModuleBuilder.prototype.addStruct):
(WasmModuleBuilder.prototype.addStructSubtype):
(WasmModuleBuilder.prototype.addArray):
(WasmModuleBuilder.prototype.addArraySubtype):
(WasmModuleBuilder.prototype.addGlobal):
(WasmModuleBuilder.prototype.addTable):
(WasmModuleBuilder.prototype.addTag):
(WasmModuleBuilder.prototype.addFunction):
(WasmModuleBuilder.prototype.addImport):
(WasmModuleBuilder.prototype.addImportedGlobal):
(WasmModuleBuilder.prototype.addImportedMemory):
(WasmModuleBuilder.prototype.addImportedTable):
(WasmModuleBuilder.prototype.addImportedTag):
(WasmModuleBuilder.prototype.addExport):
(WasmModuleBuilder.prototype.addExportOfKind):
(WasmModuleBuilder.prototype.setCompilationHint):
(WasmModuleBuilder.prototype.addDataSegment):
(WasmModuleBuilder.prototype.addPassiveDataSegment):
(WasmModuleBuilder.prototype.exportMemoryAs):
(WasmModuleBuilder.prototype.addActiveElementSegment):
(WasmModuleBuilder.prototype.addPassiveElementSegment):
(WasmModuleBuilder.prototype.addDeclarativeElementSegment):
(WasmModuleBuilder.prototype.appendToTable):
(WasmModuleBuilder.prototype.setTableBounds):
(WasmModuleBuilder.prototype.setName):
(WasmModuleBuilder.prototype.toBuffer):
(WasmModuleBuilder.prototype.toArray):
(WasmModuleBuilder.prototype.instantiate):
(WasmModuleBuilder.prototype.asyncInstantiate):
(WasmModuleBuilder.prototype.toModule):
(wasmSignedLeb):
(wasmUnsignedLeb):
(wasmI32Const):
(wasmI64Const):
(wasmF32Const):
(wasmF64Const):
(wasmS128Const):
(getOpcodeName):
* wasm/wasm.json:
2021-10-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] UnlinkedCodeBlock::m_instructions can be nullptr
https://bugs.webkit.org/show_bug.cgi?id=231445
rdar://83975933
Reviewed by Mark Lam.
* stress/unlinked-code-block-destructor.js: Added.
(useAllMemory.get Object):
(useAllMemory.foo):
(useAllMemory):
(try.bar):
2021-10-08 Saam Barati <sbarati@apple.com>
RegExpExec can't statically prove which of the two structures it will get in AI by just looking at the RegExp*
https://bugs.webkit.org/show_bug.cgi?id=231382
<rdar://83722151>
Reviewed by Mark Lam.
* stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js: Added.
(foo):
2021-10-07 Philip Chimento <pchimento@igalia.com>
[JSC] Temporal tweaks to pass more test262 tests
https://bugs.webkit.org/show_bug.cgi?id=231331
Reviewed by Yusuke Suzuki.
* test262/config.yaml: Three tests no longer crash, but they still
depend on unimplemented functionality, so skip them.
* test262/expectations.yaml:
2021-10-06 Ross Kirsling <ross.kirsling@sony.com>
Unreviewed, ensure test262 expectations reflect BigSur release mode.
* test262/expectations.yaml:
2021-10-06 Philip Chimento <pchimento@igalia.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=231201
Add tests that were somehow cut off in the previous patch.
Reviewed by Ross Kirsling.
* test262/test/built-ins/Temporal/Now/*: Added.
2021-10-06 Philip Chimento <pchimento@igalia.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=231201
Reviewed by Ross Kirsling.
Update test262 to latest, to bring in Temporal tests.
* test262/config.yaml: Ignore tests that depend on unimplemented parts
of Temporal.
* test262/expectations.yaml: Add new failures.
* test262/*: Update from upstream.
* test262/test262-Revision.txt:
2021-10-06 Saam Barati <sbarati@apple.com>
Run backwards propagation before we prune the graph after ForceOSRExit nodes in BytecodeParser
https://bugs.webkit.org/show_bug.cgi?id=230823
<rdar://problem/83565088>
Reviewed by Robin Morisset.
* run-backwards-propagation-before-osr-exit-pruning.js: Added.
(assert):
(main.async v24):
(main):
2021-10-05 Saam Barati <sbarati@apple.com>
Don't pass DontBuildStrings to next token after parsing an empty parameter list
https://bugs.webkit.org/show_bug.cgi?id=225094
<rdar://problem/77231778>
Reviewed by Yusuke Suzuki.
* stress/dont-pass-DontBuildStrings-when-building-empty-arguments-list.js: Added.
(main.a.prototype.g.toString.string_appeared_here):
(main.a):
(main):
2021-10-05 Mark Lam <mark.lam@apple.com>
CodeBlock should not add/remove LoopHintExecutionCounters.
https://bugs.webkit.org/show_bug.cgi?id=231209
rdar://83571235
Reviewed by Saam Barati.
* stress/codeBlock-should-not-add-remove-loop-hint-execution-counters-due-to-cached-unlinked-baseline-code.js: Added.
2021-10-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
https://bugs.webkit.org/show_bug.cgi?id=231202
Reviewed by Keith Miller.
* stress/for-in-validation-poly-proto.js: Added.
(shouldBe):
(test):
(factory.Test):
(factory):
* stress/for-in-validation-watchpoint.js: Added.
(shouldBe):
(test):
(Test):
(factory):
2021-10-04 Saam Barati <sbarati@apple.com>
IntrinsicGetterAccessCase implementation of __proto__ needs to handle get_by_id_with_this
https://bugs.webkit.org/show_bug.cgi?id=229951
<rdar://problem/82787527>
Reviewed by Yusuke Suzuki.
* stress/run-proto-intrinsic-getter-with-this-value-in-get-by-id-with-this.js: Added.
(assert):
(main.v37):
(main):
2021-10-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262 config.yaml since OSS WebKit now uses ICU 64.2 header
https://bugs.webkit.org/show_bug.cgi?id=231121
Reviewed by Mark Lam.
* test262/config.yaml:
2021-10-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DateTimeFormat.resolvedOptions shouldn't return an object with other date/time properties if dateStyle or timeStyle are set
https://bugs.webkit.org/show_bug.cgi?id=231041
Reviewed by Ross Kirsling.
* stress/intl-date-time-format-date-time-style-basic.js:
(shouldBe.JSON.stringify.o.resolvedOptions):
(shouldBe):
(shouldBe.o.format): Deleted.
2021-10-02 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, add reported test to our stress tests
https://bugs.webkit.org/show_bug.cgi?id=230827
While we cannot reproduce the issue successfully, adding it to our stress tests to ensure that this will never happen.
* stress/intl-datetimeformat.js:
2021-10-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r283293.
https://bugs.webkit.org/show_bug.cgi?id=231116
changing print() broke a lot of random things
Reverted changeset:
"Print values in a nicer way in the jsc shell"
https://bugs.webkit.org/show_bug.cgi?id=230931
https://commits.webkit.org/r283293
2021-09-30 Saam Barati <sbarati@apple.com>
The DFG/FTL need to be aware that Proxy's can produce "function" for typeof and might be callable
https://bugs.webkit.org/show_bug.cgi?id=230804
<rdar://problem/83543951>
Reviewed by Yusuke Suzuki.
* stress/ai-typeof-needs-to-be-aware-of-proxy-2.js: Added.
(assert):
(builtin.vm.createBuiltin):
(builtin2.vm.createBuiltin):
(let.p.new.Proxy):
* stress/ai-typeof-needs-to-be-aware-of-proxy.js: Added.
(assert):
(builtin.vm.createBuiltin):
(let.p.new.Proxy):
* stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js: Added.
(main):
2021-09-29 Mark Lam <mark.lam@apple.com>
DFG strength reduction on % operator should handle an INT_MIN divisor.
https://bugs.webkit.org/show_bug.cgi?id=230391
<rdar://problem/83229740>
Reviewed by Robin Morisset.
* stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.
2021-09-29 Saam Barati <sbarati@apple.com>
Print values in a nicer way in the jsc shell
https://bugs.webkit.org/show_bug.cgi?id=230931
Reviewed by Tadeu Zagallo.
* ChakraCore/test/jsc-lib.js:
2021-09-29 Saam Barati <sbarati@apple.com>
We need to load the baseline JIT's constant pool register after OSR exit to checkpoints if we return to baseline code
https://bugs.webkit.org/show_bug.cgi?id=230972
<rdar://83659469>
Reviewed by Mark Lam and Yusuke Suzuki.
* stress/checkpoint-osr-exit-needs-to-reload-baseline-jit-constant-pool-gpr.js: Added.
(empty):
(empty2):
(test):
2021-09-29 Saam Barati <sbarati@apple.com>
Code inside strength reduction can incorrectly prove that we know what lastIndex is
https://bugs.webkit.org/show_bug.cgi?id=230802
<rdar://problem/83543699>
Reviewed by Mark Lam.
* stress/dont-fold-regexp-exec-when-we-dont-know-last-index-and-regexp-is-constant.js: Added.
(assert):
(let.reg.RegExp.foo.g.doExec):
(noInline.doExec):
2021-09-29 Saam Barati <sbarati@apple.com>
DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>
Unreviewed. Forgot to add a try/catch in the test.
* stress/verify-can-gc-node-index.js:
2021-09-28 Saam Barati <sbarati@apple.com>
DoesGCCheck does not use enough bits for nodeIndex
https://bugs.webkit.org/show_bug.cgi?id=230915
<rdar://83297515>
Reviewed by Mark Lam.
* stress/verify-can-gc-node-index.js: Added.
(gen):
(f):
2021-09-28 Alexey Shvayka <shvaikalesh@gmail.com>
Speed up setting JSFunction's "prototype" property
https://bugs.webkit.org/show_bug.cgi?id=230864
Reviewed by Yusuke Suzuki.
* microbenchmarks/class-creation.js: Added.
* microbenchmarks/function-prototype-put-non-reified.js: Added.
* microbenchmarks/function-prototype-put-reified.js: Added.
2021-09-27 Yusuke Suzuki <ysuzuki@apple.com>
[WTF] Add ApproximateTime
https://bugs.webkit.org/show_bug.cgi?id=230876
Reviewed by Filip Pizlo.
* microbenchmarks/approximate-time-now.js: Added.
* microbenchmarks/monotonic-time-now.js: Added.
* microbenchmarks/wall-time-now.js: Added.
2021-09-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize PutByVal with for-in
https://bugs.webkit.org/show_bug.cgi?id=230801
Reviewed by Saam Barati.
* stress/for-in-sentinel.js: Added.
(shouldBe):
(test):
2021-09-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r283095.
https://bugs.webkit.org/show_bug.cgi?id=230815
We should land the original patch since this does not work
with bytecode cache
Reverted changeset:
"[JSC] Optimize PutByVal with for-in"
https://bugs.webkit.org/show_bug.cgi?id=230801
https://commits.webkit.org/r283095
2021-09-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize PutByVal with for-in
https://bugs.webkit.org/show_bug.cgi?id=230801
Reviewed by Saam Barati.
* stress/for-in-sentinel.js: Added.
(shouldBe):
(test):
2021-09-24 Rick Waldron <waldron.rick@gmail.com>
[JSC] Add checkScriptSyntax function to jsc host environment
https://bugs.webkit.org/show_bug.cgi?id=230631
Reviewed by Yusuke Suzuki.
Updates tests that were using eval() to verify syntax.
* stress/arrow-function-syntax.js: Replace custom checkSyntax with checkScriptSyntax
* stress/async-iteration-for-await-of-syntax.js: Replace custom checkSyntax with checkScriptSyntax
* stress/async-iteration-syntax.js: Replace custom checkSyntax with checkScriptSyntax
2021-09-23 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Handle syntactic production for `#x in expr` correctly
https://bugs.webkit.org/show_bug.cgi?id=230668
Reviewed by Yusuke Suzuki.
* stress/private-in.js: Add tests.
* test262/expectations.yaml: Mark two test cases as passing.
2021-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Filter algorithmic numbering systems from enumeration data
https://bugs.webkit.org/show_bug.cgi?id=230660
Reviewed by Ross Kirsling.
* stress/intl-enumeration.js:
* test262/expectations.yaml:
2021-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Adjust Intl currency enumeration
https://bugs.webkit.org/show_bug.cgi?id=230656
Reviewed by Ross Kirsling.
* stress/intl-enumeration.js:
* test262/expectations.yaml:
2021-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] emoji and eor collations are missing
https://bugs.webkit.org/show_bug.cgi?id=230652
Reviewed by Ross Kirsling.
* stress/intl-enumeration.js:
* test262/expectations.yaml:
2021-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl unicode identifier type will reject underscore
https://bugs.webkit.org/show_bug.cgi?id=230645
Reviewed by Ross Kirsling.
* test262/expectations.yaml:
2021-09-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=230641
Reviewed by Ross Kirsling.
Upgrade test262 to the latest one.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/test262-Revision.txt:
2021-09-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] CompareStrictEq is omitting String check incorrectly
https://bugs.webkit.org/show_bug.cgi?id=230582
rdar://83237121
Reviewed by Mark Lam.
* stress/compare-strict-eq-string-check.js: Added.
(foo):
(bar):
2021-09-21 Justin Michaud <justin_michaud@apple.com>
Differential testing: live statement don't execute
https://bugs.webkit.org/show_bug.cgi?id=229939
Reviewed by Saam Barati.
* stress/in-by-val-should-throw.js: Added.
(doesThrow):
(noInline.doesThrow.noFTL.doesThrow.blackbox):
(noInline.blackbox.doesNotThrow):
(noInline.doesNotThrow.noFTL.doesNotThrow.main):
2021-09-20 Mikhail R. Gadelha <mikhail@igalia.com>
Skip stress/json-stringify-stack-overflow.js only on memory limited systems
https://bugs.webkit.org/show_bug.cgi?id=230489
Unreviewed gardening.
It's currently only failing on systems with low memory, regardless of
the arch.
* stress/json-stringify-stack-overflow.js:
2021-09-17 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add fast property enumeration mode for JSON.stringify
https://bugs.webkit.org/show_bug.cgi?id=230393
Reviewed by Mark Lam.
* stress/json-stringify-object-modify.js: Added.
(shouldBe):
(throw.new.Error.let.object.hello.get inner):
(throw.new.Error):
(shouldBe.let.object.hello.get inner):
2021-09-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize leaf object creation in JSON.parse
https://bugs.webkit.org/show_bug.cgi?id=230298
Reviewed by Keith Miller.
* microbenchmarks/json-parse-leaf-object.js: Added.
2021-09-13 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add JSON.parse microbenchmarks from Speedometer2
https://bugs.webkit.org/show_bug.cgi?id=230234
Reviewed by Saam Barati.
This patch adds JSON.parse microbenchmarks from Speedometer2. We record JSON.parse call in Speedometer2 subtests,
and create benchmark which performs the same calls.
* microbenchmarks/flight-todomvc-json-parse.js: Renamed from JSTests/microbenchmarks/flight-todomvc-json.js.
* microbenchmarks/vanilla-es2015-babel-webpack-todomvc-json-parse.js: Added.
* microbenchmarks/vanilla-es2015-todomvc-json-parse.js: Added.
* microbenchmarks/vanilla-todomvc-json-parse.js: Added.
2021-09-10 Justin Michaud <justin_michaud@apple.com>
[ JSC Catalina Release ] wasm.yaml/wasm/references/multitable.js.wasm-collect-continuously (javascriptcore-tests) is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=229896
The combination of collectContinuously and verifyGC really hammer the poor hardware
during the final two "table insanity" stress tests. I have confirmed that the test
is indeed making forward progress, even after running for 45 minutes, by using logGC.
For this reason, it seems like it is OK to skip verifyGC for this test.
We could have added a vm option isVerifyingGC and disabled only the table insanity test
in this case like we do for low memory, but I think this is good enough.
Reviewed by Mark Lam.
* wasm/references/multitable.js:
2021-09-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl.Locale weekendInfo should list all weekend days instead of range
https://bugs.webkit.org/show_bug.cgi?id=230108
Reviewed by Ross Kirsling.
* stress/intl-locale-info.js:
(throw.new.Error):
(let.enGB.new.Intl.Locale.shouldBe): Deleted.
* test262/config.yaml:
2021-09-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize op_get_property_enumerator further
https://bugs.webkit.org/show_bug.cgi?id=230086
Reviewed by Saam Barati.
* stress/for-in-cell-other.js: Added.
(shouldBe):
(forIn):
* stress/for-in-null-undefined.js: Added.
(shouldBe):
(forIn):
2021-09-09 Justin Michaud <justin_michaud@apple.com>
Differential testing: incorrect constant propagation around Uint8ClampedArray
https://bugs.webkit.org/show_bug.cgi?id=229869
Reviewed by Saam Barati.
* stress/Uint8ClampedArrayClampsInt52Positive.js: Added.
(let.x.123.test):
(noInline.test.int32pos1):
(255.int32pos2):
(1.int32neg1):
(0.int32neg2):
(0.int52pos1):
(255.int52pos2):
(255.int52neg1):
(0.int52neg2):
(0.int52neg3):
(0.int52pos3):
(255.int8):
2021-09-09 Robin Morisset <rmorisset@apple.com>
Optimize compareStrictEq when neither side is a double and at least one is not a BigInt
https://bugs.webkit.org/show_bug.cgi?id=226755
<rdar://problem/79321542>
Reviewed by Yusuke Suzuki.
Made the error messages in stress/reflect-set a bit more informative in the process of debugging an issue with the patch.
* stress/reflect-set.js:
(shouldBe):
(shouldThrow):
2021-09-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Temporal.PlainTime
https://bugs.webkit.org/show_bug.cgi?id=229892
Reviewed by Darin Adler.
* stress/temporal-calendar.js:
* stress/temporal-duration.js:
* stress/temporal-plaintime.js: Added.
(shouldBe):
(shouldThrow):
(shouldBe.String.Temporal.PlainTime.from):
(let.time.Temporal.PlainTime.from.shouldBe):
(let.text.of.failures.shouldThrow):
(print):
(shouldBe.Temporal.PlainTime.from):
(new.Temporal.PlainTime.valueOf):
(shouldBe.String.time.until.Temporal.PlainTime.from):
* stress/temporal-timezone.js:
(let.text.of.failures.shouldThrow): Deleted.
* test262/config.yaml:
2021-09-07 Yusuke Suzuki <ysuzuki@apple.com>
Math.hypot checks for infinite values prematurely
https://bugs.webkit.org/show_bug.cgi?id=229843
Reviewed by Ross Kirsling.
* stress/math-hypot-evaluation-ordering.js: Added.
(shouldThrow):
2021-09-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Make EnumeratorNextUpdateIndexAndMode clobberizing rule precise
https://bugs.webkit.org/show_bug.cgi?id=229898
rdar://82714439
Reviewed by Saam Barati.
* complex.yaml:
* complex/for-in-clobberize.js: Added.
2021-09-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Temporal.TimeZone
https://bugs.webkit.org/show_bug.cgi?id=229703
Reviewed by Ross Kirsling.
* complex.yaml:
* complex/temporal-now-timezone-check.js: Added.
(shouldBe):
* complex/temporal-now-timezone-with-broken-tz.js: Added.
(shouldBe):
* stress/intl-enumeration.js:
* stress/temporal-timezone.js: Added.
(shouldBe):
(shouldThrow):
(let.text.of.failures.shouldThrow):
(reviver):
2021-09-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Validate JSPropertyNameEnumerator via watchpoints
https://bugs.webkit.org/show_bug.cgi?id=229846
Reviewed by Keith Miller.
* stress/for-in-cacheable-dictionary.js: Added.
(shouldBe):
(collect):
* stress/for-in-invalidate.js: Added.
(shouldBe):
(collect):
* stress/for-in-uncacheable-dictionary.js: Added.
(shouldBe):
(collect):
2021-08-31 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Implement Temporal.Duration
https://bugs.webkit.org/show_bug.cgi?id=228532
Reviewed by Yusuke Suzuki.
* stress/temporal-duration.js: Added.
* test262/config.yaml: Enabled Duration tests.
2021-08-30 Ross Kirsling <ross.kirsling@sony.com>
[JSC][Intl] Errors for .call({}) are too verbose
https://bugs.webkit.org/show_bug.cgi?id=229694
Reviewed by Yusuke Suzuki.
* stress/intl-displaynames.js:
2021-08-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Implement Temporal.Calendar
https://bugs.webkit.org/show_bug.cgi?id=229651
Reviewed by Ross Kirsling.
* stress/temporal-calendar.js: Added.
(shouldBe):
(shouldThrow):
(new.Temporal.Calendar):
2021-08-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=229645
Reviewed by Keith Miller.
Upgrade test262 to the latest one.
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test262-Revision.txt:
2021-08-26 Yusuke Suzuki <ysuzuki@apple.com>
Intl.DateTimeFormat incorrectly parses patterns with 'h' literal
https://bugs.webkit.org/show_bug.cgi?id=229313
rdar://82414310
Reviewed by Ross Kirsling.
* stress/intl-date-pattern-includes-literal-text.js: Added.
(shouldBe):
2021-08-26 Yusuke Suzuki <ysuzuki@apple.com>
Float32Arrays.sort() return undefined when length < 2
https://bugs.webkit.org/show_bug.cgi?id=229575
Reviewed by Saam Barati.
* stress/typed-array-sort-small.js: Added.
(shouldBe):
(throw.new.Error):
2021-08-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] op_put_private_name should use modern IC and remove ByValInfo
https://bugs.webkit.org/show_bug.cgi?id=229544
Reviewed by Saam Barati.
Move class-fields-private benchmarks into microbenchmarks.
Added several microbenchmarks and stress tests.
* microbenchmarks/class-private-field-polymorphic.js: Added.
(shouldBe):
(test.A.prototype.put):
* microbenchmarks/get-private-name.js: Renamed from JSTests/microbenchmarks/class-fields-private/get-private-name.js.
* microbenchmarks/monomorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/monomorphic-get-private-field.js.
* microbenchmarks/polymorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-get-private-field.js.
* microbenchmarks/polymorphic-put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-put-private-field.js.
* microbenchmarks/put-by-val-polymorphic-properties.js: Added.
(shouldBe):
(test):
* microbenchmarks/put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/put-private-field.js.
* stress/class-private-field-megamorphic.js: Added.
(shouldBe):
* stress/class-private-field-polymorphic.js: Added.
(shouldBe):
(test.A.prototype.put):
* stress/put-by-val-polymorphic-properties.js: Added.
(shouldBe):
(test):
2021-08-26 Saam Barati <sbarati@apple.com>
r281485 was not sufficient in where it called disablePeepholeOptimization
https://bugs.webkit.org/show_bug.cgi?id=229582
<rdar://82346980>
Reviewed by Yusuke Suzuki.
* stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite-2.js: Added.
(foo):
2021-08-24 Yusuke Suzuki <ysuzuki@apple.com>
Update Intl tests to support ICU 68
https://bugs.webkit.org/show_bug.cgi?id=229467
Reviewed by Mark Lam.
ICU 68 changes some outputs of Intl tests. This patch adjusts that.
* stress/intl-parse-unicode-subtags.js:
(vm.icuVersion):
2021-08-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add Intl Enumeration APIs
https://bugs.webkit.org/show_bug.cgi?id=214795
Reviewed by Ross Kirsling.
* stress/intl-datetimeformat.js:
* stress/intl-enumeration.js: Added.
(shouldBe):
(shouldThrow):
* stress/intl-locale-info.js:
(let.l.new.Intl.Locale.shouldBe):
(shouldBe):
2021-08-24 Keith Miller <keith_miller@apple.com>
(r281473) stress/for-in-has-own-property-shouldnt-flush-registers.js failing on Debug
https://bugs.webkit.org/show_bug.cgi?id=229448
Reviewed by Mark Lam.
Fix typo in test name.
* stress/for-in-in-by-val-should-flush-registers.js: Renamed from JSTests/stress/for-in-in-by-val-shouldnt-flush-registers.js.
2021-08-23 Saam Barati <sbarati@apple.com>
Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
https://bugs.webkit.org/show_bug.cgi?id=229420
<rdar://82020528>
Reviewed by Keith Miller.
* stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added.
(foo):
2021-08-23 Saam Barati <sbarati@apple.com>
compileEnumeratorHasProperty uses flushRegisters incorrectly
https://bugs.webkit.org/show_bug.cgi?id=229412
<rdar://82020767>
Reviewed by Keith Miller.
* stress/for-in-has-own-property-shouldnt-flush-registers.js: Added.
(foo):
* stress/for-in-in-by-val-shouldnt-flush-registers.js: Added.
(a.toString):
2021-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Remove already-shipped wasm option flags
https://bugs.webkit.org/show_bug.cgi?id=229386
Reviewed by Ross Kirsling.
* wasm/references/element_active_mod.js:
* wasm/references/element_parsing.js:
* wasm/references/externref_globals.js:
* wasm/references/externref_modules.js:
* wasm/references/externref_table.js:
* wasm/references/externref_table_import.js:
* wasm/references/func_ref.js:
* wasm/references/globals.js:
* wasm/references/is_null.js:
* wasm/references/memory_copy.js:
* wasm/references/memory_copy_shared.js:
* wasm/references/memory_fill_shared.js:
* wasm/references/multitable.js:
* wasm/references/parse_unreachable.js:
* wasm/references/table_js_api.js:
* wasm/references/table_misc.js:
* wasm/references/validation.js:
* wasm/stress/immutable-globals.js:
* wasm/stress/local-ref.js:
* wasm/stress/mutable-globals.js:
* wasm/stress/table-grow-table-size.js:
2021-08-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Remove already-shipped JS feature flags
https://bugs.webkit.org/show_bug.cgi?id=229387
Reviewed by Ross Kirsling.
* microbenchmarks/class-fields-private/get-private-name.js:
* microbenchmarks/class-fields-private/monomorphic-get-private-field.js:
* microbenchmarks/class-fields-private/polymorphic-get-private-field.js:
* microbenchmarks/class-fields-private/polymorphic-put-private-field.js:
* microbenchmarks/class-fields-private/put-private-field.js:
* stress/class-fields-private-as-function.js:
* stress/class-fields-private-cached-bytecode.js:
* stress/class-fields-private-freeze-out-of-line.js:
* stress/class-fields-private-freeze.js:
* stress/class-fields-private-harmony.js:
* stress/class-fields-private-on-proxy.js:
* stress/class-fields-private-out-of-line.js:
* stress/class-fields-private-prevent-extensions-out-of-line.js:
* stress/class-fields-private-prevent-extensions.js:
* stress/class-fields-private-seal-out-of-line.js:
* stress/class-fields-private-seal.js:
* stress/class-fields-private-use-eval.js:
* stress/class-fields-static-harmony.js:
* stress/class-fields-static-private-harmony.js:
* stress/class-fields-stress-instance.js:
* stress/class-private-method-access.js:
* stress/dfg-get-private-name-by-id-generic.js:
* stress/dfg-get-private-name-by-id-osr-bad-identifier.js:
* stress/dfg-get-private-name-by-id.js:
* stress/dfg-get-private-name-by-offset-osr-bad-identifier.js:
* stress/dfg-get-private-name-by-offset-osr-bad-structure.js:
* stress/dfg-get-private-name-by-offset.js:
* stress/dfg-get-private-name-by-val-generic.js:
* stress/dfg-put-private-name-check-barrier-insertion.js:
* stress/dfg-put-private-name-compiled-as-put-by-id-direct.js:
* stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js:
* stress/ftl-get-private-name-by-id.js:
* stress/ftl-get-private-name-by-offset-multi.js:
* stress/get-private-name-cache-failure.js:
* stress/get-private-name-with-constant-ident.js:
* stress/get-private-name-with-constant-symbol.js:
* stress/get-private-name-with-different-symbol.js:
* stress/get-private-name-with-primitive.js:
* stress/get-private-name.js:
* stress/optional-chaining-and-private-fields.js:
* stress/private-accesor-duplicate-name-early-errors.js:
* stress/private-accessor-static-non-static.js:
* stress/private-brand-installed-after-super-call-from-arrow-function.js:
* stress/private-brand-installed-after-super-call-from-eval.js:
* stress/private-getter-brand-check.js:
* stress/private-getter-inner-class.js:
* stress/private-in-error.js:
* stress/private-in.js:
* stress/private-members-get-and-set.js:
* stress/private-method-and-field-named-constructor.js:
* stress/private-method-brand-check.js:
* stress/private-method-change-attribute-from-branded-structure.js:
* stress/private-method-change-prototype-from-branded-structure.js:
* stress/private-method-check-private-brand-ic.js:
* stress/private-method-check-structure-miss.js:
* stress/private-method-comparison.js:
* stress/private-method-delete-property-from-branded-structure.js:
* stress/private-method-extends-brand-check.js:
* stress/private-method-get-and-call.js:
* stress/private-method-invalid-multiple-brand-installation.js:
* stress/private-method-invalidate-compiled-with-constant-symbol.js:
* stress/private-method-nested-class.js:
* stress/private-method-on-sealed-objects.js:
* stress/private-method-on-uncacheable-dictionary.js:
* stress/private-method-polymorphic-with-constant-symbol.js:
* stress/private-method-set-brand-should-have-write-barrier.js:
* stress/private-method-untyped-use.js:
* stress/private-method-with-uncacheable-dictionary-transition.js:
* stress/private-methods-and-accessors-postfix-node.js:
* stress/private-methods-and-accessors-prefix-node.js:
* stress/private-methods-inline-cache.js:
* stress/private-methods-megamorphic-ic.js:
* stress/private-methods-on-proxy.js:
* stress/private-methods-poly-ic-multiple-classes.js:
* stress/private-methods-poly-ic-single-class.js:
* stress/private-name-access-in-computed-property.js:
* stress/private-names-available-on-direct-eval.js:
* stress/private-names-available-on-eval-during-field-initialization.js:
* stress/private-setter-brand-check.js:
* stress/private-setter-inner-class.js:
* stress/put-by-val-direct-addprivate.js:
* stress/put-by-val-direct-putprivate.js:
* stress/put-private-name-by-id-set-do-not-add-structure-trasition.js:
* stress/put-private-name-check-structure-miss.js:
* stress/put-private-name-constant-folding-to-mult-put-by-offset.js:
* stress/put-private-name-constant-folding-to-put-by-offset.js:
* stress/put-private-name-generic.js:
* stress/put-private-name-invalid-define.js:
* stress/put-private-name-invalid-store.js:
* stress/put-private-name-invalidate-compiled-with-constant-symbol.js:
* stress/put-private-name-polymorphic-with-constant-symbol.js:
* stress/put-private-name-untyped-use.js:
* stress/put-private-name-with-constant-symbol.js:
* stress/put-private-name-with-different-identifier.js:
* stress/put-private-name-with-primitive.js:
* stress/static-private-methods-and-accessor-inner-class.js:
* stress/static-private-methods-and-accessor-multiple-evaluation.js:
* stress/static-private-methods-and-accessors-postfix-node.js:
* stress/static-private-methods-and-accessors-prefix-node.js:
* stress/v8-cleanup-from-different-realm.js:
* stress/v8-cleanup-proxy-from-different-realm.js:
* stress/v8-finalization-registry-basics.js:
* stress/v8-finalizationregistry-and-weakref.js:
* stress/v8-finalizationregistry-keeps-holdings-alive.js:
* stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js:
* stress/v8-multiple-dirty-finalization-registries.js:
* stress/v8-reentrant-gc-from-cleanup.js:
* stress/v8-stress-finalizationregistry-dirty-enqueue.js:
* stress/v8-undefined-holdings.js:
* stress/v8-unregister-after-cleanup.js:
* stress/v8-unregister-before-cleanup.js:
* stress/v8-unregister-called-twice.js:
* stress/v8-unregister-inside-cleanup2.js:
* stress/v8-unregister-inside-cleanup3.js:
* stress/v8-unregister-many.js:
* stress/v8-weak-unregistertoken.js:
* test262/config.yaml:
2021-08-22 Yusuke Suzuki <ysuzuki@apple.com>
Unreviewed, speculative fix for old ICU
https://bugs.webkit.org/show_bug.cgi?id=229385
* stress/intl-locale-info.js:
(shouldBe):
2021-08-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Remove Intl runtime feature flags for already shipped ones
https://bugs.webkit.org/show_bug.cgi?id=229371
Reviewed by Ross Kirsling.
* stress/intl-datetimeformat-day-period.js:
* test262/config.yaml:
2021-08-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl.DisplayNames v2
https://bugs.webkit.org/show_bug.cgi?id=227832
Reviewed by Ross Kirsling.
* stress/intl-displaynames-v2.js: Added.
(shouldBe):
(shouldThrow):
(vm.icuVersion):
* stress/intl-displaynames.js:
(vm.icuVersion):
* test262/config.yaml:
* test262/expectations.yaml:
2021-08-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl Locale Info
https://bugs.webkit.org/show_bug.cgi?id=227830
Reviewed by Ross Kirsling.
* stress/intl-locale-info.js: Added.
(shouldBe):
(throw.new.Error):
(let.enGB.new.Intl.Locale.shouldBe):
(let.l.new.Intl.Locale.shouldBe):
* test262/config.yaml:
2021-08-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Extend Intl TimeZoneName Option
https://bugs.webkit.org/show_bug.cgi?id=227831
Reviewed by Ross Kirsling.
* stress/intl-extended-timezone-names.js: Added.
(shouldBe):
(timeZoneTest):
* test262/config.yaml:
2021-08-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Enable Array#findLast method
https://bugs.webkit.org/show_bug.cgi?id=229355
Reviewed by Saam Barati.
* stress/unscopables.js:
2021-08-17 Mikhail R. Gadelha <mikhail@igalia.com>
Unreviewed. Skip failing MIPS tests
https://bugs.webkit.org/show_bug.cgi?id=229198
* ChakraCore.yaml:
2021-08-13 Keith Miller <keith_miller@apple.com>
EnumeratorNextUpdatePropertyName always needs to be able to handle IndexedMode
https://bugs.webkit.org/show_bug.cgi?id=229087
Reviewed by Filip Pizlo.
* stress/for-in-own-structure-and-generic-with-late-add-indexed.js: Added.
(test):
(Foo):
2021-08-11 Yusuke Suzuki <ysuzuki@apple.com>
WTFCrash in JSC::Lexer<char16_t>::append8
https://bugs.webkit.org/show_bug.cgi?id=228982
Reviewed by Mark Lam.
* stress/directive-includes-non-latin1.js: Added.
2021-08-09 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] super-Latin1 white space and line terminator after regular expression literal misinterpreted as flags
https://bugs.webkit.org/show_bug.cgi?id=227944
Reviewed by Alexey Shvayka.
* test262/expectations.yaml:
2021-08-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Clean up test262 expectations
https://bugs.webkit.org/show_bug.cgi?id=228903
Reviewed by Ross Kirsling.
* test262/config.yaml:
* test262/expectations.yaml:
2021-08-07 Keith Miller <keith_miller@apple.com>
for-in should only emit one loop in bytecode
https://bugs.webkit.org/show_bug.cgi?id=227989
Reviewed by Yusuke Suzuki.
* microbenchmarks/for-in-double-array-with-own-named.js: Added.
(test):
* microbenchmarks/for-in-double-array.js: Added.
(test):
* microbenchmarks/for-in-getters.js: Added.
(test):
* microbenchmarks/for-in-int32-array-with-own-named.js: Added.
(test):
* microbenchmarks/for-in-int32-array.js: Added.
(test):
* microbenchmarks/for-in-int32-object-with-own-named-and-getters.js: Added.
(test):
* microbenchmarks/for-in-int32-object-with-own-named.js: Added.
(test):
* microbenchmarks/for-in-object-with-own-named.js: Added.
(sum):
(opaqueSet):
* microbenchmarks/for-in-string-array.js: Added.
(test):
* microbenchmarks/for-of-iterate-array-map-set.js: Added.
(sum):
(let.generator):
* stress/for-in-array-mode.js:
(test):
* stress/for-in-base-reassigned-later.js:
* stress/for-in-delete-during-iteration.js:
* stress/for-in-primitive-index-on-prototype.js: Added.
(test):
* stress/for-in-tests.js:
* stress/has-own-property-structure-for-in-loop-correctness.js:
(test5):
2021-08-05 Mikhail R. Gadelha <mikhail@igalia.com>
Assertion failure when checking array in DFG (32 bits)
https://bugs.webkit.org/show_bug.cgi?id=228839
Reviewed by Yusuke Suzuki.
* stress/check-array-empty-32.js: Added.
(a.b.catch.print.c):
(a.b):
(a.e):
(a):
2021-08-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Yarr BoyerMoore search should support character-class
https://bugs.webkit.org/show_bug.cgi?id=228613
Reviewed by Saam Barati.
* stress/regexp-bm-search-character-non-fixed-size.js: Added.
(shouldBe):
* stress/regexp-bm-search-many-candidate-zero-length.js: Added.
(shouldBe):
(regexp.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.0.1.2.3.4.5.6.7.8.9.t.v.n.r):
* stress/regexp-bm-search-non-fixed-size.js: Added.
(shouldBe):
2021-08-02 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=228709
Reviewed by Mark Lam.
* test262/latest-changes-summary.txt:
* test262/test/built-ins/Error/prototype/constructor/S15.11.4.1_A1_T1.js: Removed.
* test262/test/built-ins/Error/prototype/message/15.11.4.3-1.js: Removed.
* test262/test/built-ins/Error/prototype/message/S15.11.4.3_A1.js: Removed.
* test262/test/built-ins/Error/prototype/message/S15.11.4.3_A2.js: Removed.
* test262/test/built-ins/Error/prototype/name/15.11.4.2-1.js: Removed.
* test262/test/built-ins/Error/prototype/name/S15.11.4.2_A1.js: Removed.
* test262/test/built-ins/Error/prototype/name/S15.11.4.2_A2.js: Removed.
* test262/test/built-ins/Error/prototype/toString/S15.11.4.4_A1.js: Removed.
* test262/test/built-ins/TypedArray/prototype/findLast/return-abrupt-from-this-out-of-bounds.js:
* test262/test/built-ins/TypedArray/prototype/findLastIndex/return-abrupt-from-this-out-of-bounds.js:
* test262/test/harness/sta-error.js: Removed.
* test262/test/harness/sta-override-error.js: Removed.
* test262/test262-Revision.txt:
2021-07-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=228627
Reviewed by Ross Kirsling.
2021-07-30 Robin Morisset <rmorisset@apple.com>
Improve OSR entry into Wasm loops with arguments
https://bugs.webkit.org/show_bug.cgi?id=228595
Reviewed by Yusuke Suzuki.
Just a straightforward test that counts to 1M in a loop, to exercise both OSR entry and a loop with an argument at the same time.
100k iterations was not enough to reliably complete an OSR entry.
* wasm/stress/osr-entry-with-loop-arguments.js: Added.
(async test):
2021-07-30 Tadeu Zagallo <tzagallo@apple.com>
putInlineFastReplacingStaticPropertyIfNeeded should handle custom values
https://bugs.webkit.org/show_bug.cgi?id=227963
Reviewed by Alexey Shvayka.
* stress/reflect-set-custom-value.js:
2021-07-29 Tadeu Zagallo <tzagallo@apple.com>
definePropertyOnReceiver should check if receiver canPerformFastPutInline
https://bugs.webkit.org/show_bug.cgi?id=227963
<rdar://80259710>
Reviewed by Alexey Shvayka.
* stress/reflect-set-custom-value.js: Added.
2021-07-29 Yusuke Suzuki <ysuzuki@apple.com> and Alexey Shvayka <shvaikalesh@gmail.com>
[JSC] Legacy RegExp fields should be accessors
https://bugs.webkit.org/show_bug.cgi?id=220233
Reviewed by Tadeu Zagallo.
* ChakraCore/test/Lib/forin_lib_v3.baseline-jsc:
* microbenchmarks/assign-custom-setter-polymorphic.js:
* microbenchmarks/assign-custom-setter.js:
* microbenchmarks/custom-setter-getter-as-put-get-by-id.js:
* microbenchmarks/custom-value-2.js:
* microbenchmarks/custom-value.js:
* microbenchmarks/get-custom-getter.js:
* stress/custom-value-delete-property-1.js:
* stress/custom-value-delete-property-2.js:
* stress/custom-value-delete-property-3.js:
* stress/object-assign-fast-path.js:
* stress/reflect-set.js:
* stress/regexp-constructor-dollar-getters-are-unique.js: Added.
* stress/regexp-setter-realm.js: Added.
* stress/static-put-in-prototype-chain.js: Added.
* test262/config.yaml:
* test262/expectations.yaml:
2021-07-28 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Yarr should perform BoyerMoore search
https://bugs.webkit.org/show_bug.cgi?id=228301
Reviewed by Saam Barati.
* microbenchmarks/jquery-todomvc-regexp.js:
* stress/regexp--bm-search-long-character.js: Added.
(shouldBe):
* stress/regexp--bm-search-long-map.js: Added.
(shouldBe):
* stress/regexp-bitvector-reuse.js: Added.
(shouldBe):
* stress/regexp-non-ascii-bm-search-character.js: Added.
(shouldBe):
* stress/regexp-non-ascii-bm-search-map.js: Added.
(shouldBe):
2021-07-25 Alexey Shvayka <shvaikalesh@gmail.com>
Partly implement Function.prototype.{caller,arguments} reflection proposal
https://bugs.webkit.org/show_bug.cgi?id=158116
Reviewed by Yusuke Suzuki.
* ChakraCore/test/strict/19.function.baseline:
* ChakraCore/test/strict/22.callerCalleeArguments.baseline-jsc:
* microbenchmarks/function-prototype-get.js: Added.
* microbenchmarks/reflect-own-keys-function.js: Added.
* stress/for-in-shadow-non-enumerable.js:
* stress/function-hidden-as-caller.js:
* stress/has-own-property-arguments.js:
* stress/object-assign-fast-path.js:
* stress/put-to-proto-chain-overrides-put.js:
* stress/reflect-set.js:
* test262/config.yaml: Skip 3 test cases that are now incorrect.
* test262/expectations.yaml: Mark 2 test cases as passing.
2021-07-23 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add Speedometer2 jQuery-TodoMVC RegExp microbenchmark
https://bugs.webkit.org/show_bug.cgi?id=228257
Reviewed by Mark Lam.
I instrumented JSC and extracted executed RegExp evaluations from Speedometer2/jQuery-TodoMVC
to easily test RegExp performance.
* microbenchmarks/jquery-todomvc-regexp.js: Added.
(x00.test):
2021-07-23 Alexey Shvayka <shvaikalesh@gmail.com>
[JSC] Call custom accessors / values with their holder's global object
https://bugs.webkit.org/show_bug.cgi?id=225997
Reviewed by Yusuke Suzuki.
* stress/custom-get-set-proto-chain-put.js:
* stress/getter-setter-globalobject-in-ic-2.js: Added.
2021-07-22 Saam Barati <sbarati@apple.com>
JSTests/stress/test-out-of-memory shouldn't assume that we always OOM
https://bugs.webkit.org/show_bug.cgi?id=228213
Reviewed by Mark Lam.
* stress/test-out-of-memory.js:
2021-07-22 Yusuke Suzuki <ysuzuki@apple.com>
Reduce iteration of microbenchmarks/memcpy-typed-loop.js
https://bugs.webkit.org/show_bug.cgi?id=228214
Reviewed by Saam Barati.
Observing frequent timeout (e.g. https://ews-build.webkit.org/#/builders/1/builds/44698).
We do not need to have such a large # of iterations.
* microbenchmarks/memcpy-typed-loop.js:
2021-07-22 Saam Barati <sbarati@apple.com>
AirStackSlot's uint16_t byte size is too small
https://bugs.webkit.org/show_bug.cgi?id=228193
<rdar://80888059>
Reviewed by Mark Lam.
* stress/stack-slot-needs-to-use-more-than-uint16.js: Added.
2021-07-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] invalidParameterInstanceofSourceAppender should care direct call of Symbol.hasInstance
https://bugs.webkit.org/show_bug.cgi?id=228075
rdar://80762879
Reviewed by Frédéric Wang.
* stress/symbol-hasinstance-error.js: Added.
(shouldThrow):
(let.a):
2021-07-19 Mark Lam <mark.lam@apple.com>
DFG's parseIntResult() should check for negative zero.
https://bugs.webkit.org/show_bug.cgi?id=228068
rdar://80788603
Reviewed by Yusuke Suzuki.
* stress/dfg-parseIntResult-should-check-for-negative-zero.js: Added.
2021-07-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] InByStatus / InByVariant should visit CacheableIdentifier
https://bugs.webkit.org/show_bug.cgi?id=228088
rdar://80794604
Reviewed by Mark Lam.
* stress/in-by-variant-should-mark-cacheable-identifier.js: Added.
(foo):
(let.handler.has):
2021-07-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Simplify sampling-profiler-regexp.js test
https://bugs.webkit.org/show_bug.cgi?id=228040
Reviewed by Saam Barati.
In this new test case, only thing we care is regexp appears on sampling-profiler regardless of whether the other functions are inlined / tail-called or not.
We change the sampling-profiler/samplingProfiler.js runTest to add a mode which searches specific signature in the call tree.
* stress/sampling-profiler-regexp.js:
(platformSupportsSamplingProfiler):
* stress/sampling-profiler/samplingProfiler.js:
(doesTreeHaveStackTrace):
(runTest):
2021-07-16 Saam Barati <sbarati@apple.com>
Grab the lock in FTL::Thunks::keyForSlowPathCallThunk
https://bugs.webkit.org/show_bug.cgi?id=227988
<rdar://problem/80627901>
Reviewed by Mark Lam.
* stress/thunks-hash-map-should-grab-lock.js: Added.
2021-07-16 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] RegExp::dumpToStream must not ref Strings since it is called concurrently
https://bugs.webkit.org/show_bug.cgi?id=228031
rdar://80686425
Reviewed by Mark Lam.
* stress/regexp-dump-concurrently.js: Added.
(let.code):
2021-07-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] SamplingProfiler should recognize RegExp execution
https://bugs.webkit.org/show_bug.cgi?id=201702
Reviewed by Saam Barati.
* stress/sampling-profiler-regexp.js: Added.
(platformSupportsSamplingProfiler.getText):
(platformSupportsSamplingProfiler.test):
(platformSupportsSamplingProfiler.baz):
(platformSupportsSamplingProfiler):
* stress/sampling-profiler/samplingProfiler.js: Extend samplingProfiler to show better error information when VERBOSE = true.
(doesTreeHaveStackTrace):
2021-07-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Harden defaultTimeZone retrieval
https://bugs.webkit.org/show_bug.cgi?id=227996
Reviewed by Mark Lam.
* complex.yaml:
* complex/intl-timezone-check.js: Added.
(shouldBe):
2021-07-15 Mark Lam <mark.lam@apple.com>
JITWorklist::waitUntilAllPlansForVMAreReady() should also be notified when plans are cancelled.
https://bugs.webkit.org/show_bug.cgi?id=228003
rdar://78314543
Reviewed by Yusuke Suzuki.
* stress/waitUntilAllPlansForVMAreReady-should-be-notified-of-cancelled-plans-too.js: Added.
2021-07-14 Devin Rousso <drousso@apple.com>
Implement Array.prototype.findLast and Array.prototype.findLastIndex
https://bugs.webkit.org/show_bug.cgi?id=227939
Reviewed by Yusuke Suzuki.
* stress/typedarray-findLast.js: Added.
(keepEven):
(keepEvenAndChange):
(isBigEnoughAndException):
* stress/typedarray-findLastIndex.js: Added.
(keepEven):
(keepEvenAndChange):
(isBigEnoughAndException):
2021-07-14 Keith Miller <keith_miller@apple.com>
Unreviewed, test gardening.
* stress/bit-op-with-object-returning-int32.js:
* stress/bitwise-not-fixup-rules.js:
(jscOptions):
2021-07-14 Mark Lam <mark.lam@apple.com>
Check for out of memory in JSC::globalFuncEscape() and JSC::globalFuncUnescape().
https://bugs.webkit.org/show_bug.cgi?id=227962
rdar://78392251
Reviewed by Yusuke Suzuki.
* stress/out-of-memory-in-globalFuncUnescape.js: Added.
2021-07-14 Mark Lam <mark.lam@apple.com>
Placate exception checker validation in operationObjectAssignUntyped.
https://bugs.webkit.org/show_bug.cgi?id=227955
rdar://80503746
Reviewed by Michael Saboff.
* stress/exception-check-in-operationObjectAssignUntyped.js: Added.
2021-07-14 Keith Miller <keith_miller@apple.com>
Fix more tests around fuzzing executable allocations
https://bugs.webkit.org/show_bug.cgi?id=226663
Reviewed by Mark Lam.
* stress/bit-op-with-object-returning-int32.js:
(numberOfDFGCompiles): Deleted.
* stress/bitwise-not-fixup-rules.js:
(jscOptions):
(numberOfDFGCompiles): Deleted.
2021-07-12 Saam Barati <sbarati@apple.com>
Run some tests for fewer iterations to prevent test timeouts
https://bugs.webkit.org/show_bug.cgi?id=227879
Reviewed by Mark Lam.
* microbenchmarks/get-by-val-negative-array-index.js:
* microbenchmarks/memcpy-typed-loop-small.js:
* microbenchmarks/put-by-val-negative-array-index.js:
2021-07-12 Saam Barati <sbarati@apple.com>
stress/wasm-loop-consistency.js should require the --useExecutableAllocationFuzz=false JSC option
https://bugs.webkit.org/show_bug.cgi?id=227876
Reviewed by Mark Lam.
* stress/wasm-loop-consistency.js:
2021-07-10 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=227851
Reviewed by Mark Lam.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/harness/compareArray.js:
(assert.compareArray):
* test262/harness/regExpUtils.js:
(buildString):
(): Deleted.
* test262/harness/sta.js:
(Test262Error.thrower):
* test262/harness/testIntl.js:
(getLocaleSupportInfo):
* test262/latest-changes-summary.txt:
* test262/test/annexB/language/literals/regexp/legacy-octal-escape.js:
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-diminuitive.js: Added.
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-excessive.js: Added.
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-negative.js: Added.
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-object.js: Added.
(options.maxByteLength.toString):
(options.maxByteLength.valueOf):
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-poisoned.js: Added.
(options.get maxByteLength):
* test262/test/built-ins/ArrayBuffer/options-maxbytelength-undefined.js: Added.
* test262/test/built-ins/ArrayBuffer/options-non-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/detached-buffer.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/length.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/name.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-resizable.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-resizable.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-sharedarraybuffer.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/detached-buffer.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-accessor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-func.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/length.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/name.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/prop-desc.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/return-resizable.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/this-has-no-arraybufferdata-internal.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-not-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-sharedarraybuffer.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/descriptor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/extensible.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/length.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/name.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-excessive.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-negative.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
* test262/test/built-ins/ArrayBuffer/prototype/resize/nonconstructor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-grow.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-explicit.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-implicit.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-explicit.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-implicit.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink.js: Added.
(catch):
* test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-detached.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-arraybuffer-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-resizable-arraybuffer-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-sharedarraybuffer.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/descriptor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/extensible.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-larger.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-same.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-smaller.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-zero.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-larger.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-same.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-smaller.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-zero.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/length.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/name.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-excessive.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
* test262/test/built-ins/ArrayBuffer/prototype/transfer/nonconstructor.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-detached.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-arraybuffer-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-object.js: Added.
* test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-sharedarraybuffer.js: Added.
* test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getBigInt64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getBigUint64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getFloat32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getFloat64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getInt16/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getInt32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getInt8/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getUint16/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getUint32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/getUint8/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setBigInt64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setBigUint64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setFloat32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setFloat64/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setInt16/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setInt32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setInt8/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setUint16/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setUint32/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/DataView/prototype/setUint8/resizable-buffer.js: Added.
(catch):
* test262/test/built-ins/Error/cause_abrupt.js:
(has):
(options.get cause):
* test262/test/built-ins/Object/hasOwn/descriptor.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_exists.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter.js: Added.
(base.get foo):
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter.js: Added.
(base.get foo):
(base.set foo):
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_setter.js: Added.
(base.set foo):
* test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_nonexistent.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter.js: Added.
(o.get foo):
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter.js: Added.
(o.get foo):
(o.set foo):
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_property_exists.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_setter.js: Added.
(o.set foo):
* test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_enumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_nonenumerable.js: Added.
* test262/test/built-ins/Object/hasOwn/length.js: Added.
* test262/test/built-ins/Object/hasOwn/name.js: Added.
* test262/test/built-ins/Object/hasOwn/not-a-constructor.js: Added.
* test262/test/built-ins/Object/hasOwn/prototype.js: Added.
* test262/test/built-ins/Object/hasOwn/symbol_own_property.js: Added.
* test262/test/built-ins/Object/hasOwn/symbol_property_toPrimitive.js: Added.
(wrapper.Symbol.toPrimitive):
* test262/test/built-ins/Object/hasOwn/symbol_property_toString.js: Added.
(wrapper.toString):
(wrapper.valueOf):
* test262/test/built-ins/Object/hasOwn/symbol_property_valueOf.js: Added.
(wrapper.valueOf):
* test262/test/built-ins/Object/hasOwn/toobject_before_topropertykey.js: Added.
(coercibleKey1.get toString):
(coercibleKey1.get valueOf):
(coercibleKey2.Symbol.toPrimitive):
* test262/test/built-ins/Object/hasOwn/toobject_null.js: Added.
* test262/test/built-ins/Object/hasOwn/toobject_undefined.js: Added.
* test262/test/built-ins/Promise/race/resolve-element-function-extensible.js: Removed.
* test262/test/built-ins/Promise/race/resolve-element-function-name.js: Removed.
* test262/test/built-ins/Promise/race/resolve-element-function-nonconstructor.js: Removed.
* test262/test/built-ins/Promise/race/resolve-element-function-prototype.js: Removed.
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-diminuitive.js: Added.
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-excessive.js: Added.
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-negative.js: Added.
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-object.js: Added.
(options.maxByteLength.toString):
(options.maxByteLength.valueOf):
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-poisoned.js: Added.
(options.get maxByteLength):
* test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-undefined.js: Added.
* test262/test/built-ins/SharedArrayBuffer/options-non-object.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/descriptor.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/extensible.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-larger-size.js: Added.
(catch):
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-same-size.js: Added.
(catch):
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-smaller-size.js: Added.
(catch):
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/length.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/name.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-excessive.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-negative.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-non-number.js: Added.
(newLength.toString):
(newLength.valueOf):
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/nonconstructor.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-arraybuffer-object.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-object.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-resizable-arraybuffer-object.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-sharedarraybuffer.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-accessor.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-func.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/length.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/name.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/prop-desc.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/return-growable.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-has-no-arraybufferdata-internal.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-arraybuffer.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-not-object.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/length.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/name.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-growable.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-growable.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-arraybuffer.js: Added.
* test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
* test262/test/built-ins/Symbol/for/description.js: Added.
(symbol.Symbol.toString):
* test262/test/built-ins/Temporal/now/instant/extensible.js: Added.
* test262/test/built-ins/Temporal/now/instant/length.js: Added.
* test262/test/built-ins/Temporal/now/instant/name.js: Added.
* test262/test/built-ins/Temporal/now/instant/not-a-constructor.js: Added.
* test262/test/built-ins/Temporal/now/instant/prop-desc.js: Added.
* test262/test/built-ins/Temporal/now/instant/return-value-distinct.js: Added.
* test262/test/built-ins/Temporal/now/instant/return-value-prototype.js: Added.
* test262/test/built-ins/Temporal/now/instant/return-value-value.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/extensible.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/length.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/name.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/new-object.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/not-a-constructor.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/prop-desc.js: Added.
* test262/test/built-ins/Temporal/now/timeZone/return-value.js: Added.
* test262/test/built-ins/TypedArray/prototype/at/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/entries/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/every/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.every):
* test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/filter/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.filter):
* test262/test/built-ins/TypedArray/prototype/find/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.find):
* test262/test/built-ins/TypedArray/prototype/findIndex/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.findIndex):
* test262/test/built-ins/TypedArray/prototype/forEach/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.forEach):
* test262/test/built-ins/TypedArray/prototype/includes/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/indexOf/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/join/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/keys/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/map/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.map):
* test262/test/built-ins/TypedArray/prototype/reduce/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduce):
* test262/test/built-ins/TypedArray/prototype/reduceRight/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.reduceRight):
* test262/test/built-ins/TypedArray/prototype/reverse/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-resized.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/slice/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/some/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
(testWithTypedArrayConstructors.TA.array.some):
* test262/test/built-ins/TypedArray/prototype/sort/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArray/prototype/values/return-abrupt-from-this-out-of-bounds.js: Added.
(testWithTypedArrayConstructors.TA.catch):
* test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-resizable-ab.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-different-type.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-same-type.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get var):
(testWithTypedArrayConstructors.onGetSpecies):
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js: Removed.
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws-realm.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-not-numeric-index-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-accessor-desc-throws.js: Added.
(testWithBigIntTypedArrayConstructors.):
(testWithBigIntTypedArrayConstructors.get assert):
(testWithBigIntTypedArrayConstructors.set assert):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-configurable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-enumerable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-writable-throws.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js: Removed.
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws-realm.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index-throws.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-accessor-desc-throws.js: Added.
(testWithTypedArrayConstructors.):
(testWithTypedArrayConstructors.get assert):
(testWithTypedArrayConstructors.set assert):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-configurable-throws.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable-throws.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable-throws.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Delete/key-is-symbol.js:
* test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-auto.js: Added.
(inspect):
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-fixed.js: Added.
(inspect):
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-auto.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-fixed.js: Added.
(testWithTypedArrayConstructors):
* test262/test/intl402/DateTimeFormat/constructor-options-style-conflict.js: Added.
* test262/test/intl402/Locale/prototype/calendars/branding.js: Added.
* test262/test/intl402/Locale/prototype/calendars/name.js: Added.
* test262/test/intl402/Locale/prototype/calendars/output-array.js: Added.
* test262/test/intl402/Locale/prototype/calendars/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/collations/branding.js: Added.
* test262/test/intl402/Locale/prototype/collations/name.js: Added.
* test262/test/intl402/Locale/prototype/collations/output-array-values.js: Added.
* test262/test/intl402/Locale/prototype/collations/output-array.js: Added.
* test262/test/intl402/Locale/prototype/collations/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/hourCycles/branding.js: Added.
* test262/test/intl402/Locale/prototype/hourCycles/name.js: Added.
* test262/test/intl402/Locale/prototype/hourCycles/output-array-values.js: Added.
* test262/test/intl402/Locale/prototype/hourCycles/output-array.js: Added.
* test262/test/intl402/Locale/prototype/hourCycles/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystems/branding.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystems/name.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystems/output-array.js: Added.
* test262/test/intl402/Locale/prototype/numberingSystems/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/textInfo/branding.js: Added.
* test262/test/intl402/Locale/prototype/textInfo/name.js: Added.
* test262/test/intl402/Locale/prototype/textInfo/output-object-keys.js: Added.
* test262/test/intl402/Locale/prototype/textInfo/output-object.js: Added.
* test262/test/intl402/Locale/prototype/textInfo/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/branding.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/name.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/output-array-sorted.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/output-array.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/output-undefined.js: Added.
* test262/test/intl402/Locale/prototype/timeZones/prop-desc.js: Added.
* test262/test/intl402/Locale/prototype/weekInfo/branding.js: Added.
* test262/test/intl402/Locale/prototype/weekInfo/name.js: Added.
* test262/test/intl402/Locale/prototype/weekInfo/output-object-keys.js: Added.
* test262/test/intl402/Locale/prototype/weekInfo/output-object.js: Added.
* test262/test/intl402/Locale/prototype/weekInfo/prop-desc.js: Added.
* test262/test/intl402/Segmenter/constructor/supportedLocalesOf/locales-specific.js:
* test262/test/intl402/Segmenter/prototype/segment/containing/iswordlike.js:
(other_granularities.forEach):
* test262/test/intl402/Segmenter/prototype/segment/containing/one-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
* test262/test/intl402/Segmenter/prototype/segment/containing/out-of-bound-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
* test262/test/intl402/Segmenter/prototype/segment/containing/word-iswordlike.js:
(inputs.forEach):
* test262/test/intl402/Segmenter/prototype/segment/containing/zero-index.js:
(toString):
(valueOf):
(Symbol.toPrimitive):
* test262/test/intl402/Segmenter/prototype/segment/segment-grapheme-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/Segmenter/prototype/segment/segment-sentence-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/Segmenter/prototype/segment/segment-word-iterable.js:
(const.v.of.seg.segment):
* test262/test/intl402/fallback-locales-are-supported.js:
(testWithIntlConstructors):
* test262/test/intl402/supportedLocalesOf-consistent-with-resolvedOptions.js:
(testWithIntlConstructors):
* test262/test/intl402/supportedLocalesOf-unicode-extensions-ignored.js:
(testWithIntlConstructors.):
(testWithIntlConstructors):
* test262/test/language/expressions/arrow-function/extensibility.js: Added.
(assert.Object.isExtensible):
* test262/test/language/expressions/arrow-function/syntax/arrowparameters-cover-initialize-2.js:
* test262/test/language/expressions/assignment/S11.13.1_A7_T1.js: Removed.
* test262/test/language/expressions/assignment/S11.13.1_A7_T2.js: Removed.
* test262/test/language/expressions/assignment/target-member-computed-reference-null.js: Added.
(DummyError):
(prop):
(expr):
(prop.toString):
* test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js: Added.
(DummyError):
(prop):
(expr):
(prop.toString):
* test262/test/language/expressions/assignment/target-member-identifier-reference-null.js: Added.
* test262/test/language/expressions/assignment/target-member-identifier-reference-undefined.js: Added.
* test262/test/language/expressions/assignment/target-super-computed-reference-null.js: Added.
(C.m):
(C):
* test262/test/language/expressions/assignment/target-super-identifier-reference-null.js: Added.
(C.m):
(C):
* test262/test/language/expressions/delete/member-computed-reference-null.js: Added.
* test262/test/language/expressions/delete/member-computed-reference-undefined.js: Added.
* test262/test/language/expressions/delete/member-identifier-reference-null.js: Added.
* test262/test/language/expressions/delete/member-identifier-reference-undefined.js: Added.
* test262/test/language/expressions/delete/super-property-null-base.js: Added.
(C.m):
(C):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration-abrupt.js: Added.
(options.ownKeys):
(options.then):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration.js: Added.
(options.ownKeys):
(options.get _):
(options.getOwnPropertyDescriptor):
(options.then):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-non-object.js: Added.
(test):
(string_appeared_here.then):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-undefined.js: Added.
(then):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-value-abrupt.js: Added.
(assert.get string_appeared_here):
(then):
* test262/test/language/expressions/dynamic-import/2nd-param-assert-value-non-string.js: Added.
(test):
(string_appeared_here.then):
* test262/test/language/expressions/dynamic-import/2nd-param-await-expr.js: Added.
* test262/test/language/expressions/dynamic-import/2nd-param-await-ident.js: Added.
(await):
(await.undefined.then):
* test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-return.js: Added.
(iter):
* test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-throw.js: Added.
(throwError):
* test262/test/language/expressions/dynamic-import/2nd-param-evaluation-sequence.js: Added.
* test262/test/language/expressions/dynamic-import/2nd-param-get-assert-error.js: Added.
(options.get assert):
(options.then):
* test262/test/language/expressions/dynamic-import/2nd-param-in.js: Added.
(promise.then):
* test262/test/language/expressions/dynamic-import/2nd-param-non-object.js: Added.
(test):
(string_appeared_here.then):
* test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-fulfill.js: Added.
(then):
* test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-reject.js: Added.
(import.toString):
(then):
* test262/test/language/expressions/dynamic-import/2nd-param-yield-expr.js: Added.
(iter):
(promise.then):
* test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-invalid.js: Added.
* test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-valid.js: Added.
(yield.then):
* test262/test/language/expressions/dynamic-import/2nd-param_FIXTURE.js: Added.
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js:
(let.f):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js:
(async await):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js:
(async await):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js: Removed.
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js:
(async f):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js:
(async f):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js:
(async f):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js: Removed.
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js:
(async f):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js:
(DONOTEVALUATE):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js:
(fn):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js:
(fn):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js: Removed.
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js:
(with.import):
* test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js:
(with):
* test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js:
* test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js: Removed.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js.
(let.f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js.
(let.f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js.
(async await):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
(async await):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js.
(async f):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
(fn):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
(fn):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js.
(fn):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js.
(fn):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js.
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
(with.import):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
(with.import):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js.
(with):
* test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js.
(with):
* test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-first.js: Added.
* test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-second.js: Added.
* test262/test/language/expressions/dynamic-import/trailing-comma-fulfill.js: Added.
(then):
* test262/test/language/expressions/dynamic-import/trailing-comma-reject.js: Added.
(import.toString):
(then):
* test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js:
* test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js:
* test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js:
* test262/test/language/import/json-extensibility-array.js: Added.
* test262/test/language/import/json-extensibility-object.js: Added.
* test262/test/language/import/json-idempotency-indirect_FIXTURE.js: Added.
* test262/test/language/import/json-idempotency.js: Added.
(then):
* test262/test/language/import/json-invalid.js: Added.
* test262/test/language/import/json-named-bindings.js: Added.
* test262/test/language/import/json-value-array.js: Added.
* test262/test/language/import/json-value-boolean.js: Added.
* test262/test/language/import/json-value-null.js: Added.
* test262/test/language/import/json-value-number.js: Added.
* test262/test/language/import/json-value-object.js: Added.
* test262/test/language/import/json-value-string.js: Added.
* test262/test/language/import/json-via-namespace.js: Added.
* test262/test/language/literals/numeric/legacy-octal-integer-strict.js:
* test262/test/language/literals/numeric/legacy-octal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/legacy-octal-integer.js.
* test262/test/language/literals/numeric/non-octal-decimal-integer-strict.js:
* test262/test/language/literals/numeric/non-octal-decimal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/non-octal-decimal-integer.js.
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js: Added.
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js: Added.
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js:
* test262/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js:
* test262/test/language/literals/string/legacy-octal-escape-sequence-strict.js:
* test262/test/language/literals/string/legacy-octal-escape-sequence.js: Renamed from JSTests/test262/test/annexB/language/literals/string/legacy-octal-escape-sequence.js.
* test262/test/language/module-code/early-dup-assert-key-export.js: Added.
* test262/test/language/module-code/early-dup-assert-key-import-nobinding.js: Added.
* test262/test/language/module-code/early-dup-assert-key-import-withbinding.js: Added.
* test262/test/language/module-code/early-export-ill-formed-string.js:
* test262/test/language/module-code/eval-gtbndng-indirect-faux-assertion.js: Added.
* test262/test/language/module-code/import-assertion-1_FIXTURE.js: Added.
* test262/test/language/module-code/import-assertion-2_FIXTURE.js: Added.
* test262/test/language/module-code/import-assertion-3_FIXTURE.js: Added.
* test262/test/language/module-code/import-assertion-empty.js: Added.
* test262/test/language/module-code/import-assertion-key-identifiername.js: Added.
* test262/test/language/module-code/import-assertion-key-string-double.js: Added.
* test262/test/language/module-code/import-assertion-key-string-single.js: Added.
* test262/test/language/module-code/import-assertion-many.js: Added.
* test262/test/language/module-code/import-assertion-newlines.js: Added.
* test262/test/language/module-code/import-assertion-trlng-comma.js: Added.
* test262/test/language/module-code/import-assertion-value-string-double.js: Added.
* test262/test/language/module-code/import-assertion-value-string-single.js: Added.
* test262/test/language/module-code/instn-star-as-props-dflt-skip.js:
* test262/test/language/module-code/top-level-await/dfs-invariant-async_FIXTURE.js: Added.
* test262/test/language/module-code/top-level-await/dfs-invariant-direct-1_FIXTURE.js: Added.
* test262/test/language/module-code/top-level-await/dfs-invariant-direct-2_FIXTURE.js: Added.
* test262/test/language/module-code/top-level-await/dfs-invariant-indirect_FIXTURE.js: Added.
* test262/test/language/module-code/top-level-await/dfs-invariant.js: Added.
* test262/test/language/statements/for-of/head-lhs-async-escaped.js: Added.
* test262/test/language/statements/for-of/head-lhs-async-parens.js: Added.
* test262/test262-Revision.txt:
2021-07-08 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update Intl.Locale test after AppleICU update
https://bugs.webkit.org/show_bug.cgi?id=227788
Reviewed by Keith Miller.
This patch fixes Intl.Locale test since AppleICU fixes the ICU bug and starts producing the right results.
* stress/intl-long-locale-id-maximize-minimize.js:
(shouldBe):
2021-07-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Fix Object.assign fast path to accept undefined/null
https://bugs.webkit.org/show_bug.cgi?id=227769
rdar://80264271
Reviewed by Saam Barati.
* stress/object-assign-undefined.js: Added.
(test):
2021-07-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, reverting r279546, r279554, r279558 and r279567.
https://bugs.webkit.org/show_bug.cgi?id=227732
Speedometer/jQuery-TodoMVC 2-3% regression
Reverted changesets:
"[WebIDL] Rework runtime enabled properties leveraging
PropertyCallback"
https://bugs.webkit.org/show_bug.cgi?id=227275
https://commits.webkit.org/r279546
"[WebIDL] Generate constructor's hash table in
GenerateConstructorHelperMethods"
https://bugs.webkit.org/show_bug.cgi?id=227668
https://commits.webkit.org/r279554
"[WebIDL] Simplify generation of runtime conditionally read-
write attributes"
https://bugs.webkit.org/show_bug.cgi?id=227672
https://commits.webkit.org/r279558
"Use AbortSignal's [PrivateIdentifier] whenSignalAborted()
static method"
https://bugs.webkit.org/show_bug.cgi?id=227673
https://commits.webkit.org/r279567
2021-07-06 Saam Barati <sbarati@apple.com>
Run microbenchmarks/memcpy-typed-loop-small.js for fewer iterations to avoid timeouts
https://bugs.webkit.org/show_bug.cgi?id=227717
Reviewed by Robin Morisset.
* microbenchmarks/memcpy-typed-loop-small.js:
2021-07-05 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize Object.assign and putDirectInternal
https://bugs.webkit.org/show_bug.cgi?id=227677
Reviewed by Filip Pizlo.
* microbenchmarks/object-assign-replace.js: Added.
(test):
* microbenchmarks/object-assign-transition.js: Added.
(test):
2021-07-03 Alexey Shvayka <shvaikalesh@gmail.com>
[WebIDL] Rework runtime enabled properties leveraging PropertyCallback
https://bugs.webkit.org/show_bug.cgi?id=227275
Reviewed by Saam Barati.
* stress/lazy-property-cross-realm.js: Added.
* stress/lazy-property-get-cache.js: Added.
* stress/lazy-property-gopd.js: Added.
* stress/lazy-property-hasownproperty-cache.js: Added.
* stress/lazy-property-put-cache.js: Added.
2021-06-30 Saam Barati <sbarati@apple.com>
Turn off data ICs by default
https://bugs.webkit.org/show_bug.cgi?id=227334
<rdar://problem/79802812>
Reviewed by Yusuke Suzuki.
* microbenchmarks/deltablue-varargs.js:
* microbenchmarks/richards-try-catch.js:
2021-06-30 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Stop generating default parameter code if class constructor is called without 'new'
https://bugs.webkit.org/show_bug.cgi?id=227547
rdar://78821453
Reviewed by Mark Lam.
* stress/calling-non-callable-constructors.js: Added.
(shouldThrow):
2021-06-29 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Private names should be handled by usedVariables mechanism
https://bugs.webkit.org/show_bug.cgi?id=227476
rdar://76049469
Reviewed by Saam Barati.
2021-06-30 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip interpreter-wasm.js on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227295
Reviewed by Caio Araujo Neponoceno de Lima.
Changed the testcase to be guarded by $vm.isWasmSupported(), so the
test will be executed once wasm is available in the arch
* microbenchmarks/interpreter-wasm.js:
(key.in.Module.Module.hasOwnProperty): Deleted.
(quit_): Deleted.
(locateFile): Deleted.
(ENVIRONMENT_IS_NODE.read_): Deleted.
(ENVIRONMENT_IS_NODE.readBinary): Deleted.
(ENVIRONMENT_IS_NODE.quit_): Deleted.
(ENVIRONMENT_IS_NODE.Module.string_appeared_here): Deleted.
(else.read_): Deleted.
(else.readBinary): Deleted.
(else.quit_): Deleted.
(else): Deleted.
(else.xhr.onload): Deleted.
(else.readAsync): Deleted.
(else.setWindowTitle): Deleted.
(key.in.moduleOverrides.moduleOverrides.hasOwnProperty): Deleted.
(dynamicAlloc): Deleted.
(getNativeTypeSize): Deleted.
(warnOnce): Deleted.
(convertJsFunctionToWasm): Deleted.
(addFunctionWasm): Deleted.
(removeFunctionWasm): Deleted.
(): Deleted.
(setTempRet0): Deleted.
(setValue): Deleted.
(assert): Deleted.
(getCFunc): Deleted.
(toC.string_appeared_here): Deleted.
(convertReturnValue): Deleted.
(ccall): Deleted.
(UTF8ArrayToString): Deleted.
(UTF8ToString): Deleted.
(stringToUTF8Array): Deleted.
(stringToUTF8): Deleted.
(lengthBytesUTF8): Deleted.
(allocateUTF8OnStack): Deleted.
(writeArrayToMemory): Deleted.
(writeAsciiToMemory): Deleted.
(updateGlobalBufferAndViews): Deleted.
(callRuntimeCallbacks): Deleted.
(preRun): Deleted.
(initRuntime): Deleted.
(preMain): Deleted.
(exitRuntime): Deleted.
(postRun): Deleted.
(addOnPreRun): Deleted.
(addOnPostRun): Deleted.
(addRunDependency): Deleted.
(removeRunDependency): Deleted.
(hasPrefix): Deleted.
(isDataURI): Deleted.
(isFileURI): Deleted.
(getBinary): Deleted.
(getBinaryPromise): Deleted.
(createWasm.receiveInstance): Deleted.
(createWasm.receiveInstantiatedSource): Deleted.
(createWasm.instantiateArrayBuffer): Deleted.
(createWasm.instantiateAsync.): Deleted.
(createWasm.instantiateAsync): Deleted.
(createWasm): Deleted.
(__ATINIT__.push.func): Deleted.
(demangle): Deleted.
(demangleAll): Deleted.
(_emscripten_get_sbrk_ptr): Deleted.
(_emscripten_memcpy_big): Deleted.
(abortOnCannotGrowMemory): Deleted.
(_emscripten_resize_heap): Deleted.
(PATH.splitPath): Deleted.
(PATH.normalizeArray): Deleted.
(PATH.normalize): Deleted.
(PATH.dirname): Deleted.
(PATH.basename): Deleted.
(PATH.extname): Deleted.
(PATH.join): Deleted.
(PATH.join2): Deleted.
(SYSCALLS.printChar): Deleted.
(SYSCALLS.getStr): Deleted.
(SYSCALLS.get64): Deleted.
(_fd_write): Deleted.
(_setTempRet0): Deleted.
(___wasm_call_ctors.Module.string_appeared_here): Deleted.
(_main.Module.string_appeared_here): Deleted.
(_malloc.Module.string_appeared_here): Deleted.
(___errno_location.Module.string_appeared_here): Deleted.
(_free.Module.string_appeared_here): Deleted.
(stackSave.Module.string_appeared_here): Deleted.
(stackAlloc.Module.string_appeared_here): Deleted.
(stackRestore.Module.string_appeared_here): Deleted.
(__growWasmMemory.Module.string_appeared_here): Deleted.
(dynCall_ii.Module.string_appeared_here): Deleted.
(dynCall_iiii.Module.string_appeared_here): Deleted.
(dynCall_jiji.Module.string_appeared_here): Deleted.
(ExitStatus): Deleted.
(dependenciesFulfilled): Deleted.
(callMain): Deleted.
(run.doRun): Deleted.
(run): Deleted.
(exit): Deleted.
2021-06-25 Guillaume Emont <guijemont@igalia.com>
Unskip stress/call-apply-exponential-bytecode-size.js on most platforms
https://bugs.webkit.org/show_bug.cgi?id=227354
Reviewed by Yusuke Suzuki.
Instead of skipping, we increase the JIT memory size for this test on
platforms that have less than 64 MB by default.
* stress/call-apply-exponential-bytecode-size.js:
2021-06-25 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip structure-storedPrototype-should-only-assert-on-the-mutator-thread.js on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227222
Tested with 50 iterations in both arm and mips.
Unreviewed Gardening.
* stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js:
2021-06-25 Paulo Matos <pmatos@igalia.com>
Unskip materialized-regexp-has-correct-last-index-set-by-match on arm and mips
https://bugs.webkit.org/show_bug.cgi?id=227213
Unreviewed Gardening.
* stress/materialized-regexp-has-correct-last-index-set-by-match.js:
2021-06-25 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip materialize-regexp-cyclic-regexp.js on ARM and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227223
Tested with 50 iterations in both arm and mips.
Unreviewed Gardening.
* stress/materialize-regexp-cyclic-regexp.js:
2021-06-24 Asumu Takikawa <asumu@igalia.com>
[WASM-Function-References] Add support for (ref null? $t) type constructor
https://bugs.webkit.org/show_bug.cgi?id=226296
Adds additional tests for uses of `(ref $t)` and `(ref null $t)`
types, including with non-null extern/funcrefs.
Reviewed by Yusuke Suzuki.
* wasm/function-references/ref_types.js: Added.
(module):
(async testRefTypeLocal):
(async testNonNullRefTypeLocal):
(async testRefTypeInSignature):
(async testRefTypeParamCheck):
(async testRefGlobalCheck):
(async testExternFuncrefNonNullCheck):
(async testExternrefCompatibility):
(async testNonNullExternrefIncompatible):
(async testFuncrefCompatibility):
(async testNonNullFuncrefIncompatible):
* wasm/wasm.json:
2021-06-24 Guillaume Emont <guijemont@igalia.com>
Improve our checking of NaN values in DataView tests
https://bugs.webkit.org/show_bug.cgi?id=227347
Reviewed by Yusuke Suzuki.
This allows the merging of dataview-jit-set-nan.js and
dataview-jit-set.js.
* stress/dataview-jit-set-nan.js: Removed.
* stress/dataview-jit-set.js:
(test5):
(test6):
2021-06-24 Mikhail R. Gadelha <mikhail@igalia.com>
Unskip arguments-properties-order.js on MIPS
https://bugs.webkit.org/show_bug.cgi?id=227254
No failures after 50 iterations. Also tested on Loongson 3A4000 (in 32-bits mode).
Unreviewed Gardening.
* stress/arguments-properties-order.js:
2021-06-24 Xan Lopez <xan@igalia.com>
[JSC] Implement returnEarlyFromInfiniteLoopsForFuzzing for 32bits
https://bugs.webkit.org/show_bug.cgi?id=227290
Reviewed by Mark Lam.
Now that we can return early from infinite (actual or just
extremely long running) loops on 32bits, we can pass these tests.
* stress/construct-return-early-from-infinite-loop-for-fuzzer.js: unskip for 32bits.
* stress/early-return-from-builtin2.js: ditto.
* stress/validate-does-gc-with-return-early-from-infinite-loop-2.js: ditto.
* stress/validate-does-gc-with-return-early-from-infinite-loop.js: ditto.
2021-06-23 Saam Barati <sbarati@apple.com>
Bound stress/put-by-id-flags with a fixed number of iterations
https://bugs.webkit.org/show_bug.cgi?id=227305
Reviewed by Mark Lam.
* stress/put-by-id-flags.js:
(numberOfDFGCompiles): Deleted.
2021-06-23 Saam Barati <sbarati@apple.com>
Run typedarray-intrinsic-getters-change-prototype for a fixed set of iterations
https://bugs.webkit.org/show_bug.cgi?id=227304
Reviewed by Mark Lam.
* stress/typedarray-intrinsic-getters-change-prototype.js:
(body):
2021-06-22 Saam Barati <sbarati@apple.com>
Don't assume stress/out-of-memory-while-constructing-BytecodeGenerator.js will OOM
https://bugs.webkit.org/show_bug.cgi?id=227263
Reviewed by Yusuke Suzuki.
* stress/out-of-memory-while-constructing-BytecodeGenerator.js:
2021-06-22 Saam Barati <sbarati@apple.com>
Run detach-buffer-during-iteration for fewer iterations
https://bugs.webkit.org/show_bug.cgi?id=227262
Reviewed by Yusuke Suzuki.
* stress/detach-buffer-during-iteration.js:
2021-06-22 Saam Barati <sbarati@apple.com>
Run microbenchmarks/interpreter-wasm under runDefault only
https://bugs.webkit.org/show_bug.cgi?id=227261
Reviewed by Robin Morisset.
* microbenchmarks/interpreter-wasm.js:
2021-06-22 Saam Barati <sbarati@apple.com>
jitCompileAndSetHeuristics shouldn't return true when we fail to compile
https://bugs.webkit.org/show_bug.cgi?id=227155
Reviewed by Tadeu Zagallo.
* microbenchmarks/interpreter-wasm.js:
* microbenchmarks/memcpy-wasm-large.js:
* microbenchmarks/memcpy-wasm-medium.js:
* microbenchmarks/memcpy-wasm-small.js:
* microbenchmarks/memcpy-wasm.js:
* stress/wasm-error-message-cross-threads.js:
2021-06-22 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip stress/elidable-new-object-roflcopter-then-exit.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227251
Unreviewed gardening.
No failures on either platform after 100 iterations.
* stress/elidable-new-object-roflcopter-then-exit.js:
2021-06-22 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip microbenchmarks/redefine-property-data-dictionary.js on MIPS/ARM
https://bugs.webkit.org/show_bug.cgi?id=227252
Unreviewed gardening.
No failures on either platform after 100 iterations.
* microbenchmarks/redefine-property-data-dictionary.js:
2021-06-22 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip stress/array-species-create-should-handle-masquerader.js on mips
https://bugs.webkit.org/show_bug.cgi?id=227249
Unreviewed gardening.
No failure after 60 iterations.
* stress/array-species-create-should-handle-masquerader.js:
2021-06-21 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Add JIT ICs for `#x in obj` feature
https://bugs.webkit.org/show_bug.cgi?id=226146
Reviewed by Saam Barati.
* microbenchmarks/has-private-brand.js: Added.
* microbenchmarks/has-private-name.js: Added.
2021-06-21 Xan Lopez <xan@igalia.com>
[JSC] Fix consistency check during stack splitting in Wasm::LLIntGenerator::addLoop
https://bugs.webkit.org/show_bug.cgi?id=226012
Reviewed by Tadeu Zagallo.
* stress/wasm-loop-consistency.js: Added.
(vm.isWasmSupported):
2021-06-21 Yusuke Suzuki <ysuzuki@apple.com>
Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
https://bugs.webkit.org/show_bug.cgi?id=227180
Reviewed by Keith Miller.
* stress/shared-wasm-memory-with-zero-byte.js: Added.
2021-06-21 Xan Lopez <xan@igalia.com>
[JSC] Reenable ChakraCore/test/Math/max.js on ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=227209
Reviewed by Adrian Perez de Castro.
* ChakraCore.yaml: reenable the test, should be working fine now.
2021-06-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Add ValueOf fast path in toPrimitive
https://bugs.webkit.org/show_bug.cgi?id=226948
Reviewed by Ross Kirsling.
* microbenchmarks/valueof-via-toprimitive.js: Added.
2021-06-17 Saam Barati <sbarati@apple.com>
Make microbenchmarks/delete-property-from-prototype-chain not time out on debug builds
https://bugs.webkit.org/show_bug.cgi?id=227148
Reviewed by Mark Lam.
* microbenchmarks/delete-property-from-prototype-chain.js:
2021-06-16 Tadeu Zagallo <tzagallo@apple.com>
AssemblyHelpers should save/restore callee save FPRs
https://bugs.webkit.org/show_bug.cgi?id=227052
<rdar://77080162>
Reviewed by Mark Lam.
* stress/callee-save-fpr.js: Added.
(_f):
(_g):
(_h):
(_i):
(assertEqual):
2021-06-15 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Optimize JSON.parse with small content by dropping single character Identifier pool
https://bugs.webkit.org/show_bug.cgi?id=227057
Reviewed by Sam Weinig.
* microbenchmarks/flight-todomvc-json.js: Added.
(test):
2021-06-14 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Workaround ICU uloc_addLikelySubtags / uloc_minimizeSubtags bugs
https://bugs.webkit.org/show_bug.cgi?id=226996
rdar://79250513
Reviewed by Ross Kirsling.
* stress/intl-long-locale-id-maximize-minimize.js: Added.
(shouldBe):
(throw.new.Error):
2021-06-13 Saam Barati <sbarati@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
* stress/short-circuit-read-modify-write-cant-write-dst-before-tdz-check.js: Added.
(let.result.eval.try.captureV):
(catch):
2021-06-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use ResolvedClosureVar to get brand from scope
https://bugs.webkit.org/show_bug.cgi?id=226677
rdar://78802869
Reviewed by Saam Barati.
* stress/private-access-nested-eval.js: Added.
(shouldThrow):
(shouldThrow.prototype.x):
(shouldThrow.prototype.m.C.prototype.z):
(shouldThrow.prototype.m.C.prototype.a):
(shouldThrow.prototype.m.C):
(shouldThrow.prototype.m):
* stress/private-access-nested.js: Added.
(shouldThrow):
(shouldThrow.prototype.x):
(shouldThrow.prototype.m.C.prototype.z):
(shouldThrow.prototype.m.C.prototype.a):
(shouldThrow.prototype.m.C):
(shouldThrow.prototype.m):
2021-06-07 Alexey Shvayka <shvaikalesh@gmail.com>
Unreviewed, reland r276592 with a fix for put() override in prototype chain of a JSProxy
https://bugs.webkit.org/show_bug.cgi?id=226185
* microbenchmarks/put-slow-no-cache-array.js: Added.
* microbenchmarks/put-slow-no-cache-function.js: Added.
* microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
* microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
* microbenchmarks/put-slow-no-cache.js: Added.
* microbenchmarks/reflect-set-with-receiver.js: Added.
* stress/custom-get-set-proto-chain-put.js:
* stress/module-namespace-access-set-fails.js: Added.
* stress/put-non-reified-static-accessor-or-custom.js: Added.
* stress/put-non-reified-static-function-or-custom.js: Added.
* stress/put-to-primitive-non-reified-static-custom.js: Added.
* stress/put-to-primitive.js: Added.
* stress/put-to-proto-chain-overrides-put.js:
Rework to always test new objects, add JSProxy coverage, and assert that receiver has own property.
* stress/typed-array-canonical-numeric-index-string-set.js: Added.
2021-06-07 Saam Barati <sbarati@apple.com>
Short circuit read modify write nodes emit byte code that uses the wrong locals
https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
* stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js: Added.
(eval):
2021-06-07 Robin Morisset <rmorisset@apple.com>
Optimize compareStrictEq when neither side is a double and at least one is neither a string nor a BigInt
https://bugs.webkit.org/show_bug.cgi?id=226676
Reviewed by Filip Pizlo.
I made two variants of the already existing poly-stricteq microbenchmarks with different types in the array.
I also tweaked all three so that we more reliably reach the FTL.
Finally I added a stress-test to verify that I did not introduce an OSR exit bug.
* microbenchmarks/poly-stricteq-not-double-nor-string.js: Added.
(foo):
(test):
* microbenchmarks/poly-stricteq-not-double.js: Added.
(foo):
(test):
* microbenchmarks/poly-stricteq.js:
(foo):
(test):
* stress/poly-stricteq-not-double-nor-string-fail.js: Added.
(foo):
(test):
2021-06-04 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Private static method should define privateClassBrandIdentifier in class-scope
https://bugs.webkit.org/show_bug.cgi?id=226656
rdar://78313139
Reviewed by Keith Miller.
* stress/private-in-error.js: Added.
(shouldThrow):
(x):
(prototype.foo):
* stress/private-static-method-declaration-error.js: Added.
(shouldThrow):
(prototype.get x):
(prototype.foo.D.a):
(prototype.foo.D.prototype.b):
(prototype.foo.D):
(prototype.foo):
2021-06-04 Mark Lam <mark.lam@apple.com>
Placate exception checker validation in objectPrototypeHasOwnProperty.
https://bugs.webkit.org/show_bug.cgi?id=226651
rdar://78861296
Reviewed by Keith Miller.
* stress/placate-exception-checker-in-objectPrototypeHasOwnProperty.js: Added.
2021-06-03 Filip Pizlo <fpizlo@apple.com>
DFG should speculate on CompareStrictEq(@x, @x)
https://bugs.webkit.org/show_bug.cgi?id=226621
Reviewed by Mark Lam.
* microbenchmarks/untyped-stricteq-self.js: Added.
(foo):
* stress/untyped-stricteq-self-fail.js: Added.
(bar):
(foo):
2021-06-04 Keith Miller <keith_miller@apple.com>
Fix tests that fail under executable allocation fuzzing
https://bugs.webkit.org/show_bug.cgi?id=226593
Reviewed by Mark Lam.
* microbenchmarks/memcpy-wasm-large.js:
(typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
(typeof.WebAssembly.string_appeared_here.catch):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
* microbenchmarks/memcpy-wasm-medium.js:
(typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
(typeof.WebAssembly.string_appeared_here.catch):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
* microbenchmarks/memcpy-wasm-small.js:
(typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
(typeof.WebAssembly.string_appeared_here.catch):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
* microbenchmarks/memcpy-wasm.js:
(typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
(typeof.WebAssembly.string_appeared_here.catch):
(typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
* stress/bit-op-with-object-returning-int32.js:
(numberOfDFGCompiles):
(bitOr): Deleted.
(bitXor): Deleted.
(bitNot): Deleted.
(bitLShift): Deleted.
* stress/bitwise-not-fixup-rules.js:
(numberOfDFGCompiles):
(let.o.valueOf): Deleted.
2021-06-04 Tadeu Zagallo <tzagallo@apple.com>
Optimize Function.prototype.toString
https://bugs.webkit.org/show_bug.cgi?id=226418
<rdar://77861846>
Reviewed by Saam Barati.
* microbenchmarks/function-to-string.js: Added.
(f):
(C):
(C.prototype.method1):
(C.prototype.method2):
(test):
(test2):
2021-06-03 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Implement JIT ICs for InByVal
https://bugs.webkit.org/show_bug.cgi?id=226563
Reviewed by Saam Barati.
* microbenchmarks/in-by-val-int32.js: Added.
* microbenchmarks/in-by-val-string-index.js: Added.
* microbenchmarks/in-by-val-symbol.js: Added.
2021-06-03 Mark Lam <mark.lam@apple.com>
Fix an ASSERT in objectPrototypeHasOwnProperty() to account for TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=226609
rdar://78465046
Reviewed by Robin Morisset.
* stress/termination-exception-in-objectPrototypeHasOwnProperty.js: Added.
2021-06-03 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Make $vm's accessor test functions robust against primitive |this|
https://bugs.webkit.org/show_bug.cgi?id=226591
Reviewed by Saam Barati.
* stress/test-static-accessor-on-primitive.js: Added.
(shouldThrow):
2021-05-28 Robin Morisset <rmorisset@apple.com>
Fix LikelyDenseUnsignedIntegerSet::clear()
https://bugs.webkit.org/show_bug.cgi?id=226388
rdar://78607433
Reviewed by Mark Lam.
* stress/stack-allocation-regression.js: Added.
(foo):
2021-05-28 Saam Barati <sbarati@apple.com>
Don't sink arguments past the context of the inline call frame they were created in
https://bugs.webkit.org/show_bug.cgi?id=226363
<rdar://78392801>
Reviewed by Filip Pizlo.
* stress/dont-sink-arguments-past-inline-call-frame.js: Added.
(foo):
(fooWrap):
(empty):
(bar):
2021-05-22 Ross Kirsling <ross.kirsling@sony.com>
Support Ergonomic Brand Checks proposal (`#x in obj`)
https://bugs.webkit.org/show_bug.cgi?id=221093
Reviewed by Caio Araujo Neponoceno de Lima.
* stress/private-in.js: Added.
* test262/config.yaml: Add feature flag.
2021-05-21 Angelos Oikonomopoulos <angelos@igalia.com>
Unskip type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value on MIPS
https://bugs.webkit.org/show_bug.cgi?id=226011
Unreviewed gardening.
Appears to no longer be flaky.
* stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js:
2021-05-20 Saam Barati <sbarati@apple.com>
[ Catalina Release JSC] A large number of JSC test appear to be flaky failing
https://bugs.webkit.org/show_bug.cgi?id=225998
<rdar://problem/78235001>
Reviewed by Yusuke Suzuki.
* stress/dont-link-virtual-calls-on-compiler-thread.js: Added.
2021-05-19 Robin Morisset <rmorisset@apple.com>
Fix typo in AirUseCounts
https://bugs.webkit.org/show_bug.cgi?id=225977
rdar://78210501
Reviewed by Mark Lam.
Add the testcase found by Tuomas.
* stress/register-allocator-stress.js: Added.
(foo):
2021-05-18 Keith Miller <keith_miller@apple.com>
Temporarily revert r276592 as it breaks some native apps
https://bugs.webkit.org/show_bug.cgi?id=225917
Unreviewed, revert.
* microbenchmarks/put-slow-no-cache-array.js: Removed.
* microbenchmarks/put-slow-no-cache-function.js: Removed.
* microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
* microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
* microbenchmarks/put-slow-no-cache.js: Removed.
* microbenchmarks/reflect-set-with-receiver.js: Removed.
* stress/custom-get-set-proto-chain-put.js:
(getObjects):
(let.base.of.getBases):
* stress/module-namespace-access-set-fails.js: Removed.
* stress/put-non-reified-static-accessor-or-custom.js: Removed.
* stress/put-non-reified-static-function-or-custom.js: Removed.
* stress/put-to-primitive-non-reified-static-custom.js: Removed.
* stress/put-to-primitive.js: Removed.
* stress/put-to-proto-chain-overrides-put.js: Removed.
* stress/typed-array-canonical-numeric-index-string-set.js: Removed.
2021-05-17 Alexey Shvayka <shvaikalesh@gmail.com>
REGRESSION (r271119): Object methods defined with shorthand notation cannot access "caller" in non-strict mode
https://bugs.webkit.org/show_bug.cgi?id=225277
Reviewed by Darin Adler.
* stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Now covers #157461 and #157863.
* stress/function-caller-cross-realm-via-call-apply.js: Added, coverage for #34553.
* stress/function-hidden-as-caller.js: Also adds test case for #102276.
2021-05-16 Saam Barati <sbarati@apple.com>
DFGVarargsForwardingPhase shouldn't consult Flush
https://bugs.webkit.org/show_bug.cgi?id=225824
Reviewed by Filip Pizlo and Yusuke Suzuki.
* microbenchmarks/tail-call-forward-arguments-arguments-elimination.js: Added.
2021-05-15 Alexey Shvayka <shvaikalesh@gmail.com>
Turn callGetter() / callSetter() into instance methods
https://bugs.webkit.org/show_bug.cgi?id=225831
Reviewed by Ross Kirsling.
* microbenchmarks/put-slow-no-cache-setter.js: Added.
2021-05-07 Ross Kirsling <ross.kirsling@sony.com>
[JSC] Error#cause must recognize explicit undefined
https://bugs.webkit.org/show_bug.cgi?id=225535
Reviewed by Alexey Shvayka.
* test262/config.yaml:
Re-enable tests for this feature; they were all failing due to this quirk.
2021-05-07 Ross Kirsling <ross.kirsling@sony.com>
Update test262 (2021.05.07)
https://bugs.webkit.org/show_bug.cgi?id=225536
Reviewed by Alexey Shvayka.
* test262/config.yaml:
* test262/expectations.yaml:
* test262/latest-changes-summary.txt:
* test262/test/:
* test262/test262-Revision.txt:
2021-05-06 Mark Lam <mark.lam@apple.com>
Forbid further execution in jsc shell if execution is terminated.
https://bugs.webkit.org/show_bug.cgi?id=225410
rdar://77548608
Reviewed by Michael Saboff.
* stress/jsc-shell-forbid-execution-after-termination.js: Added.
2021-05-05 Saam Barati <sbarati@apple.com>
Update tests to use collectExtraSamplingProfilerData instead of collectSamplingProfilerDataForJSCShell
https://bugs.webkit.org/show_bug.cgi?id=225398
Reviewed by Mark Lam.
I forgot to update the tests to use the new option name.
* stress/sampling-profiler-code-origin.js:
* stress/sampling-profiler-richards.js:
2021-05-03 Mark Lam <mark.lam@apple.com>
Fix syntax error message for AUTOPLUSPLUS token.
https://bugs.webkit.org/show_bug.cgi?id=225308
rdar://76830934
Reviewed by Saam Barati.
* stress/prefix-plusplus-syntax-error-should-say-plusplus.js: Added.
2021-05-03 Dmitry Bezhetskov <dbezhetskov@igalia.com>
[WASM-Function-References] Add call_ref instruction
https://bugs.webkit.org/show_bug.cgi?id=222903
Reviewed by Yusuke Suzuki.
Add basic tests for new call_ref instruction:
https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
Add tests for calling same-instance wasm function, foreign-instance
wasm function and for calling imported js function.
* wasm.yaml:
* wasm/function-references/call_ref.js: Added.
(module):
(async basics):
(async indirectCall):
(async importHostCall):
* wasm/wasm.json:
2021-04-28 Mark Lam <mark.lam@apple.com>
Fix exception assertions in light of the TerminationException.
https://bugs.webkit.org/show_bug.cgi?id=225128
rdar://76694909
Reviewed by Robin Morisset.
* stress/suppress-TerminationException-in-JSFunction-prototypeForConstruction.js: Added.
2021-04-27 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Skip tests failing on Loongson 3A4000
https://bugs.webkit.org/show_bug.cgi?id=225091
Reviewed by Yusuke Suzuki.
This new hardware is much faster when it comes to running JSC tests (and
hopefully more reliable than the ci20 boards currently in use), so skip the
couple of tests that fail, so that we can test the Loongson box in production.
* ChakraCore.yaml:
* stress/arguments-properties-order.js:
2021-04-26 Mark Lam <mark.lam@apple.com>
%TypedArray%.prototype.sort() should not use a regular array as a temp buffer.
https://bugs.webkit.org/show_bug.cgi?id=225062
rdar://77021547
Reviewed by Yusuke Suzuki.
* stress/typedarray-sort-should-not-use-a-regular-array-as-temp-buffer.js: Added.
2021-04-26 Alexey Shvayka <shvaikalesh@gmail.com>
[JSC] OrdinarySet should invoke custom [[Set]] methods
https://bugs.webkit.org/show_bug.cgi?id=217916
Reviewed by Yusuke Suzuki.
* microbenchmarks/put-slow-no-cache-array.js: Added.
* microbenchmarks/put-slow-no-cache-function.js: Added.
* microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
* microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
* microbenchmarks/put-slow-no-cache.js: Added.
* microbenchmarks/reflect-set-with-receiver.js: Added.
* stress/custom-get-set-proto-chain-put.js:
* stress/module-namespace-access-set-fails.js: Added.
* stress/put-non-reified-static-accessor-or-custom.js: Added.
* stress/put-non-reified-static-function-or-custom.js: Added.
* stress/put-to-primitive-non-reified-static-custom.js: Added.
* stress/put-to-primitive.js: Added.
* stress/put-to-proto-chain-overrides-put.js: Added.
* stress/typed-array-canonical-numeric-index-string-set.js: Added.
2021-04-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Baseline should have fast path for switch_imm
https://bugs.webkit.org/show_bug.cgi?id=224521
Reviewed by Tadeu Zagallo.
* stress/switch-imm-baseline.js: Added.
(shouldBe):
(test):
2021-04-21 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DFG / FTL should inline switch_string
https://bugs.webkit.org/show_bug.cgi?id=224578
Reviewed by Mark Lam.
* microbenchmarks/switch-inlining.js: Added.
(inner):
(outer):
* stress/switch-inlining-nested.js: Added.
(shouldBe):
(inner):
(outer):
2021-04-21 Caio Lima <ticaiolima@gmail.com>
[JSC] Unskip some tests for ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=224813
Unreviewed test gardening.
* stress/has-own-property-name-cache-symbols-and-strings.js:
* stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:
2021-04-20 Paulo Matos <pmatos@igalia.com>
Unskip couple of tests for armv7l and mips
https://bugs.webkit.org/show_bug.cgi?id=224607
Unreviewed gardening.
* stress/check-stack-overflow-before-value-profiling-arguments.js:
(fullGC):
* stress/intl-suppored-locales-of.js:
2021-04-20 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Limit memory allocation size of JSTests/stress/early-return-from-builtin.js
https://bugs.webkit.org/show_bug.cgi?id=224803
<rdar://problem/75597901>
Reviewed by Ryosuke Niwa.
Add limit to JSTests/stress/early-return-from-builtin.js to avoid infinite allocation.
* stress/early-return-from-builtin.js:
(let.iter.Symbol.iterator):
2021-04-19 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Rebaseline test results for new ICU
https://bugs.webkit.org/show_bug.cgi?id=224792
Reviewed by Mark Lam.
This patch updates some intl- tests' expectation since it is changed because of ICU CLDR data change.
* stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
(shouldBeOneOfThem):
(vm.icuVersion):
* stress/intl-datetimeformat-formatrange-relevant-extensions.js:
(shouldBeOneOfThem):
* stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
(shouldBe):
(vm.icuHeaderVersion):
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
(normalize):
(shouldBe):
(compareParts):
(shouldBeOneOfParts):
(shouldBeParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt5.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.vm.icuVersion):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt7.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt9.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt11.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeParts.fmt13.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt14.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt15.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt16.formatRangeToParts):
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt1.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt2.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt3.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt4.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt5.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt6.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt7.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt8.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt9.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt10.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt11.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt12.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt13.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt14.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt15.formatRangeToParts): Deleted.
(Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt16.formatRangeToParts): Deleted.
* stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
(normalize):
(shouldBe):
(compareParts):
(shouldBeOneOfParts):
(shouldBeParts):
* stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
(shouldBe):
* stress/intl-datetimeformat.js:
(shouldBeOneOfThem):
2021-04-16 Guillaume Emont <guijemont@igalia.com>
[JSC] Unskip stress/intl-parse-unicode-subtags.js on arm
https://bugs.webkit.org/show_bug.cgi?id=224679
Unreviewed test gardening.
* stress/intl-parse-unicode-subtags.js: Unskipped, as it passes fine
now.
2021-04-16 Xan Lopez <xan@igalia.com>
[JSC][ARMv7] Unskip stress/put-direct-index-broken-2.js
https://bugs.webkit.org/show_bug.cgi?id=224661
Unreviewed test gardening.
* stress/put-direct-index-broken-2.js: unskip on ARMv7, could not
reproduce locally the crash we saw earlier.
2021-04-15 Mark Lam <mark.lam@apple.com>
HashMapImpl::rehash() should use a version of jsMapHash that cannot throw.
https://bugs.webkit.org/show_bug.cgi?id=224610
rdar://76698910
Reviewed by Yusuke Suzuki.
* stress/suppress-TerminationException-in-HashMapImpl-rehash.js: Added.
2021-04-14 Mark Lam <mark.lam@apple.com>
Add missing exception check in operationGetPrivateNameOptimize().
https://bugs.webkit.org/show_bug.cgi?id=224592
rdar://76645873
Reviewed by Yusuke Suzuki.
* stress/suppress-TerminationException-in-operationGetPrivateNameOptimize.js: Added.
2021-04-14 Mark Lam <mark.lam@apple.com>
Defer TerminationExceptions when evaluating ASSERT in HashMapIml::addNormalized().
https://bugs.webkit.org/show_bug.cgi?id=224565
rdar://76645980
Reviewed by Yusuke Suzuki.
* stress/suppress-TerrminationException-in-ASSERT-in-HashMapImpl-addNormalized.js: Added.
2021-04-14 Guillaume Emont <guijemont@igalia.com>
[JSC] Unskip stress/intl-segmenter.js
https://bugs.webkit.org/show_bug.cgi?id=224553
Unreviewed test gardening.
It shouldn't fail any more on our bots now that our handling of libicu
is more robust.
* stress/intl-segmenter.js:
2021-04-14 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Unskip typedarray-functions-with-neutered.js on MIPS
https://bugs.webkit.org/show_bug.cgi?id=224428
Unreviewed test gardening.
This appears to no longer fail.
* stress/typedarray-functions-with-neutered.js:
2021-04-13 Angelos Oikonomopoulos <angelos@igalia.com>
[JSC] Unskip stress/intl-displaynames.js on ARM
https://bugs.webkit.org/show_bug.cgi?id=224427
Unreviewed test gardening.
* stress/intl-displaynames.js:
2021-04-10 Mark Lam <mark.lam@apple.com>
Enable VMTraps checks in RETURN_IF_EXCEPTION.
https://bugs.webkit.org/show_bug.cgi?id=224078
rdar://75037057
Reviewed by Keith Miller.
* stress/watchdog-fire-while-in-forEachInIterable.js: Added.
2021-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] DUCET level-1 weighs are equal if characters are alphabets
https://bugs.webkit.org/show_bug.cgi?id=224047
Reviewed by Saam Barati and Mark Lam.
* stress/ducet-level-3-or-4-comparison.js: Added.
(shouldBe):
2021-04-07 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=224272
Reviewed by Ross Kirsling.
* test262/latest-changes-summary.txt:
* test262/test/intl402/DisplayNames/options-getoptionsobject.js: Added.
* test262/test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js: Renamed from JSTests/test262/test/intl402/ListFormat/constructor/constructor/options-toobject.js.
* test262/test/intl402/ListFormat/constructor/constructor/options-toobject-prototype.js: Removed.
* test262/test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js: Added.
* test262/test/intl402/Segmenter/constructor/constructor/options-toobject-prototype.js: Removed.
* test262/test/intl402/Segmenter/constructor/constructor/options-toobject.js: Removed.
* test262/test/language/expressions/in/rhs-yield-absent-non-strict.js: Added.
* test262/test/language/expressions/in/rhs-yield-absent-strict.js: Added.
* test262/test/language/expressions/in/rhs-yield-present.js: Added.
(isNameIn):
* test262/test262-Revision.txt:
2021-04-06 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] WasmMemory caging should care about nullptr
https://bugs.webkit.org/show_bug.cgi?id=224268
<rdar://problem/74654838>
Reviewed by Mark Lam.
* wasm/stress/4g-memory-cage.js: Added.
(async test):
* wasm/stress/more-than-4g-offset-access-oom.js: Added.
(async test):
* wasm/stress/null-memory-cage-explicit.js: Added.
(async test):
* wasm/stress/null-memory-cage.js: Added.
(async test):
2021-04-06 Alexey Shvayka <shvaikalesh@gmail.com>
Symbol and BigInt wrapper objects should perform OrdinaryToPrimitive
https://bugs.webkit.org/show_bug.cgi?id=224208
Reviewed by Yusuke Suzuki.
* stress/bigint-object-ordinary-toprimitive.js: Added.
* stress/symbol-object-ordinary-toprimitive.js: Added.
2021-04-06 Alexey Shvayka <shvaikalesh@gmail.com>
Array's toString() is incorrect if join() is non-callable
https://bugs.webkit.org/show_bug.cgi?id=224215
Reviewed by Yusuke Suzuki.
* stress/array-toString-non-callable-join.js: Added.
2021-04-05 Keith Miller <keith_miller@apple.com>
DFG arity fixup nodes should exit to the caller's call opcode
https://bugs.webkit.org/show_bug.cgi?id=223278
Reviewed by Saam Barati.
* stress/dfg-arity-fixup-uses-callers-exit-origin.js: Added.
(main.v22):
(main.v30):
(main.try.v40):
(main.try.v47):
(main.try.v56):
(main.):
(main):
2021-04-02 Alexey Shvayka <shvaikalesh@gmail.com>
Reduce bytecode instruction count emitted for `class extends`
https://bugs.webkit.org/show_bug.cgi?id=223884
Reviewed by Yusuke Suzuki.
* ChakraCore/test/Error/validate_line_column.baseline-jsc:
2021-04-02 Jessica Tallon <jtallon@igalia.com>
Add tests for the new type method on certain JS-API wasm objects.
https://bugs.webkit.org/show_bug.cgi?id=222412
Reviewed by Yusuke Suzuki.
* wasm/js-api/global.js: Added.
(assert.throws):
* wasm/js-api/table.js:
(assert.truthy):
* wasm/js-api/test_memory.js:
2021-04-01 Alexey Shvayka <shvaikalesh@gmail.com>
Optimize createListFromArrayLike() and Proxy's [[OwnPropertyKeys]] method
https://bugs.webkit.org/show_bug.cgi?id=223928
Reviewed by Yusuke Suzuki.
* microbenchmarks/json-stringify-array-replacer.js:
Reduce running time from over 350ms to ~60ms.
* microbenchmarks/reflect-own-keys-proxy-2.js: Added.
* microbenchmarks/reflect-own-keys-proxy.js: Added.
2021-03-31 Mark Lam <mark.lam@apple.com>
Missing exception check in HashMapImpl::add().
https://bugs.webkit.org/show_bug.cgi?id=224007
rdar://76053163
Reviewed by Saam Barati.
* stress/missing-exception-check-in-HashMapImpl-add.js: Added.
2021-03-31 Alexey Shvayka <shvaikalesh@gmail.com>
Optimize constructors of ES6 collections
https://bugs.webkit.org/show_bug.cgi?id=223953
Reviewed by Yusuke Suzuki.
* microbenchmarks/map-constructor.js:
* microbenchmarks/set-constructor.js: Added.
* microbenchmarks/weak-map-constructor.js: Added.
* microbenchmarks/weak-set-constructor.js: Added.
* stress/map-constructor-adder.js:
* stress/set-constructor-adder.js:
* stress/weak-map-constructor-adder-error-cross-realm.js: Added.
* stress/weak-map-constructor-adder.js:
* stress/weak-set-constructor-adder-error-cross-realm.js: Added.
* stress/weak-set-constructor-adder.js:
* stress/weak-set-constructor.js:
2021-03-29 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed test gardening.
* stress/early-return-from-builtin.js: Disable this test for memoryLimited configurations.
2021-03-26 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Use AppleICU SPI for canonicalization
https://bugs.webkit.org/show_bug.cgi?id=223552
Reviewed by Ryosuke Niwa.
* stress/intl-canonical-locale-alias-mapping.js: Added.
(shouldBe):
(Intl.getCanonicalLocales):
2021-03-25 Truitt Savell <tsavell@apple.com>
Unreviewed, reverting r275056.
This is no longer needed
Reverted changeset:
"stress/early-return-from-builtin.js.default is failing on iOS
JSC testers"
https://commits.webkit.org/r275056
2021-03-25 Truitt Savell <tsavell@apple.com>
stress/early-return-from-builtin.js.default is failing on iOS JSC testers
rdar://75597901
Unreviewed test gardening.
* stress/early-return-from-builtin.js:
2021-03-25 Saam Barati <sbarati@apple.com>
early-return-from-builtin.js should try/catch in case of OOM
https://bugs.webkit.org/show_bug.cgi?id=223756
Reviewed by Yusuke Suzuki.
It's throwing an OOM on iOS.
* stress/early-return-from-builtin.js:
2021-03-24 Michael Saboff <msaboff@apple.com>
[YARR] Interpreter incorrectly matches non-BMP characters with multiple . w/dotAll flag
https://bugs.webkit.org/show_bug.cgi?id=223666
Reviewed by Mark Lam.
Added tests for dotAll. Also made sure that we test both JIT and non-JIT execution.
* stress/regexp-dot-match-nonBMP.js:
2021-03-24 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Rope string equal operation should first check length
https://bugs.webkit.org/show_bug.cgi?id=223678
Reviewed by Mark Lam.
* stress/redefine-property-same-value-exception-check.js:
(shouldThrow):
2021-03-23 Robin Morisset <rmorisset@apple.com>
Object.freeze(this) at the global scope can lose a reference to a WatchpointSet
https://bugs.webkit.org/show_bug.cgi?id=223608
Reviewed by Yusuke Suzuki.
* stress/freeze-global-object.js: Added.
(foo):
2021-03-22 Saam Barati <sbarati@apple.com>
LiteralParser shouldn't make error messages of length ~2^31
https://bugs.webkit.org/show_bug.cgi?id=223483
<rdar://75572255>
Reviewed by Robin Morisset.
* stress/literal-parser-error-message-oom.js: Added.
2021-03-22 Michael Saboff <msaboff@apple.com>
[YARR] Interpreter incorrectly matches non-BMP characters with multiple .
https://bugs.webkit.org/show_bug.cgi?id=223498
Reviewed by Yusuke Suzuki.
New test.
* stress/regexp-dot-match-nonBMP.js: Added.
(shouldMatch):
(shouldntMatch):
2021-03-22 Yusuke Suzuki <ysuzuki@apple.com>
[JSC] Intl.Locale should not assume is8Bit
https://bugs.webkit.org/show_bug.cgi?id=223553
Reviewed by Ross Kirsling.
* stress/intl-locale-non-8bit.js: Added.
(shouldBe):
2021-03-19 Mark Lam <mark.lam@apple.com>
BrandedStructure should keep its members alive.
https://bugs.webkit.org/show_bug.cgi?id=223495
rdar://75565765
Reviewed by Saam Barati.
* stress/BrandedStructure-should-keep-its-members-alive.js: Added.
== Rolled over to ChangeLog-2021-03-18 ==