2022-04-10 Yusuke Suzuki [JSC] DFG / FTL should be aware of JSString's String replacement https://bugs.webkit.org/show_bug.cgi?id=238918 Reviewed by Saam Barati. * stress/resolve-rope-get-by-val.js: Added. (shouldBe): (test): * stress/resolve-rope-string-char-at.js: Added. (shouldBe): (test): * stress/resolve-rope-string-char-code-at.js: Added. (shouldBe): (test): * stress/resolve-rope-string-code-point-at.js: Added. (shouldBe): (test): 2022-04-18 Kocsen Chung Cherry-pick r292594. rdar://problem/91467003 [JSC] Fire structure transition watchpoint in Structure::finishCreation instead of Structure constructor https://bugs.webkit.org/show_bug.cgi?id=238980 Reviewed by Saam Barati. JSTests: * stress/heap-allocation-in-did-structure-transition-watchpoint.js: Added. (__isPropertyOfType): (__getProperties): (__getObjects): (__getRandomObject): (__getRandomProperty): (__callGC): (get var): Source/JavaScriptCore: After https://github.com/WebKit/WebKit/commit/dc3a347474a183891f8e07966dc09e684d7a1d13 change, we start using Structure::get in the main thread. However one of the difference between Structure::get and Structure::getConcurrently is that it can allocate GC memory: PropertyTable can be materialized. Structure constructor was firing structure transition watchpoint. And some of watchpoints were using Structure::getConcurrently. That's fine before, but now, it becomes Structure::get. It is not OK since we cannot allocate GC memory inside constructor of GC managed objects. This patch split didTransitionFromThisStructure into didTransitionFromThisStructureWithoutFiringWatchpoint and fireStructureTransitionWatchpoint. And firing watchpoints in Structure::finishCreation instead of Structure constructor so that we can allocate GC memory while firing watchpoints. * runtime/BrandedStructure.cpp: (JSC::BrandedStructure::BrandedStructure): (JSC::BrandedStructure::create): * runtime/BrandedStructure.h: * runtime/Structure.cpp: (JSC::Structure::Structure): (JSC::Structure::didTransitionFromThisStructureWithoutFiringWatchpoint const): (JSC::Structure::fireStructureTransitionWatchpoint const): (JSC::Structure::didTransitionFromThisStructure const): * runtime/Structure.h: (JSC::Structure::finishCreation): * runtime/StructureInlines.h: (JSC::Structure::create): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292594 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-04-07 Yusuke Suzuki [JSC] Fire structure transition watchpoint in Structure::finishCreation instead of Structure constructor https://bugs.webkit.org/show_bug.cgi?id=238980 Reviewed by Saam Barati. * stress/heap-allocation-in-did-structure-transition-watchpoint.js: Added. (__isPropertyOfType): (__getProperties): (__getObjects): (__getRandomObject): (__getRandomProperty): (__callGC): (get var): 2022-04-18 Kocsen Chung Cherry-pick r292484. rdar://problem/89253391 [JSC] Substring resolving should check 8bit / 16bit again https://bugs.webkit.org/show_bug.cgi?id=236775 Reviewed by Saam Barati. JSTests: * stress/8bit-16bit-atomize-conversion.js: Added. (main.v64): (main): Source/JavaScriptCore: Substring JSString is wrapping JSString. Thus it is possible that underlying JSString's 8Bit / 16Bit status becomes different from substring JSString wrapper's bit. We should not assume they are the same. * runtime/JSString.cpp: (JSC::JSRopeString::resolveRopeInternal const): (JSC::JSRopeString::resolveRopeToAtomString const): (JSC::JSRopeString::resolveRopeToExistingAtomString const): (JSC::JSRopeString::resolveRopeInternal8 const): Deleted. (JSC::JSRopeString::resolveRopeInternal16 const): Deleted. * runtime/JSString.h: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292484 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-04-06 Yusuke Suzuki [JSC] Substring resolving should check 8bit / 16bit again https://bugs.webkit.org/show_bug.cgi?id=236775 Reviewed by Saam Barati. * stress/8bit-16bit-atomize-conversion.js: Added. (main.v64): (main): 2022-03-21 Alan Coon Cherry-pick r290981. rdar://problem/83326232 Remove invalid ASSERT in LocaleIDBuilder::overrideLanguageScriptRegion(). https://bugs.webkit.org/show_bug.cgi?id=237573 Reviewed by Yusuke Suzuki. JSTests: * stress/handle-empty-localeID-in-localeIDBufferForLanguageTagWithNullTerminator.js: Added. Source/JavaScriptCore: The ASSERT(length) in LocaleIDBuilder::overrideLanguageScriptRegion() is simply incorrect. The length can be 0 if uloc_forLanguageTag returns a 0 length in localeIDBufferForLanguageTagWithNullTerminator(). LocaleIDBuilder::overrideLanguageScriptRegion() already handles this scenario correctly. We just need to remove this incorrect ASSERT. Also verified that we're producing the same result on the attached test case as Chrome and Firefox produces. * runtime/IntlObject.cpp: (JSC::localeIDBufferForLanguageTagWithNullTerminator): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290981 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-03-08 Mark Lam Remove invalid ASSERT in LocaleIDBuilder::overrideLanguageScriptRegion(). https://bugs.webkit.org/show_bug.cgi?id=237573 Reviewed by Yusuke Suzuki. * stress/handle-empty-localeID-in-localeIDBufferForLanguageTagWithNullTerminator.js: Added. 2022-03-21 Alan Coon Cherry-pick r290517. rdar://problem/89428235 operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination. https://bugs.webkit.org/show_bug.cgi?id=237173 rdar://problem/89450245 Reviewed by Yusuke Suzuki. JSTests: * stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added. Source/JavaScriptCore: DeferTermination can throw the TerminationException on destruction of the scope object. operationMaterializeObjectInOSR() was using DeferTermination, resulting in the TerminationException being thrown on exit. This trips up validateDFGExceptionHandling testing (which is enabled on Debug builds) because the TerminationException is unexpected. The solution is simply to use DeferTerminationForAWhile instead, and let a more natural trap checkpoint throw the TerminationException later. Also refactored notifyDebuggerOfUnwinding() to return early if a debugger is not present. This avoids unnecessarily entering and exiting a DeferTermination scope in notifyDebuggerOfUnwinding(). This was observed while testing this change on the attached test case. * ftl/FTLOperations.cpp: (JSC::FTL::operationMaterializeObjectInOSR): * interpreter/Interpreter.cpp: (JSC::notifyDebuggerOfUnwinding): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290517 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-02-25 Mark Lam operationMaterializeObjectInOSR should DeferTerminationForAWhile instead of just DeferTermination. https://bugs.webkit.org/show_bug.cgi?id=237173 rdar://problem/89450245 Reviewed by Yusuke Suzuki. * stress/termination-exception-in-operationMaterializeObjectInOSR2.js: Added. 2022-03-07 Russell Epstein Cherry-pick r290265. rdar://problem/88258776 [JSC] Add explicit exception check after appendWithoutSideEffects https://bugs.webkit.org/show_bug.cgi?id=236986 rdar://88258776 Reviewed by Saam Barati. JSTests: * stress/array-to-string-oom.js: Added. Source/JavaScriptCore: Add exception check after JSStringJoiner::appendWithoutSideEffects call since JSString::value can throw OOM error. * runtime/ArrayPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): * runtime/JSStringJoiner.h: (JSC::JSStringJoiner::append): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@290265 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-02-21 Yusuke Suzuki [JSC] Add explicit exception check after appendWithoutSideEffects https://bugs.webkit.org/show_bug.cgi?id=236986 rdar://88258776 Reviewed by Saam Barati. * stress/array-to-string-oom.js: Added. 2022-02-09 Alan Coon Cherry-pick r289450. rdar://problem/88483574 [JSC] YarrJIT inlining should be disabled when we have DotStarEnclosure https://bugs.webkit.org/show_bug.cgi?id=236332 rdar://88483574 Reviewed by Michael Saboff. JSTests: * stress/yarr-inlining-dot-star-enclosure.js: Added. (test): Source/JavaScriptCore: YarrJITRegisters::initialStart can be used when m_pattern.m_saveInitialStartValue is true while it is not defined in YarrJIT inlining. As a result, we emit broken code using InvalidGPRReg. This patch makes canInline false when m_pattern.m_saveInitialStartValue is true. * yarr/YarrJIT.cpp: * yarr/YarrJITRegisters.h: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@289450 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-02-08 Yusuke Suzuki [JSC] YarrJIT inlining should be disabled when we have DotStarEnclosure https://bugs.webkit.org/show_bug.cgi?id=236332 rdar://88483574 Reviewed by Michael Saboff. * stress/yarr-inlining-dot-star-enclosure.js: Added. (test): 2022-02-07 Russell Epstein Cherry-pick r288213. rdar://problem/87538657 Unreviewed, skip new test max-typed-array-length-toString.js when memory-limited https://bugs.webkit.org/show_bug.cgi?id=235217 Patch by Michael Catanzaro on 2022-01-19 * stress/max-typed-array-length-toString.js: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288213 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-01-19 Michael Catanzaro 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-02-07 Russell Epstein Cherry-pick r288120. rdar://problem/87538657 Gardening: resolve test failure on CLoop. Not reviewed. Change test to not rely on WebAssembly. * stress/max-typed-array-length-toString.js: git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288120 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-01-18 Mark Lam Gardening: resolve test failure on CLoop. Not reviewed. Change test to not rely on WebAssembly. * stress/max-typed-array-length-toString.js: 2022-02-07 Russell Epstein Cherry-pick r288037. rdar://problem/87538657 JSStringJoiner's constructor should take a size_t length. https://bugs.webkit.org/show_bug.cgi?id=235217 rdar://87538657 Reviewed by Yusuke Suzuki. JSTests: * stress/max-typed-array-length-toString.js: Added. Source/JavaScriptCore: Also removed an unnecessary exception check in JSStringJoiner::append(). This is because appendWithoutSideEffects() cannot throw any exceptions. * runtime/JSStringJoiner.h: (JSC::JSStringJoiner::JSStringJoiner): (JSC::JSStringJoiner::append): git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288037 268f45cc-cd09-0410-ab3c-d52691b4dbfc 2022-01-14 Mark Lam 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-07 Alexey Shvayka 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 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 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 [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 [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 [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 [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 [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 [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 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 [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 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 [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 [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 Unreviewed, we may not throw an stack overflow error * stress/stack-overflow-in-custom-hasInstance.js: (catch): 2021-12-08 Asumu Takikawa 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 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 [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 Fix OOM crash in JSValue::toWTFStringForConsole https://bugs.webkit.org/show_bug.cgi?id=233775 Reviewed by Mark Lam. * stress/pretty-print-oom.js: Added. 2021-11-30 Saam Barati GetMyArgumentByValOutOfBounds needs to check for negative indices https://bugs.webkit.org/show_bug.cgi?id=232966 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 [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 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 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 [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 [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 [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 [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 [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 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 [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 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 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 [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 [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 [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 Run the memmove fast path in JSGenericTypedArrayView::set when using a combination of Uint8 and Uint8Clamped https://bugs.webkit.org/show_bug.cgi?id=233271 Reviewed by Yusuke Suzuki. * microbenchmarks/typed-array-set-uint8-and-uint8clamped.js: Added. 2021-11-15 Yusuke Suzuki [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 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 [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 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 [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 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 [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 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 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 [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 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 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 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 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 [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 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 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 [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 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 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 [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 EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn't always recover the property name https://bugs.webkit.org/show_bug.cgi?id=231321 Reviewed by Yusuke Suzuki. * stress/enumerator-get-by-val-needs-to-recover-property-name.js: Added. 2021-11-01 Saam Barati 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 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 JSGenericTypedArrayView::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 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 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 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 [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 [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 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 Unreviewed, fix test262 bot failures https://bugs.webkit.org/show_bug.cgi?id=232005 * test262/expectations.yaml: 2021-10-25 Yusuke Suzuki [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 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 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 [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 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 [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 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 [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 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 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 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 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 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 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 Reviewed by Yusuke Suzuki. * stress/dont-branch-around-regalloc-enumerator-get-by-val.js: Added. (foo): 2021-10-09 Yusuke Suzuki [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 Implement the WebAssembly exception handling proposal https://bugs.webkit.org/show_bug.cgi?id=229681 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 [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 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 Reviewed by Mark Lam. * stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js: Added. (foo): 2021-10-07 Philip Chimento [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 Unreviewed, ensure test262 expectations reflect BigSur release mode. * test262/expectations.yaml: 2021-10-06 Philip Chimento [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 [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 Run backwards propagation before we prune the graph after ForceOSRExit nodes in BytecodeParser https://bugs.webkit.org/show_bug.cgi?id=230823 Reviewed by Robin Morisset. * run-backwards-propagation-before-osr-exit-pruning.js: Added. (assert): (main.async v24): (main): 2021-10-05 Saam Barati Don't pass DontBuildStrings to next token after parsing an empty parameter list https://bugs.webkit.org/show_bug.cgi?id=225094 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 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 [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 IntrinsicGetterAccessCase implementation of __proto__ needs to handle get_by_id_with_this https://bugs.webkit.org/show_bug.cgi?id=229951 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 [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 [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 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 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 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 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 DFG strength reduction on % operator should handle an INT_MIN divisor. https://bugs.webkit.org/show_bug.cgi?id=230391 Reviewed by Robin Morisset. * stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added. 2021-09-29 Saam Barati 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 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 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 Code inside strength reduction can incorrectly prove that we know what lastIndex is https://bugs.webkit.org/show_bug.cgi?id=230802 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 DoesGCCheck does not use enough bits for nodeIndex https://bugs.webkit.org/show_bug.cgi?id=230915 Unreviewed. Forgot to add a try/catch in the test. * stress/verify-can-gc-node-index.js: 2021-09-28 Saam Barati DoesGCCheck does not use enough bits for nodeIndex https://bugs.webkit.org/show_bug.cgi?id=230915 Reviewed by Mark Lam. * stress/verify-can-gc-node-index.js: Added. (gen): (f): 2021-09-28 Alexey Shvayka 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 [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 [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 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 [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 [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 [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 [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 [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 [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 [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 [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 [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 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 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 [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 [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 [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 [ 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 [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 [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 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 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 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 [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 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 [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 [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 [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 [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 [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 [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 [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 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 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 [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 r281485 was not sufficient in where it called disablePeepholeOptimization https://bugs.webkit.org/show_bug.cgi?id=229582 Reviewed by Yusuke Suzuki. * stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite-2.js: Added. (foo): 2021-08-24 Yusuke Suzuki 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 [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 (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 Disable peephole optimizations in the byte code generator after rewriting instructions for for-in https://bugs.webkit.org/show_bug.cgi?id=229420 Reviewed by Keith Miller. * stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added. (foo): 2021-08-23 Saam Barati compileEnumeratorHasProperty uses flushRegisters incorrectly https://bugs.webkit.org/show_bug.cgi?id=229412 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 [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 [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 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 [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 [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 [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 [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 [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 Unreviewed. Skip failing MIPS tests https://bugs.webkit.org/show_bug.cgi?id=229198 * ChakraCore.yaml: 2021-08-13 Keith Miller 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 WTFCrash in JSC::Lexer::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 [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 [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 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 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 [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 [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 [JSC] Upgrade test262 https://bugs.webkit.org/show_bug.cgi?id=228627 Reviewed by Ross Kirsling. 2021-07-30 Robin Morisset 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 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 definePropertyOnReceiver should check if receiver canPerformFastPutInline https://bugs.webkit.org/show_bug.cgi?id=227963 Reviewed by Alexey Shvayka. * stress/reflect-set-custom-value.js: Added. 2021-07-29 Yusuke Suzuki and Alexey Shvayka [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 [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 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 [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 [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 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 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 AirStackSlot's uint16_t byte size is too small https://bugs.webkit.org/show_bug.cgi?id=228193 Reviewed by Mark Lam. * stress/stack-slot-needs-to-use-more-than-uint16.js: Added. 2021-07-20 Yusuke Suzuki [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 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 [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 [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 Grab the lock in FTL::Thunks::keyForSlowPathCallThunk https://bugs.webkit.org/show_bug.cgi?id=227988 Reviewed by Mark Lam. * stress/thunks-hash-map-should-grab-lock.js: Added. 2021-07-16 Yusuke Suzuki [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 [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 [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 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 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 Unreviewed, test gardening. * stress/bit-op-with-object-returning-int32.js: * stress/bitwise-not-fixup-rules.js: (jscOptions): 2021-07-14 Mark Lam 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 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 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 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 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 [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 [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 [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 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 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 [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 [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 Turn off data ICs by default https://bugs.webkit.org/show_bug.cgi?id=227334 Reviewed by Yusuke Suzuki. * microbenchmarks/deltablue-varargs.js: * microbenchmarks/richards-try-catch.js: 2021-06-30 Yusuke Suzuki [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 [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 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 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 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 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 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 [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 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 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 [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 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 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 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 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 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 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 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 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 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 [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 [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 Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount):: 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 [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 [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 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 AssemblyHelpers should save/restore callee save FPRs https://bugs.webkit.org/show_bug.cgi?id=227052 Reviewed by Mark Lam. * stress/callee-save-fpr.js: Added. (_f): (_g): (_h): (_i): (assertEqual): 2021-06-15 Yusuke Suzuki [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 [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 https://bugs.webkit.org/show_bug.cgi?id=226576 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 [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 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 Short circuit read modify write nodes emit byte code that uses the wrong locals https://bugs.webkit.org/show_bug.cgi?id=226576 Reviewed by Yusuke Suzuki. * stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js: Added. (eval): 2021-06-07 Robin Morisset 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 [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 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 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 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 Optimize Function.prototype.toString https://bugs.webkit.org/show_bug.cgi?id=226418 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 [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 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 [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 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 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 Reviewed by Filip Pizlo. * stress/dont-sink-arguments-past-inline-call-frame.js: Added. (foo): (fooWrap): (empty): (bar): 2021-05-22 Ross Kirsling 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 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 [ Catalina Release JSC] A large number of JSC test appear to be flaky failing https://bugs.webkit.org/show_bug.cgi?id=225998 Reviewed by Yusuke Suzuki. * stress/dont-link-virtual-calls-on-compiler-thread.js: Added. 2021-05-19 Robin Morisset 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 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 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 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 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 [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 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 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 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 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 [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 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 [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 %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 [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 [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 [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 [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 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 [JSC] Limit memory allocation size of JSTests/stress/early-return-from-builtin.js https://bugs.webkit.org/show_bug.cgi?id=224803 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 [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 [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 [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 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 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 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 [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 [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 [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 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 [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 [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 [JSC] WasmMemory caging should care about nullptr https://bugs.webkit.org/show_bug.cgi?id=224268 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 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 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 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 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 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 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 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 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 Unreviewed test gardening. * stress/early-return-from-builtin.js: Disable this test for memoryLimited configurations. 2021-03-26 Yusuke Suzuki [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 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 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 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 [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 [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 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 LiteralParser shouldn't make error messages of length ~2^31 https://bugs.webkit.org/show_bug.cgi?id=223483 Reviewed by Robin Morisset. * stress/literal-parser-error-message-oom.js: Added. 2021-03-22 Michael Saboff [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 [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 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 ==