2022-01-14  Alexey Shvayka  <ashvayka@apple.com>

        JSArray::fastSlice() should not convert the source from CoW
        https://bugs.webkit.org/show_bug.cgi?id=234990

        Reviewed by Yusuke Suzuki.

        * stress/array-slice-cow.js:

2022-01-14  Justin Michaud  <justin_michaud@apple.com>

        Update libWABT
        https://bugs.webkit.org/show_bug.cgi?id=235050

        Update libWabt to support new simd instructions, and add stubs so that the 
        wasm test runner can run in v8.

        Reviewed by Yusuke Suzuki.

        * wasm/assert.js:
        * wasm/libwabt.js:
        (WabtModule):
        (set get if):

2022-01-11  Asumu Takikawa  <asumu@igalia.com>

        [Wasm] Unify memory import handling in module loader and JS cases
        https://bugs.webkit.org/show_bug.cgi?id=234116

        Reviewed by Yusuke Suzuki.

        Add an instantiation test case that tests that instantiating the same
        binary module twice will not crash.

        * wasm/js-api/web-assembly-instantiate.js:
        (assert.asyncTest.async test):
        (assert.asyncTest):

2022-01-10  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, add a bit more Intl.Locale hourCycle tests to investigate flakiness

        * stress/intl-locale-info.js:
        (let.l.new.Intl.Locale.shouldBe):
        (shouldBe):

2022-01-07  Alexey Shvayka  <ashvayka@apple.com>

        Expand the set of objects we take JSArray::fastSlice() path for
        https://bugs.webkit.org/show_bug.cgi?id=234539

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/array-slice-call-cloned-arguments.js: Added.
        * stress/array-slice-beyond-length.js: Added.
        * stress/array-slice-length-lookup.js: Added.

2022-01-06  Saam Barati  <sbarati@apple.com>

        preparePatchpointForExceptions needs to handle tuples
        https://bugs.webkit.org/show_bug.cgi?id=234909

        Reviewed by Yusuke Suzuki.

        Add support to the builder to have functions return tuples.

        * wasm/Builder.js:
        (const._normalizeFunctionSignature):
        (const._maybeRegisterType):
        * wasm/Builder_WebAssemblyBinary.js:
        (const.emitters.Type):
        * wasm/stress/exception-throw-from-function-returning-tuple.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testCatchWithExceptionThrownFromFunctionReturningTuple):

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        Array.prototype.toLocaleString does not respect deletion of Object.prototype.toLocaleString
        https://bugs.webkit.org/show_bug.cgi?id=232723

        Reviewed by Alexey Shvayka.

        * ChakraCore/test/Array/toLocaleString.baseline-jsc:
        * stress/array-tolocalestring-delete-tolocalestring.js: Added.
        (shouldThrow):
        * stress/array-tolocalestring-empty-separator.js: Added.
        (shouldBe):
        * stress/array-tolocalestring-options.js: Added.
        (shouldBe):
        * stress/array-tolocalestring-undefined-null.js: Added.
        (shouldBe):
        (shouldBe.toLocaleString):

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Fix Intl.PluralRules.selectRange input validation
        https://bugs.webkit.org/show_bug.cgi?id=234817

        Reviewed by Alexey Shvayka.

        * stress/intl-pluralrules-select-range-validate-inputs.js: Added.
        (shouldThrow):
        (Intl.PluralRules.prototype.selectRange.shouldThrow):

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update UCD to Unicode 14.0.0
        https://bugs.webkit.org/show_bug.cgi?id=234811

        Reviewed by Sam Weinig.

        * test262/expectations.yaml:

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Read-modify-write operation's second put-to-scope should not throw error if binding does not exist
        https://bugs.webkit.org/show_bug.cgi?id=234813

        Reviewed by Alexey Shvayka.

        * stress/global-object-read-modify-write-remove-at-get-strict.js: Added.
        (shouldThrow):
        * stress/global-object-read-modify-write-remove-at-get.js: Added.
        (shouldBe):
        * test262/expectations.yaml:

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Fix length of Intl.NumberFormat.formatRange and Intl.PluralRules.selectRange
        https://bugs.webkit.org/show_bug.cgi?id=234806

        Reviewed by Alexey Shvayka.

        * stress/intl-numberformat-format-range-v3.js:
        (nf.formatRange.nf.formatRangeToParts.methods.forEach):
        * stress/intl-pluralrules-selectrange.js:

2022-01-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=234807

        Reviewed by Alexey Shvayka.

        * test262/config.yaml:
        * test262/expectations.yaml:
        * test262/test262-Revision.txt:

2022-01-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Use emitPutProperty / emitGetPropertyValue consistently to handle private names in edge cases
        https://bugs.webkit.org/show_bug.cgi?id=234794

        Reviewed by Alexey Shvayka.

        * test262/expectations.yaml:

2021-12-22  Saam Barati  <sbarati@apple.com>

        LLInt should loop OSR into BBQ and BBQ should loop OSR into OMG
        https://bugs.webkit.org/show_bug.cgi?id=234542

        Reviewed by Yusuke Suzuki.

        * wasm/wast-tests/harness.js:

2021-12-19  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] OpPow should have a "small int exponent" fast path at lower tiers
        https://bugs.webkit.org/show_bug.cgi?id=234408

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/pow-double-int.js: Added.
        * microbenchmarks/pow-int-int.js: Added.

2021-12-16  Devin Rousso  <drousso@apple.com>

        Implement Array.prototype.groupBy and Array.prototype.groupByToMap
        https://bugs.webkit.org/show_bug.cgi?id=234327

        Reviewed by Yusuke Suzuki.

        * stress/array-groupBy.js: Added.
        (shouldBe):
        (shouldBeObject):
        (shouldBeObject.replacer):
        (notReached):
        (toObject):
        (reverseInsertionOrder):
        * stress/array-groupByToMap.js: Added.
        (shouldBe):
        (shouldBeObject):
        (shouldBeObject.replacer):
        (shouldBeMap):
        (notReached):
        (toObject):
        (reverseInsertionOrder):

2021-12-15  Joseph Griego  <jgriego@igalia.com>

        [Shadow Realms] Wrapped functions must only throw TypeError from calling realm
        https://bugs.webkit.org/show_bug.cgi?id=234357

        Test the cases when the exception would be thrown by a function
        originating from both the shadow realm and the incubating realm.

        Reviewed by Yusuke Suzuki.

        * stress/shadow-realm-evaluate.js:
        (shouldBe):
        (let.f.realm.evaluate):
        (shouldBe.f):

2021-12-13  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update Intl tests based on ICU 69~
        https://bugs.webkit.org/show_bug.cgi?id=234276

        Reviewed by Mark Lam.

        Rebaseline Intl tests based on ICU 69~'s CLDR update.

        * stress/array-toLocaleString.js:
        * stress/date-toLocaleString.js:
        * stress/intl-canonical-locale-alias-mapping.js:
        (Intl.getCanonicalLocales):
        * stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
        (vm.icuVersion):
        * stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
        * stress/intl-datetimeformat.js:
        * stress/intl-enumeration.js:
        * stress/intl-locale-info.js:
        (shouldBe):
        * stress/intl-locale.js:

2021-12-10  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, we may not throw an stack overflow error

        * stress/stack-overflow-in-custom-hasInstance.js:
        (catch):

2021-12-08  Asumu Takikawa  <asumu@igalia.com>

        Support WebAssembly.Memory imports in Wasm/ESM modules.
        https://bugs.webkit.org/show_bug.cgi?id=184745

        Reviewed by Yusuke Suzuki.

        * wasm/modules/wasm-imports-js-exports.js:
        (then):
        * wasm/modules/wasm-imports-js-exports/memory-fail-1.js: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-1.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-1.wat: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-2.js: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-2.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-2.wat: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-3.js: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-3.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-3.wat: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-4.js: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-4.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-4.wat: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-5.js: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-5.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory-fail-5.wat: Added.
        * wasm/modules/wasm-imports-js-exports/memory.js: Added.
        (export.setMemory):
        * wasm/modules/wasm-imports-js-exports/memory.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/memory.wat: Added.
        * wasm/modules/wasm-imports-js-exports/shared-memory.js: Added.
        * wasm/modules/wasm-imports-js-exports/shared-memory.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/shared-memory.wat: Added.
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports.js:
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wasm:
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports/imports.wat:
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports/re-export.js:
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wasm:
        * wasm/modules/wasm-imports-js-re-exports-wasm-exports/sum.wat:

2021-12-07  Saam Barati  <sbarati@apple.com>

        TypedArray prototype set should go down the fast path when using non clamped integer types of the same byte size
        https://bugs.webkit.org/show_bug.cgi?id=233905

        Reviewed by Keith Miller.

        * microbenchmarks/typed-array-prototype-set.js: Added.
        * microbenchmarks/typed-array-prototype-set-order.js: Added.
        * stress/typed-array-prototype-set.js: Added.

2021-12-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] shell's $.globalObjectFor is not safe for non object cells
        https://bugs.webkit.org/show_bug.cgi?id=233794

        Reviewed by Saam Barati.

        * stress/dollar-global-object.js: Added.

2021-12-02  Saam Barati  <sbarati@apple.com>

        Fix OOM crash in JSValue::toWTFStringForConsole
        https://bugs.webkit.org/show_bug.cgi?id=233775
        <rdar://85259423>

        Reviewed by Mark Lam.

        * stress/pretty-print-oom.js: Added.

2021-11-30  Saam Barati  <sbarati@apple.com>

        GetMyArgumentByValOutOfBounds needs to check for negative indices
        https://bugs.webkit.org/show_bug.cgi?id=232966
        <rdar://problem/85519898>

        Reviewed by Yusuke Suzuki.

        * get-my-argument-by-val-negative-1.js: Added.
        * get-my-argument-by-val-negative-2.js: Added.
        * get-my-argument-by-val-negative-3.js: Added.

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] jumpForTypedArrayOutOfBounds should use asAnyInt since it uses isAnyInt
        https://bugs.webkit.org/show_bug.cgi?id=233610
        rdar://85820476

        Reviewed by Saam Barati.

        * stress/anyint-index.js: Added.
        (foo):

2021-11-29  Saam Barati  <sbarati@apple.com>

        FTL's implementation of HasIndexedProperty for InBounds accesses checks the inverse of what it should be checking when exiting by seeing a hole
        https://bugs.webkit.org/show_bug.cgi?id=233408
        <rdar://problem/85787251>

        Reviewed by Mark Lam.

        * stress/in-by-val-has-indexed-property-ftl-3.js: Added.
        * stress/in-by-val-has-indexed-property-ftl-2.js: Added.
        * stress/in-by-val-has-indexed-property-ftl.js: Added.

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] slice should be aware of TerminationException
        https://bugs.webkit.org/show_bug.cgi?id=233593
        rdar://85823844

        Reviewed by Mark Lam.

        * stress/slice-termination-exception.js: Added.
        (async infiniteLoop):

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add Intl.NumberFormat.formatRangeToParts
        https://bugs.webkit.org/show_bug.cgi?id=233539

        Reviewed by Ross Kirsling.

        * stress/intl-numberformat-format-large.js:
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
        * stress/intl-numberformat-format-range-v3.js:
        (nf.formatRange.nf.formatRangeToParts.methods.forEach):
        (nf.formatRange.string_appeared_here.forEach): Deleted.
        * stress/intl-numberformat-format-string-v3.js:
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):
        * stress/intl-numberformat-format-string.js:
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf.formatRangeToParts):
        (nf.formatRangeToParts.shouldBe.JSON.stringify.nf2.formatRangeToParts):

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Public Class Field initialization is slow
        https://bugs.webkit.org/show_bug.cgi?id=232479

        Reviewed by Alexey Shvayka.

        * microbenchmarks/class-fields-classic-constructor-assignments.js: Added.
        (Classic_Constructor_Assignments):
        (bench):
        * microbenchmarks/class-fields-private-fields.js: Added.
        (ES2022_Private_Fields):
        (bench):
        * microbenchmarks/class-fields-public-fields.js: Added.
        (ES2022_Public_Fields):
        (bench):
        * stress/class-fields-getter-override.js: Added.
        (shouldThrow):
        (defineCGetter.):
        (B):
        (define0Getter.):
        (define0Getter):
        (D):
        * stress/custom-get-set-proto-chain-put.js:
        (let.object.of.getObjects):
        * stress/freeze-and-seal-should-prevent-extensions.js:
        * stress/object-assign-fast-path.js:
        * stress/ordinary-set-exceptions.js:
        (shouldThrow):
        * stress/put-non-reified-static-function-or-custom.js:
        * wasm/js-api/test_basic_api.js:
        (const.c.in.constructorProperties.switch):

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] private name operation should use RETURN_IF_EXCEPTION
        https://bugs.webkit.org/show_bug.cgi?id=233577
        rdar://85813869

        Reviewed by Mark Lam.

        * stress/termination-error-in-private-name.js: Added.
        (C):

2021-11-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] GetTypedArrayLengthAsInt52 can get Array::Generic ArrayMode
        https://bugs.webkit.org/show_bug.cgi?id=233571
        rdar://85812164

        Reviewed by Mark Lam.

        * stress/get-typed-array-length-as-int52-generic.js: Added.
        (foo.bar):
        (foo):

2021-11-24  Michael Catanzaro  <mcatanzaro@gnome.org>

        Skip new stress test get-array-length-reuse.js if memory-limited
        https://bugs.webkit.org/show_bug.cgi?id=233299
        rdar://85502079

        Reviewed by Yusuke Suzuki.

        * stress/get-array-length-reuse.js:

2021-11-24  Aditi Singh  <asingh@igalia.com>

        [JSC] Implement Date.prototype.toTemporalInstant()
        https://bugs.webkit.org/show_bug.cgi?id=232075

        Reviewed by Yusuke Suzuki.

        * stress/date-to-temporal-instant.js: Added.
        (shouldBe):
        (shouldThrow):

2021-11-19  Asumu Takikawa  <asumu@igalia.com>

        Fix WebAssembly memory.fill out of bounds error message
        https://bugs.webkit.org/show_bug.cgi?id=233392

        Reviewed by Yusuke Suzuki.

        * wasm/references/memory_fill_out_of_bounds.js: Added.
        (async test):

2021-11-19  Saam Barati  <sbarati@apple.com>

        Fix assertion added in r285592
        https://bugs.webkit.org/show_bug.cgi?id=233373

        Reviewed by Keith Miller.

        * stress/validate-assert-uid-is-not-index-or-it-is-symbol.js: Added.
        (main.v11):
        (main.v29):
        (main):

2021-11-19  Joseph Griego  <jgriego@igalia.com>

        [JSC] Shadow realms: set correct Function prototype on wrapped functions
        https://bugs.webkit.org/show_bug.cgi?id=233143

        Reviewed by Yusuke Suzuki.

        At present, the Function prototype set on each of the returned wrapped
        functions will be the Function object from the realm the shadow realm
        builtin is from--to comply with the latest draft of the shadow realms
        spec [1], wrapped function objects should have the Function prototype
        from the realm the wrapper object is destined for, instead.

        At present, this requires tracking both the calling (destination) and
        target (source) realm and switching between the two as function
        arguments are wrapped (when the notion of source and destination realm
        also flips)

        Adds a simple builtin (moveFunctionToRealm) that can switch the Function
        prototype given only the Shadow Realm object corresponding to the
        correct global object.

        Also marks the corresponding part of test262 as passing.

        * test262/expectations.yaml:

2021-11-19  Angelos Oikonomopoulos  <angelos@igalia.com>

        [JSC] Workaround for failing mips tests
        https://bugs.webkit.org/show_bug.cgi?id=233359

        Reviewed by Adrian Perez de Castro.

        Re-enable tests skipped on mips after adding workaround.

        * stress/call-varargs-double-new-array-buffer.js:
        * stress/callee-save-fpr.js:
        * stress/forward-varargs-double-new-array-buffer.js:
        * stress/new-array-with-spread-cow-double.js:
        * stress/new-array-with-spread-double-new-array-buffer.js:
        * stress/spread-escapes-but-new-array-buffer-does-not-double.js:

2021-11-17  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] TypedArray GetArrayLength should not use Reuse
        https://bugs.webkit.org/show_bug.cgi?id=233299
        rdar://85502079

        Reviewed by Robin Morisset.

        * stress/get-array-length-reuse.js: Added.
        (foo):

2021-11-17  Saam Barati  <sbarati@apple.com>

        Run the memmove fast path in JSGenericTypedArrayView<Adaptor>::set when using a combination of Uint8 and Uint8Clamped
        https://bugs.webkit.org/show_bug.cgi?id=233271
        <rdar://85259288>

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/typed-array-set-uint8-and-uint8clamped.js: Added.

2021-11-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Use operation path when PutByVal child1 is not speculated as a Cell
        https://bugs.webkit.org/show_bug.cgi?id=233147
        rdar://85344310

        Reviewed by Mark Lam.

        * stress/put-by-val-slow-dfg.js: Added.
        (foo):

2021-11-15  Angelos Oikonomopoulos  <angelos@igalia.com>

        Skip tests newly-failing on mips
        https://bugs.webkit.org/show_bug.cgi?id=233124

        Unreviewed gardening.

        After 3f59d2aa489ec843e055fc3104c275851d7fbd35, these tests started
        failing with a SIGBUS on MIPS (on fuloong hardware, they pass on the
        ci20 boards). Temporarily skip them on this arch until we can track
        down the issue.

        * stress/call-varargs-double-new-array-buffer.js:
        * stress/callee-save-fpr.js:
        * stress/forward-varargs-double-new-array-buffer.js:
        * stress/new-array-with-spread-cow-double.js:
        * stress/new-array-with-spread-double-new-array-buffer.js:
        * stress/spread-escapes-but-new-array-buffer-does-not-double.js:

2021-11-14  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Use CallLinkInfo in LLInt
        https://bugs.webkit.org/show_bug.cgi?id=232746

        Reviewed by Saam Barati.

        * stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js:
        * stress/sampling-profiler-wasm-name-section.js:
        (platformSupportsSamplingProfiler.vm.isWasmSupported):
        * stress/sampling-profiler-wasm.js:
        (platformSupportsSamplingProfiler.vm.isWasmSupported):
        * stress/sampling-profiler/samplingProfiler.js:
        (doesTreeHaveStackTrace):
        (runTest):
        * wasm/function-tests/nameSection.js:

2021-11-14  Mikhail R. Gadelha  <mikhail@igalia.com>

        Prevent fused multiply add during ParseInt
        https://bugs.webkit.org/show_bug.cgi?id=232951

        Reviewed by Yusuke Suzuki.

        When parsing the string in parseInt, gcc can wrongfully generate
        a fused multiply-add instruction, causing the conversion to be wrong
        for some high values. An add followed by a multiply gives the correct
        result and it is the code generated most of the times.

        This patch adds a volatile qualifier to the number variable, so the
        compiler doesn't try to optimize it, and enables a failing test on
        mips.

        Alternative solutions that I tried but gcc seems to ignore: #pragma
        STDC FP_CONTRACT OFF, compiling with -ffp-contract=off, and setting function
        attributes __attribute__((optimize("fp-contract=off"))) and
        __attribute__((optimize("-ffp-contract=off"))), so volative seems to be
        a good compromise.

        The issue was found when cross compiling to mips with gcc 8.4.0 and
        options -ffp-contract=off -mmadd4.

        * ChakraCore.yaml:

2021-11-12  Joseph Griego  <jgriego@igalia.com>

        [JSC] update test262
        https://bugs.webkit.org/show_bug.cgi?id=233058

        For picking up changes to the ShadowRealms test set.

        Reviewed by Yusuke Suzuki.

        * test262/expectations.yaml:
        * test262/harness/arrayContains.js: Removed.
        * test262/harness/async-gc.js:
        * test262/latest-changes-summary.txt:
        * test262/test/built-ins/Array/prototype/every/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/filter/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/find/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/findIndex/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/findLast/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/findLastIndex/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/forEach/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/map/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/reduce/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/reduceRight/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/Array/prototype/some/callbackfn-resize-arraybuffer.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js:
        (catch):
        * test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js:
        (catch):
        * test262/test/built-ins/FinalizationRegistry/gc-has-one-chance-to-call-cleanupCallback.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/callback-not-callable-throws.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-reference.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/custom-this.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/holdings-multiple-values.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/length.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/name.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/prop-desc.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/reentrancy.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined-with-gc.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/return-undefined.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-does-not-have-internal-cells-throws.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/cleanupSome/this-not-object-throws.js:
        * test262/test/built-ins/FinalizationRegistry/prototype/unregister/unregister-cleaned-up-cell.js:
        * test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-2.js:
        * test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
        * test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
        * test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-from-caller-realm.js: Added.
        (realm.Reflect.construct):
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-arguments.js: Added.
        (Symbol.toPrimitive):
        (toString):
        (valueOf):
        (apply):
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-throws-typeerror-on-non-primitive-returns.js: Added.
        (r.evaluate):
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-functions-accepts-callable-objects.js:
        * test262/test/built-ins/SharedArrayBuffer/prototype/prop-desc.js: Added.
        * test262/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js:
        * test262/test/built-ins/Temporal/Duration/compare/relativeto-string-zoneddatetime-wrong-offset.js: Added.
        * test262/test/built-ins/Temporal/Duration/compare/relativeto-sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js:
        * test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js: Added.
        (const.result.instance.add.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-string-zoneddatetime-wrong-offset.js: Added.
        (instance.add.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/add/relativeto-sub-minute-offset.js: Added.
        (const.result.instance.add.new.Temporal.Duration):
        (instance.add.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js:
        * test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-string-zoneddatetime-wrong-offset.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/round/relativeto-sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js:
        * test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js: Added.
        (const.result.instance.subtract.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-string-zoneddatetime-wrong-offset.js: Added.
        (instance.subtract.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-sub-minute-offset.js: Added.
        (const.result.instance.subtract.new.Temporal.Duration):
        (instance.subtract.new.Temporal.Duration):
        * test262/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js:
        * test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-string-zoneddatetime-wrong-offset.js: Added.
        * test262/test/built-ins/Temporal/Duration/prototype/total/relativeto-sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-offset.js: Added.
        (test):
        * test262/test/built-ins/Temporal/Instant/prototype/toString/timezone-string-datetime.js:
        * test262/test/built-ins/Temporal/Instant/prototype/toString/timezone.js:
        * test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
        * test262/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/TimeZone/prototype/getOffsetStringFor/basic.js: Added.
        (test):
        * test262/test/built-ins/Temporal/ZonedDateTime/from/zoneddatetime-sub-minute-offset.js: Added.
        (string_appeared_here.forEach):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/equals/sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/getISOFields/offset.js: Added.
        (test):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/offset/basic.js: Added.
        (test):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/since/sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js:
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/toJSON/offset.js: Added.
        (test):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/balance-negative-time-units.js:
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/toString/offset.js: Added.
        (test):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/until/sub-minute-offset.js: Added.
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/offset-property-sub-minute.js: Added.
        (string_appeared_here.forEach):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/with/receiver-offset-broken.js: Added.
        (ObservedCalendar):
        (ObservedCalendar.prototype.toString):
        (ObservedCalendar.prototype.mergeFields):
        (ObservedCalendar.prototype.resetCalls):
        * test262/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js: Added.
        * test262/test/built-ins/Temporal/getOwnPropertyNames.js:
        * test262/test/built-ins/TypedArray/prototype/every/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/filter/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/find/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/findIndex/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/findLast/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/findLastIndex/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/forEach/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/map/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/reduce/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/reduceRight/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/some/callbackfn-resize.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/WeakRef/prototype/deref/gc-cleanup-not-prevented-with-wr-deref.js:
        * test262/test/harness/arrayContains.js: Removed.
        * test262/test/harness/testTypedArray.js:
        * test262/test/intl402/Collator/prototype/resolvedOptions/order.js:
        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-dayPeriod.js:
        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-fractionalSecondDigits.js:
        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order-style.js:
        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/order.js:
        * test262/test/intl402/ListFormat/prototype/resolvedOptions/order.js:
        * test262/test/intl402/NumberFormat/constructor-options-roundingMode-invalid.js: Added.
        (brokenToString.toString):
        * test262/test/intl402/NumberFormat/constructor-options-throwing-getters-rounding-mode.js: Added.
        (get roundingMode):
        * test262/test/intl402/NumberFormat/constructor-signDisplay-negative.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-ceil.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-expand.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-floor.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-ceil.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-even.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-expand.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-floor.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-half-trunc.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/format-rounding-mode-trunc.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-de-DE.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-en-US.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ja-JP.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-ko-KR.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-currency-zh-TW.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-de-DE.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-en-US.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ja-JP.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-ko-KR.js: Added.
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-negative-zh-TW.js: Added.
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-de-DE.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-en-US.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ja-JP.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-ko-KR.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-currency-zh-TW.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-de-DE.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-en-US.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ja-JP.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-ko-KR.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-negative-zh-TW.js: Added.
        (verifyFormatParts):
        (verifyFormatParts.nf.formatToParts):
        * test262/test/intl402/NumberFormat/prototype/resolvedOptions/order.js:
        * test262/test/intl402/NumberFormat/prototype/resolvedOptions/roundingMode.js: Added.
        * test262/test/intl402/PluralRules/prototype/resolvedOptions/order.js:
        * test262/test/intl402/RelativeTimeFormat/prototype/resolvedOptions/order.js:
        * test262/test/intl402/Segmenter/prototype/resolvedOptions/order.js:
        * test262/test/language/block-scope/syntax/for-in/acquire-properties-from-array.js:
        * test262/test/language/block-scope/syntax/for-in/acquire-properties-from-object.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-arrow-assignment-expression-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-arrow-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-arrow-function-return-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-function-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-function-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-function-return-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-gen-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-async-gen-return-await-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-block-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-do-while-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-else-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-function-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-if-braceless-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-if-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/nested-while-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/syntax-nested-block-labeled-eval-script-code-host-resolves-module-code.js:
        * test262/test/language/expressions/dynamic-import/usage/top-level-import-then-eval-script-code-host-resolves-module-code.js:
        * test262/test262-Revision.txt:

2021-11-12  Guillaume Emont  <guijemont@igalia.com>

        Unskip typeProfiler/getter-richards.js on armv7
        https://bugs.webkit.org/show_bug.cgi?id=233050

        Unreviewed gardening.

        Our arm bots are now fast enough to run this, it does still timeout on
        some of our test mips devices though.

        * typeProfiler/getter-richards.js:

2021-11-12  Xan Lopez  <xan@igalia.com>

        [JSC][32bit] Unskip JSTests/microbenchmarks/redefine-property-accessor-dictionary.js
        https://bugs.webkit.org/show_bug.cgi?id=233034

        Unreviewed gardening.

        This is skipped for memoryLimited *and* mips|arm systems, but a)
        seems to run fine on both setups and b) is almost identical to the
        other tests/benchmarks that landed in the same patch, that do not
        have that limitation. Optimistically remove the skip and let's see
        if it sticks.

        * microbenchmarks/redefine-property-accessor-dictionary.js:

2021-11-11  Michael Saboff  <msaboff@apple.com>

        Inline RegExp.test JIT code in DFG and FTL
        https://bugs.webkit.org/show_bug.cgi?id=230469

        Reviewed by Saam Barati.

        New microbenchmark.

        * microbenchmarks/regexp-test-inlined.js: Added.

2021-11-10  Saam Barati  <sbarati@apple.com>

        in_by_val should not constant fold to in_by_id when the property is a property index
        https://bugs.webkit.org/show_bug.cgi?id=232753

        Reviewed by Yusuke Suzuki.

        * stress/dont-in-by-id-when-index-2.js: Added.
        (assert):
        (main.v179):
        (main.async v244):
        (main):
        * stress/dont-in-by-id-when-index.js: Added.
        (assert):
        (test):

2021-11-10  Xan Lopez  <xan@igalia.com>

        [JSC][32bit] Unskip JSTests/stress/json-stringify-string-builder-overflow.js
        https://bugs.webkit.org/show_bug.cgi?id=232944

        Unreviewed gardening.

        This seems to survive 1000 iterations on both armv7 and mips
        hw. Remove the arch-specific skips leaving the memory limited
        ones.

        * stress/json-stringify-string-builder-overflow.js:

2021-11-09  Saam Barati  <sbarati@apple.com>

        When inlining NewSymbol in the DFG don't universally call ToString on the input
        https://bugs.webkit.org/show_bug.cgi?id=232754

        Reviewed by Robin Morisset.

        * stress/inline-new-symbol-dfg-undefined-first-arg.js: Added.
        (assert):
        (foo):

2021-11-09  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg on ARM
        https://bugs.webkit.org/show_bug.cgi?id=232811

        Unreviewed gardening.

        Gate the number of iterations adjustment on $memoryLimited instead of
        the arch.

        * stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:

2021-11-09  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip deltablue-for-of.js on arm and mips
        https://bugs.webkit.org/show_bug.cgi?id=227291

        Unreviewed gardening.

        The test is not crashing but timeouts because of the number of
        iterations. So to enable testing in more archs, we reduced the
        number of iterations and constraints.

        * typeProfiler/deltablue-for-of.js:
        (deltaBlue):

2021-11-09  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip microbenchmarks/memcpy-typed-loop.js on arm/mips
        https://bugs.webkit.org/show_bug.cgi?id=232813

        Unreviewed gardening.

        Can't reproduce this any more.
        * microbenchmarks/memcpy-typed-loop.js:

2021-11-08  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Implement IntlNumberFormat v3
        https://bugs.webkit.org/show_bug.cgi?id=215438

        Reviewed by Ross Kirsling.

        * stress/intl-numberformat-format-large.js: Added.
        (shouldBe):
        * stress/intl-numberformat-format-range-v3.js: Added.
        (shouldBe):
        (shouldThrow):
        (shouldNotThrow):
        (nf.formatRange.string_appeared_here.forEach):
        (nf.formatRangeToParts.validRanges.forEach):
        (nf6.formatRange.shouldThrow):
        * stress/intl-numberformat-format-string-v3.js: Added.
        (shouldBe):
        * stress/intl-numberformat-format-string.js: Added.
        (shouldBe):
        * stress/intl-numberformat-format-to-parts.js:
        * stress/intl-numberformat-rounding-increment-resolved-match-v3.js: Added.
        (shouldBe):
        (validRoundingIncrements.forEach):
        * stress/intl-numberformat-rounding-increment-v3.js: Added.
        (shouldThrow):
        (validRoundingIncrements.forEach):
        (invalidRoundingIncrements.forEach):
        * stress/intl-numberformat-rounding-increment-value-hanidec.js: Added.
        (shouldBe):
        * stress/intl-numberformat-rounding-increment-value-v3.js: Added.
        (shouldBe):
        * stress/intl-numberformat-rounding-increment-value.js: Added.
        (shouldBe):
        * stress/intl-numberformat-rounding-mode-table-v3.js: Added.
        (shouldBe):
        (Object.keys.expectations.forEach):
        * stress/intl-numberformat-rounding-mode-v3.js: Added.
        (shouldBe):
        (shouldThrow):
        (validRoundingMode.forEach):
        (invalidRoundingMode.forEach):
        (let.options.get signDisplay):
        (let.options.get roundingMode):
        * stress/intl-numberformat-sign-display-v3.js: Added.
        (shouldBe):
        * stress/intl-numberformat-trailing-zero-display-resolved-options-v3.js: Added.
        (shouldBe):
        * stress/intl-numberformat-trailing-zero-display-v3.js: Added.
        (shouldBe):
        * stress/intl-numberformat-usegrouping-v3.js: Added.
        (shouldBe):
        (shouldThrow):
        (validUseGrouping.forEach):
        (invalidUseGrouping.forEach):
        (all.forEach):
        (mgd1.forEach):
        (mgd2.forEach):
        * stress/intl-numberformat.js:
        (testNumberFormat):
        (shouldBe.testNumberFormat.Intl.NumberFormat):
        * stress/intl-pluralrules-selectrange.js: Added.
        (shouldBe):
        * test262/config.yaml:

2021-11-08  Saam Barati  <sbarati@apple.com>

        We need to PreferNumber when calling toPrimitive for negate
        https://bugs.webkit.org/show_bug.cgi?id=232679

        Reviewed by Alexey Shvayka.

        * stress/negate-prefer-number-to-primitive.js

2021-11-05  Russell Epstein  <repstein@apple.com>

        Cherry-pick r284635. rdar://problem/85039977

    [JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
    https://bugs.webkit.org/show_bug.cgi?id=232059
    
    Reviewed by Saam Barati.
    
    JSTests:
    
    * stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
    (foo.bar):
    (foo):
    
    Source/JavaScriptCore:
    
    When inserting GetTypedArrayLengthAsInt52 after fixup phase, we must set NodeResultInt52.
    
    * dfg/DFGSSALoweringPhase.cpp:
    (JSC::DFG::SSALoweringPhase::handleNode):
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284635 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2021-10-21  Yusuke Suzuki  <ysuzuki@apple.com>

            [JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
            https://bugs.webkit.org/show_bug.cgi?id=232059

            Reviewed by Saam Barati.

            * stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
            (foo.bar):
            (foo):

2021-11-04  Alexey Shvayka  <ashvayka@apple.com>

        We need to PreferNumber when calling toPrimitive for coercion to BigInt
        https://bugs.webkit.org/show_bug.cgi?id=232720

        Reviewed by Saam Barati.

        * stress/big-int-constructor.js:
        * stress/bigint-asintn.js:
        * stress/bigint-asuintn.js:

2021-11-04  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip tests disabled because of the recent 32 bits issues
        https://bugs.webkit.org/show_bug.cgi?id=230490

        Unreviewed gardening.

        * ChakraCore.yaml:

2021-11-02  Philip Chimento  <pchimento@igalia.com>

        [JSC] Implement Temporal.Instant
        https://bugs.webkit.org/show_bug.cgi?id=229826

        Reviewed by Yusuke Suzuki.

        * stress/temporal-instant.js: Added.
        (shouldBe):
        (shouldNotBe):
        (shouldThrow):
        (instants.forEach):
        (shouldThrow.new.Temporal.Instant):
        (const.maxValue.new.Temporal.Instant):
        (shouldBe.epoch.subtract):
        * test262/config.yaml: No need to ignore all Temporal.Instant tests
          anymore, only the ones for the unimplemented methods.

2021-11-02  Saam Barati  <sbarati@apple.com>

        EnumeratorGetByVal for IndexedMode+OwnStructureMode doesn't always recover the property name
        https://bugs.webkit.org/show_bug.cgi?id=231321
        <rdar://problem/84211697>

        Reviewed by Yusuke Suzuki.

        * stress/enumerator-get-by-val-needs-to-recover-property-name.js: Added.

2021-11-01  Saam Barati  <sbarati@apple.com>

        ArrayBuffer species watchpoint being invalidated doesn't mean it's not an ArrayBuffer constructor from the same global object
        https://bugs.webkit.org/show_bug.cgi?id=231322
        <rdar://problem/84212078>

        Reviewed by Yusuke Suzuki.

        * stress/array-buffer-species-watchpoint-should-not-dictate-if-constructor-is-correct.js: Added.
        (main.async v23):
        (main):

2021-11-01  Robin Morisset  <rmorisset@apple.com>

        JSGenericTypedArrayView<Adaptor>::set crashes if the length + objectOffset is > UINT32_MAX
        https://bugs.webkit.org/show_bug.cgi?id=231975
        rdar://84402043

        Reviewed by Yusuke Suzuki.

        - regress-84402043 is the testcase that revealed the problem.
        - typed-array-set-large(-offset) test the same function, in the typed-array to typed-array case
        - typed-array-large-slice tests the only caller that passes a non-0 objectOffset, and found other issues with it
        - typed-array-large-oob-eventually-not.js is just another test of the Wasm4GB change that I had forgotten to commit

        * stress/regress-84402043.js: Added.
        * stress/typed-array-large-oob-eventually-not.js: Added.
        (test):
        * stress/typed-array-large-slice.js: Added.
        (expect):
        * stress/typed-array-set-large-offset.js: Added.
        * stress/typed-array-set-large.js: Added.

2021-10-29  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, reduce # of iterations in stress/validate-int-52-ai-state.js due to Debug timeout

        * stress/validate-int-52-ai-state.js:

2021-10-29  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, skip stress/unlinked-code-block-destructor.js when it is debug build

        The bug was not related to Debug build. And it is timing out on Debug build due to
        heavy test load.

        * stress/unlinked-code-block-destructor.js:

2021-10-29  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, reduce # of iteration since it is timing out on Debug JSC bot

        * stress/put-private-name-ic-write-barrier.js:
        (PutPrivateNameIC):

2021-10-29  Dmitry Bezhetskov  <dbezhetskov@igalia.com>

        [WASM-Function-References] Add support for (ref.null heaptype)
        https://bugs.webkit.org/show_bug.cgi?id=229707

        Reviewed by Yusuke Suzuki.

        Added spec tests for (ref.null $t) : https://github.com/WebAssembly/function-references/blob/master/test/core/ref_null.wast.

        * wasm.yaml:
        * wasm/function-references-spec-tests/call_ref.wast.js:
        * wasm/function-references-spec-tests/ref_null.wast.js: Added.

2021-10-27  Dmitry Bezhetskov  <dbezhetskov@igalia.com>

        [WASM-Function-References] Add call_ref spec tests
        https://bugs.webkit.org/show_bug.cgi?id=229710

        Reviewed by Yusuke Suzuki.
        
        Add tests for call_ref instruction from the spec repo:
        https://github.com/WebAssembly/function-references/blob/master/test/core/call_ref.wast.
        Also added tests for Funcref/Externref in Wasm tables and globals to test
        new internal representation of Funcref = (ref null funcref).
        
        * wasm.yaml:
        * wasm/function-references-spec-tests/call_ref.wast.js: Added.
        * wasm/function-references/ref_types.js:
        (async testRefGlobalCheck):
        (async testNonNullExternrefIncompatible):
        (async testNonNullFuncrefIncompatible):
        (async testWasmJSGlobals):
        (async testRefTypesInTables):
        * wasm/wasm.json:

2021-10-26  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreivewed, fix CLoop build and test failure

        CLoop is running Yarr interpreter instead of Yarr JIT.

        * mozilla/ecma_3/RegExp/regress-85721.js:

2021-10-26  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, fix test262 bot failures
        https://bugs.webkit.org/show_bug.cgi?id=232005

        * test262/expectations.yaml:

2021-10-25  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Don't branch around register allocation in DFG enumerator get by val
        https://bugs.webkit.org/show_bug.cgi?id=232260
        rdar://84544469

        Reviewed by Robin Morisset.

        * stress/dont-branch-around-regalloc-enumerator-get-by-val-float.js: Added.
        (foo):

2021-10-24  Alexey Shvayka  <ashvayka@apple.com>

        InternalFunction::createSubclassStructure() should use prototype's global object
        https://bugs.webkit.org/show_bug.cgi?id=231874

        Reviewed by Yusuke Suzuki.

        * stress/internal-function-subclass-structure-realm.js: Added.

2021-10-23  Phillip Mates  <pmates@igalia.com>

        update test262
        https://bugs.webkit.org/show_bug.cgi?id=232005

        Reviewed by Yusuke Suzuki.

        * test262/expectations.yaml:
        * test262/latest-changes-summary.txt:
        * test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_large-typed-array.js:
        (concatTypedArray):
        * test262/test/built-ins/Array/prototype/concat/Array.prototype.concat_small-typed-array.js:
        (concatTypedArray):
        * test262/test/built-ins/Array/prototype/copyWithin/non-negative-target-and-start.js:
        * test262/test/built-ins/Function/internals/Call/class-ctor-realm.js:
        * test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js:
        * test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-49.js:
        * test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-b-2.js:
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-available-properties.js: Added.
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-config-only-properties.js: Added.
        (const.remainingNames.names.filter.name.esNonConfigValues.includes):
        (hasOwn.call):
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/globalthis-orginary-object.js: Added.
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/throws-error-from-ctor-realm.js: Added.
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/validates-realm-object.js:
        * test262/test/built-ins/ShadowRealm/prototype/evaluate/wrapped-function-proto-from-caller-realm.js:
        (checkArgWrapperFn.realm.evaluate.string_appeared_here.assert.sameValue.checkArgWrapperFn):
        * test262/test/built-ins/ShadowRealm/prototype/importValue/not-constructor.js:
        * test262/test/built-ins/Temporal/PlainDate/prototype/since/largestunit-higher-units.js:
        * test262/test/built-ins/Temporal/PlainMonthDay/prototype/toPlainDate/basic.js:
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-de-DE.js:
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-en-US.js:
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ja-JP.js:
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-ko-KR.js:
        * test262/test/intl402/NumberFormat/prototype/format/signDisplay-currency-zh-TW.js:
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-de-DE.js:
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-en-US.js:
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ja-JP.js:
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-ko-KR.js:
        * test262/test/intl402/NumberFormat/prototype/formatToParts/signDisplay-currency-zh-TW.js:
        * test262/test/intl402/Temporal/Instant/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/Instant/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/Instant/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDate/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainDateTime/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainMonthDay/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainTime/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/PlainYearMonth/prototype/toLocaleString/options-undefined.js.
        * test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/locales-undefined.js.
        * test262/test/intl402/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js: Renamed from JSTests/test262/test/built-ins/Temporal/ZonedDateTime/prototype/toLocaleString/options-undefined.js.
        * test262/test/language/computed-property-names/basics/number.js:
        * test262/test/language/computed-property-names/basics/string.js:
        * test262/test/language/computed-property-names/basics/symbol.js:
        * test262/test/language/computed-property-names/class/method/generator.js:
        * test262/test/language/computed-property-names/class/method/number.js:
        * test262/test/language/computed-property-names/class/method/string.js:
        * test262/test/language/computed-property-names/class/method/symbol.js:
        * test262/test/language/computed-property-names/object/method/generator.js:
        * test262/test/language/computed-property-names/object/method/number.js:
        * test262/test/language/computed-property-names/object/method/string.js:
        * test262/test/language/computed-property-names/object/method/symbol.js:
        * test262/test/language/computed-property-names/to-name-side-effects/numbers-object.js:
        * test262/test/language/computed-property-names/to-name-side-effects/object.js:
        * test262/test/language/identifiers/part-unicode-14.0.0-escaped.js: Added.
        * test262/test/language/identifiers/part-unicode-14.0.0.js: Added.
        * test262/test/language/identifiers/start-unicode-14.0.0-escaped.js: Added.
        * test262/test/language/identifiers/start-unicode-14.0.0.js: Added.
        * test262/test/language/rest-parameters/arrow-function.js:
        * test262/test/language/rest-parameters/no-alias-arguments.js:
        (f):
        * test262/test/language/rest-parameters/with-new-target.js:
        (Base):
        (Child):
        * test262/test/language/statements/class/definition/fn-length-static-precedence-order.js:
        * test262/test/language/statements/class/definition/fn-name-static-precedence-order.js:
        * test262/test/language/statements/class/static-init-arguments-functions.js:
        * test262/test/language/statements/class/static-init-arguments-methods.js:
        * test262/test/language/statements/class/subclass/builtin-objects/Array/contructor-calls-super-multiple-arguments.js:
        * test262/test/language/statements/class/subclass/builtin-objects/Array/regular-subclassing.js:
        * test262/test262-Revision.txt:

2021-10-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] GetTypedArrayLengthAsInt52 must be inserted only when we ensure that input is TypedArray via array-mode-based filtering
        https://bugs.webkit.org/show_bug.cgi?id=232168
        rdar://84366658

        Reviewed by Robin Morisset.

        * stress/gettypedarraylengthasint52-must-be-emitted-for-typedarray.js: Added.
        (foo):

2021-10-22  Asumu Takikawa  <asumu@igalia.com>

        Change WebAssembly module import linking time to evaluate step.
        https://bugs.webkit.org/show_bug.cgi?id=231114

        Reviewed by Yusuke Suzuki.

        Added test cases based on Wasm/ESM proposal examples from:

          https://github.com/WebAssembly/esm-integration/blob/main/proposals/esm-integration/EXAMPLES.md

        The new tests cases cover the bindings made for both JS<->Wasm
        and Wasm<->JS cyclic module cases, and importing values from JS
        into Wasm modules. The tests do not cover importing memory values
        as this does not work yet.

        * wasm/modules/wasm-js-cycle.js:
        * wasm/modules/wasm-js-cycle/entry-global.wasm:
        * wasm/modules/wasm-js-cycle/entry-global.wat:
        * wasm/modules/wasm-js-cycle/entry-table.wasm:
        * wasm/modules/wasm-js-cycle/entry-table.wat:
        * wasm/modules/wasm-js-cycle/global.js:
        (from.string_appeared_here.export.incrementGlobal): Deleted.
        * wasm/modules/wasm-js-cycle/table.js:
        (from.string_appeared_here.export.setTable): Deleted.

        * wasm/modules/js-wasm-cycle.js:
        (then):
        * wasm/modules/js-wasm-cycle/entry-function.js: Added.
        (f):
        * wasm/modules/js-wasm-cycle/entry-i32-global.js: Added.
        * wasm/modules/js-wasm-cycle/entry-i32-value.js: Added.
        * wasm/modules/js-wasm-cycle/entry-memory.js: Added.
        * wasm/modules/js-wasm-cycle/entry-table.js: Added.
        * wasm/modules/js-wasm-cycle/entry-wasm-global.js: Added.
        (f):
        * wasm/modules/js-wasm-cycle/entry-wasm-memory.js: Added.
        (f):
        * wasm/modules/js-wasm-cycle/entry-wasm-table.js: Added.
        (f):
        * wasm/modules/js-wasm-cycle/function.wasm: Added.
        * wasm/modules/js-wasm-cycle/function.wat: Added.
        * wasm/modules/js-wasm-cycle/i32-global.wasm: Added.
        * wasm/modules/js-wasm-cycle/i32-global.wat: Added.
        * wasm/modules/js-wasm-cycle/i32-value.wasm: Added.
        * wasm/modules/js-wasm-cycle/i32-value.wat: Added.
        * wasm/modules/js-wasm-cycle/memory.wasm: Added.
        * wasm/modules/js-wasm-cycle/memory.wat: Added.
        * wasm/modules/js-wasm-cycle/table.wasm: Added.
        * wasm/modules/js-wasm-cycle/table.wat: Added.
        * wasm/modules/js-wasm-cycle/wasm-global.wasm: Added.
        * wasm/modules/js-wasm-cycle/wasm-global.wat: Added.
        * wasm/modules/js-wasm-cycle/wasm-memory.wasm: Added.
        * wasm/modules/js-wasm-cycle/wasm-memory.wat: Added.
        * wasm/modules/js-wasm-cycle/wasm-table.wasm: Added.
        * wasm/modules/js-wasm-cycle/wasm-table.wat: Added.
        * wasm/modules/wasm-imports-js-exports.js:
        * wasm/modules/wasm-imports-js-exports/global.js: Added.
        * wasm/modules/wasm-imports-js-exports/global.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/global.wat: Added.
        * wasm/modules/wasm-imports-js-exports/table.js: Added.
        * wasm/modules/wasm-imports-js-exports/table.wasm: Added.
        * wasm/modules/wasm-imports-js-exports/table.wat: Added.
        * wasm/modules/wasm-js-cycle.js:
        * wasm/modules/wasm-js-cycle/entry-global.wasm: Added.
        * wasm/modules/wasm-js-cycle/entry-global.wat: Added.
        * wasm/modules/wasm-js-cycle/entry-memory.wasm: Added.
        * wasm/modules/wasm-js-cycle/entry-memory.wat: Added.
        * wasm/modules/wasm-js-cycle/entry-table.wasm: Added.
        * wasm/modules/wasm-js-cycle/entry-table.wat: Added.
        * wasm/modules/wasm-js-cycle/global.js: Added.
        (export.incrementGlobal):
        * wasm/modules/wasm-js-cycle/memory.js: Added.
        (from.string_appeared_here.export.setMemory):
        * wasm/modules/wasm-js-cycle/table.js: Added.
        (export.setTable):

2021-10-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Inserted GetTypedArrayLengthAsInt52 for PutByVal should have NodeResultInt52
        https://bugs.webkit.org/show_bug.cgi?id=232059

        Reviewed by Saam Barati.

        * stress/inserted-gettypedarraylengthasint52-should-have-int52-result-for-put-by-val.js: Added.
        (foo.bar):
        (foo):

2021-10-18  Phillip Mates  <pmates@igalia.com>

        Test coverage for JSC shadow realms implementation
        https://bugs.webkit.org/show_bug.cgi?id=230602

        Reviewed by Yusuke Suzuki.

        * modules/import-meta-syntax.js:
        (shouldThrow):
        * stress/eval-indirect.js: Added.
        (shouldBe):
        (shouldThrow):
        * stress/import-syntax.js:
        * stress/resources/shadow-realm-example-module.js: Added.
        (putInGlobal):
        (getFromGlobal):
        (getAnObject):
        (getCallCount):
        * stress/shadow-realm-evaluate.js: Added.
        (shouldBe):
        (shouldThrow):
        (assertionFn):
        (shouldBe.String):
        (shouldBe.globalObjectFor.doEval):
        (shouldBe.globalObjectFor):
        * stress/shadow-realm-import-value.js: Added.
        (shouldBe):
        (shouldThrow):
        (async shouldThrowAsync):
        (async const):
        (doImport):
        * stress/shadow-realm.js: Added.
        (shouldBe):
        (throw.new.Error):
        * test262/config.yaml:

2021-10-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] PutByVal's child5 should be KnownInt32Use / Int52RepUse in FTL
        https://bugs.webkit.org/show_bug.cgi?id=231884
        rdar://84357099

        Reviewed by Robin Morisset.

        * stress/put-by-val-known-int32.js: Added.
        (new.Uint8Array.1000000.map):

2021-10-16  Robin Morisset  <rmorisset@apple.com>

        Allow WASM to use up to 4GB
        https://bugs.webkit.org/show_bug.cgi?id=229353
        rdar://81603447

        Reviewed by Yusuke Suzuki.

        The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
        They now expect success at 4GB, and failure at 4GB+1.
        The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
        Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.

        I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.

        * stress/big-wasm-memory-grow-no-max.js:
        (test):
        * stress/big-wasm-memory-grow.js:
        (test):
        * stress/big-wasm-memory.js:
        (test):
        * stress/typed-array-always-large.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * stress/typed-array-eventually-large.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * stress/typed-array-large-eventually-oob.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:

2021-10-15  Robin Morisset  <rmorisset@apple.com>

        Revert r284230, my last fixes to the watch build make it break tests
        https://bugs.webkit.org/show_bug.cgi?id=231797

        Unreviewed.

        * stress/big-wasm-memory-grow-no-max.js:
        (test):
        * stress/big-wasm-memory-grow.js:
        (test):
        * stress/big-wasm-memory.js:
        (test):
        * stress/typed-array-always-large.js: Removed.
        (getArrayLength): Deleted.
        (getByVal): Deleted.
        (putByVal): Deleted.
        (test): Deleted.
        * stress/typed-array-eventually-large.js: Removed.
        (getArrayLength): Deleted.
        (getByVal): Deleted.
        (putByVal): Deleted.
        (test): Deleted.
        * stress/typed-array-large-eventually-oob.js: Removed.
        (getArrayLength): Deleted.
        (getByVal): Deleted.
        (putByVal): Deleted.
        (test): Deleted.
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:

2021-10-14  Robin Morisset  <rmorisset@apple.com>

        Allow WASM to use up to 4GB
        https://bugs.webkit.org/show_bug.cgi?id=229353
        rdar://81603447

        Reviewed by Yusuke Suzuki.

        The big-wasm-memory/wasm-memory-requested... tests used to simply expect an OOM at 2GB.
        They now expect success at 4GB, and failure at 4GB+1.
        The exceptions they expect are now more specific, as previously there was a rounding issue that was causing the specific exceptions not to be thrown (resulting in the generic OOM exception later in the code).
        Finally I made them only run on 64-bit platforms since we don't support typed arrays >=2GB on 32-bits, and I made them only run in one configuration since they can take a little bit of time.

        I also added a few new tests, specifically checking our handling of large typed arrays, and especially of indices above INT32_MAX.

        * stress/big-wasm-memory-grow-no-max.js:
        (test):
        * stress/big-wasm-memory-grow.js:
        (test):
        * stress/big-wasm-memory.js:
        (test):
        * stress/typed-array-always-large.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * stress/typed-array-eventually-large.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * stress/typed-array-large-eventually-oob.js: Added.
        (getArrayLength):
        (getByVal):
        (putByVal):
        (test):
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE-2.js:
        * wasm/regress/wasm-memory-requested-more-than-MAX_ARRAY_BUFFER_SIZE.js:

2021-10-14  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r284151.
        https://bugs.webkit.org/show_bug.cgi?id=231740

        WTR

        Reverted changeset:

        "Test coverage for JSC shadow realms implementation"
        https://bugs.webkit.org/show_bug.cgi?id=230602
        https://commits.webkit.org/r284151

2021-10-14  Phillip Mates  <pmates@igalia.com>

        Test coverage for JSC shadow realms implementation
        https://bugs.webkit.org/show_bug.cgi?id=230602

        Reviewed by Yusuke Suzuki.

        * modules/import-meta-syntax.js:
        (shouldThrow):
        * stress/eval-indirect.js: Added.
        (shouldBe):
        (shouldThrow):
        * stress/import-syntax.js:
        * stress/resources/shadow-realm-example-module.js: Added.
        (putInGlobal):
        (getFromGlobal):
        (getAnObject):
        (getCallCount):
        * stress/shadow-realm-evaluate.js: Added.
        (shouldBe):
        (shouldThrow):
        (assertionFn):
        (shouldBe.String):
        (shouldBe.globalObjectFor.doEval):
        (shouldBe.globalObjectFor):
        * stress/shadow-realm-import-value.js: Added.
        (shouldBe):
        (shouldThrow):
        (async shouldThrowAsync):
        (async const):
        (doImport):
        * stress/shadow-realm.js: Added.
        (shouldBe):
        (throw.new.Error):
        * test262/config.yaml:

2021-10-11  Saam Barati  <sbarati@apple.com>

        Don't branch around register allocation in DFG enumerator get by val and pass in the right LValue type to strictInt52ToJSValue
        https://bugs.webkit.org/show_bug.cgi?id=231465
        <rdar://83876470>

        Reviewed by Yusuke Suzuki.

        * stress/dont-branch-around-regalloc-enumerator-get-by-val.js: Added.
        (foo):

2021-10-09  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Refine RegExp#compile based on regexp-legacy-features proposal
        https://bugs.webkit.org/show_bug.cgi?id=231486

        Reviewed by Alexey Shvayka.

        * stress/regexp-recompile.js: Added.
        (shouldBe):
        (recompile):
        (target):
        * test262/expectations.yaml:

2021-10-08  Tadeu Zagallo  <tzagallo@apple.com>

        Implement the WebAssembly exception handling proposal
        https://bugs.webkit.org/show_bug.cgi?id=229681
        <rdar://81603387>

        Reviewed by Keith Miller.

        Add new tests for the exception handling and import a set of tests used by V8 into wasm/v8.

        * wasm.yaml:
        * wasm/Builder.js:
        (const._importExceptionContinuation.type.Import.field):
        (export.default.Builder.prototype._registerSectionBuilders.const.section.in.WASM.description.section.switch.section.case.string_appeared_here.this.section):
        (const._exportFunctionContinuation.type.Export.field): Deleted.
        (const._exportFunctionContinuation): Deleted.
        * wasm/Builder_WebAssemblyBinary.js:
        (const.emitters.Import):
        (const.emitters.Export):
        (const.emitters.Exception):
        * wasm/assert.js:
        * wasm/self-test/test_BuilderJSON.js:
        (ImportBeforeTypeSections): Deleted.
        * wasm/stress/catch-with-delegate.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        (assert.throws):
        * wasm/stress/create-tag-from.js: Added.
        * wasm/stress/exception-cross-instance-2.js: Added.
        (test):
        (assert.eq):
        * wasm/stress/exception-cross-instance-3.js: Added.
        (test):
        (assert.eq):
        * wasm/stress/exception-cross-instance.js: Added.
        (test):
        (assert.throws):
        (instB.new.WebAssembly.Instance):
        * wasm/stress/exception-liveness-tier-up.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.catch):
        (assert.eq.):
        (assert.eq):
        * wasm/stress/exception-multiple-instances.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.const.module.new.WebAssembly.Module):
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.inst.exports.throw):
        * wasm/stress/exception-simple-delegate.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testSimpleThrowDelegate):
        (testThrowDelegateSkip):
        (testDelegateCaller):
        (testSimpleDelegateMerge):
        * wasm/stress/exception-simple-throw-catch.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testSimpleTryCatch):
        (testSimpleTryCatchAll):
        (testCallTryCatch):
        (testCallTryCatchAll):
        (testSimpleTryCatchValue):
        (testCallTryCatchValue):
        (testStackTryCatch):
        (testLiveAfterTryCatch):
        (testLiveAfterTryCatchAll):
        (testUnifyTryCatchCatch):
        (testUnifyTryCatchCatchAll):
        (testUnifyTryNoThrow):
        (testUnifyTryNoCatch):
        (testNestedCatch):
        * wasm/stress/exception-thrown-from-js-to-wasm-catchall-rethrow.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        * wasm/stress/exception-thrown-from-js-to-wasm-catchall.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        * wasm/stress/exception-thrown-from-js-to-wasm.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        * wasm/stress/exception-thrown-out-of-wasm.js: Added.
        * wasm/stress/exception-thrown-over-wasm.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        * wasm/stress/exception-trap.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testCannotCatchUnreachable):
        (testCannotCatchOOB):
        (testWasmAPIThrow):
        (testJSCatchAndRethrow):
        * wasm/stress/rethrow-from-catch-to-catch.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        * wasm/stress/rethrow-to-catch.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.callback):
        (assert.throws.callback):
        (assert.throws):
        * wasm/stress/rethrow-to-delegate-to-catch.js: Added.
        (import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here):
        (assert.eq.exn.getArg):
        (assert.throws):
        (assert.throws.callback):
        (assert.eq):
        * wasm/stress/simple-export-exception.js: Added.
        * wasm/v8/LICENSE: Added.
        * wasm/v8/exceptions-api.js: Added.
        (TestImport):
        (TestImportExport):
        (TestExceptionConstructor):
        (TestExceptionConstructorWithPayload):
        (TestCatchJSException.js_func):
        (js_func):
        (TestCatchJS):
        (TestCatchJSExceptionWithPayload):
        (TestGetArg):
        * wasm/v8/exceptions-export.js: Added.
        (TestExportMultiple):
        (TestExportOutOfBounds):
        * wasm/v8/exceptions-externref.js: Added.
        (TestThrowRefNull):
        (TestThrowRefParam):
        * wasm/v8/exceptions-import.js: Added.
        (NewExportedTag):
        (TestImportSimple):
        (TestImportMissing):
        * wasm/v8/exceptions-rethrow.js: Added.
        (TestRethrowInCatch):
        (TestRethrowInCatchAll):
        (TestRethrowNested):
        (TestRethrowRecatch):
        * wasm/v8/exceptions-shared.js: Added.
        (NewExportedException):
        (TestSingleInstance.let.instance.builder.instantiate.):
        (TestSingleInstance):
        (TestMultiInstanceNonShared.let.instance2.builder.instantiate.):
        (TestMultiInstanceShared.let.instance2.builder.instantiate.):
        (TestMultiModuleShared.let.instance2.builder2.instantiate.):
        * wasm/v8/exceptions-type-reflection.js: Added.
        (TestExport):
        (TestImportExport):
        * wasm/v8/exceptions-utils.js: Added.
        (assertWasmThrows):
        * wasm/v8/exceptions.js: Added.
        (TestThrowSimple):
        (TestCatchSimple):
        (TestTrapNotCaught):
        (TestTrapViaJSNotCaught.js_import):
        (TestManuallyThrownRuntimeErrorCaught.throw_exc):
        (TestManuallyThrownRuntimeErrorCaught):
        (TestExnWithWasmProtoNotCaught.js_import):
        (TestExnWithWasmProtoNotCaught):
        (TestStackOverflowNotCaught.stack_overflow):
        (TestStackOverflowNotCaught):
        (TestThrowParamI):
        (TestThrowParamF):
        (TestThrowParamL):
        (TestThrowParamD):
        (TestCatchCrossFunctions.throw_value):
        (TestCatchCrossFunctions.throw_string):
        (TestCatchCrossFunctions.throw_undefined):
        (TestCatchCrossFunctions.throw_fp):
        (TestCatchCrossFunctions.throw_large):
        (TestDelegateNoThrow):
        (TestDelegateThrow):
        (TestDelegateThrowNoCatch):
        (TestDelegateMerge):
        (TestDelegate1):
        (TestDelegateUnreachable):
        (TestDelegateToCaller):
        (TestUnreachableInCatchAll):
        (TestThrowWithLocal):
        (TestCatchlessTry):
        * wasm/v8/mjsunit.js: Added.
        (MjsUnitAssertionError):
        (MjsUnitAssertionError.prototype.toString):
        (catch):
        (classOf):
        (ValueOf):
        (prettyPrinted):
        (prettyPrintedArrayElement):
        (failWithMessage):
        (formatFailureText):
        (fail):
        (deepObjectEquals):
        (deepEquals):
        (assertSame):
        (assertNotSame):
        (assertEquals):
        (assertNotEquals):
        (assertEqualsDelta):
        (assertArrayEquals):
        (assertPropertiesEqual):
        (assertToStringEquals):
        (assertTrue):
        (assertFalse):
        (assertNull):
        (assertNotNull):
        (executeCode):
        (checkException):
        (assertThrows):
        (assertThrowsEquals):
        (assertThrowsAsync):
        (assertInstanceof):
        (assertDoesNotThrow):
        (assertUnreachable):
        (assertContains):
        (assertMatches):
        (concatenateErrors):
        (assertPromiseResult):
        (OptimizationStatus):
        (assertUnoptimized):
        (assertOptimized):
        (isNeverOptimizeLiteMode):
        (isNeverOptimize):
        (isAlwaysOptimize):
        (isInterpreted):
        (isBaseline):
        (isUnoptimized):
        (isOptimized):
        (isTurboFanned):
        (MjsUnitAssertionError.prepareStackTrace):
        * wasm/v8/wasm-module-builder.js: Added.
        (bytes):
        (wasmOptRefType):
        (wasmRefType):
        (wasmRtt):
        (wasmRttNoDepth):
        (makeSig):
        (makeSig_v_x):
        (makeSig_x_v):
        (makeSig_v_xx):
        (makeSig_r_v):
        (makeSig_r_x):
        (makeSig_r_xx):
        (defineWasmOpcode):
        (assertTraps):
        (Binary):
        (Binary.prototype.ensure_space):
        (Binary.prototype.trunc_buffer):
        (Binary.prototype.reset):
        (Binary.prototype.emit_u8):
        (Binary.prototype.emit_u16):
        (Binary.prototype.emit_u32):
        (Binary.prototype.emit_leb_u):
        (Binary.prototype.emit_u32v):
        (Binary.prototype.emit_u64v):
        (Binary.prototype.emit_bytes):
        (Binary.prototype.emit_string):
        (Binary.prototype.emit_heap_type):
        (Binary.prototype.emit_type):
        (Binary.prototype.emit_init_expr_recursive):
        (Binary.prototype.emit_init_expr):
        (Binary.prototype.emit_header):
        (Binary.prototype.emit_section):
        (WasmFunctionBuilder):
        (WasmFunctionBuilder.prototype.numLocalNames):
        (WasmFunctionBuilder.prototype.exportAs):
        (WasmFunctionBuilder.prototype.exportFunc):
        (WasmFunctionBuilder.prototype.setCompilationHint):
        (WasmFunctionBuilder.prototype.addBody):
        (WasmFunctionBuilder.prototype.addBodyWithEnd):
        (WasmFunctionBuilder.prototype.getNumLocals):
        (WasmFunctionBuilder.prototype.addLocals):
        (WasmFunctionBuilder.prototype.end):
        (WasmInitExpr.I32Const):
        (WasmInitExpr.I64Const):
        (WasmInitExpr.F32Const):
        (WasmInitExpr.F64Const):
        (WasmInitExpr.S128Const):
        (WasmInitExpr.GlobalGet):
        (WasmInitExpr.RefFunc):
        (WasmInitExpr.RefNull):
        (WasmInitExpr.StructNewWithRtt):
        (WasmInitExpr.StructNew):
        (WasmInitExpr.StructNewDefaultWithRtt):
        (WasmInitExpr.StructNewDefault):
        (WasmInitExpr.ArrayInit):
        (WasmInitExpr.ArrayInitStatic):
        (WasmInitExpr.RttCanon):
        (WasmInitExpr.RttSub):
        (WasmInitExpr.RttFreshSub):
        (WasmInitExpr.defaultFor):
        (WasmInitExpr):
        (WasmGlobalBuilder):
        (WasmGlobalBuilder.prototype.exportAs):
        (WasmTableBuilder):
        (WasmTableBuilder.prototype.exportAs):
        (makeField):
        (WasmStruct):
        (WasmStructSubtype):
        (WasmArray):
        (WasmArraySubtype):
        (WasmElemSegment):
        (WasmElemSegment.prototype.is_active):
        (WasmElemSegment.prototype.is_passive):
        (WasmElemSegment.prototype.is_declarative):
        (WasmElemSegment.prototype.expressions_as_elements):
        (WasmModuleBuilder):
        (WasmModuleBuilder.prototype.addStart):
        (WasmModuleBuilder.prototype.addMemory):
        (WasmModuleBuilder.prototype.addMemory64):
        (WasmModuleBuilder.prototype.addExplicitSection):
        (WasmModuleBuilder.prototype.stringToBytes):
        (WasmModuleBuilder.prototype.createCustomSection):
        (WasmModuleBuilder.prototype.addCustomSection):
        (WasmModuleBuilder.prototype.addType):
        (WasmModuleBuilder.prototype.addStruct):
        (WasmModuleBuilder.prototype.addStructSubtype):
        (WasmModuleBuilder.prototype.addArray):
        (WasmModuleBuilder.prototype.addArraySubtype):
        (WasmModuleBuilder.prototype.addGlobal):
        (WasmModuleBuilder.prototype.addTable):
        (WasmModuleBuilder.prototype.addTag):
        (WasmModuleBuilder.prototype.addFunction):
        (WasmModuleBuilder.prototype.addImport):
        (WasmModuleBuilder.prototype.addImportedGlobal):
        (WasmModuleBuilder.prototype.addImportedMemory):
        (WasmModuleBuilder.prototype.addImportedTable):
        (WasmModuleBuilder.prototype.addImportedTag):
        (WasmModuleBuilder.prototype.addExport):
        (WasmModuleBuilder.prototype.addExportOfKind):
        (WasmModuleBuilder.prototype.setCompilationHint):
        (WasmModuleBuilder.prototype.addDataSegment):
        (WasmModuleBuilder.prototype.addPassiveDataSegment):
        (WasmModuleBuilder.prototype.exportMemoryAs):
        (WasmModuleBuilder.prototype.addActiveElementSegment):
        (WasmModuleBuilder.prototype.addPassiveElementSegment):
        (WasmModuleBuilder.prototype.addDeclarativeElementSegment):
        (WasmModuleBuilder.prototype.appendToTable):
        (WasmModuleBuilder.prototype.setTableBounds):
        (WasmModuleBuilder.prototype.setName):
        (WasmModuleBuilder.prototype.toBuffer):
        (WasmModuleBuilder.prototype.toArray):
        (WasmModuleBuilder.prototype.instantiate):
        (WasmModuleBuilder.prototype.asyncInstantiate):
        (WasmModuleBuilder.prototype.toModule):
        (wasmSignedLeb):
        (wasmUnsignedLeb):
        (wasmI32Const):
        (wasmI64Const):
        (wasmF32Const):
        (wasmF64Const):
        (wasmS128Const):
        (getOpcodeName):
        * wasm/wasm.json:

2021-10-08  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] UnlinkedCodeBlock::m_instructions can be nullptr
        https://bugs.webkit.org/show_bug.cgi?id=231445
        rdar://83975933

        Reviewed by Mark Lam.

        * stress/unlinked-code-block-destructor.js: Added.
        (useAllMemory.get Object):
        (useAllMemory.foo):
        (useAllMemory):
        (try.bar):

2021-10-08  Saam Barati  <sbarati@apple.com>

        RegExpExec can't statically prove which of the two structures it will get in AI by just looking at the RegExp*
        https://bugs.webkit.org/show_bug.cgi?id=231382
        <rdar://83722151>

        Reviewed by Mark Lam.

        * stress/reg-exp-exec-cant-prove-which-structure-it-produces-in-ai.js: Added.
        (foo):

2021-10-07  Philip Chimento  <pchimento@igalia.com>

        [JSC] Temporal tweaks to pass more test262 tests
        https://bugs.webkit.org/show_bug.cgi?id=231331

        Reviewed by Yusuke Suzuki.

        * test262/config.yaml: Three tests no longer crash, but they still
          depend on unimplemented functionality, so skip them.
        * test262/expectations.yaml:

2021-10-06  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed, ensure test262 expectations reflect BigSur release mode.

        * test262/expectations.yaml:

2021-10-06  Philip Chimento  <pchimento@igalia.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=231201

        Add tests that were somehow cut off in the previous patch.

        Reviewed by Ross Kirsling.

        * test262/test/built-ins/Temporal/Now/*: Added.

2021-10-06  Philip Chimento  <pchimento@igalia.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=231201

        Reviewed by Ross Kirsling.

        Update test262 to latest, to bring in Temporal tests.

        * test262/config.yaml: Ignore tests that depend on unimplemented parts
        of Temporal.
        * test262/expectations.yaml: Add new failures.
        * test262/*: Update from upstream.
        * test262/test262-Revision.txt:

2021-10-06  Saam Barati  <sbarati@apple.com>

        Run backwards propagation before we prune the graph after ForceOSRExit nodes in BytecodeParser
        https://bugs.webkit.org/show_bug.cgi?id=230823
        <rdar://problem/83565088>

        Reviewed by Robin Morisset.

        * run-backwards-propagation-before-osr-exit-pruning.js: Added.
        (assert):
        (main.async v24):
        (main):

2021-10-05  Saam Barati  <sbarati@apple.com>

        Don't pass DontBuildStrings to next token after parsing an empty parameter list
        https://bugs.webkit.org/show_bug.cgi?id=225094
        <rdar://problem/77231778>

        Reviewed by Yusuke Suzuki.

        * stress/dont-pass-DontBuildStrings-when-building-empty-arguments-list.js: Added.
        (main.a.prototype.g.toString.string_appeared_here):
        (main.a):
        (main):

2021-10-05  Mark Lam  <mark.lam@apple.com>

        CodeBlock should not add/remove LoopHintExecutionCounters.
        https://bugs.webkit.org/show_bug.cgi?id=231209
        rdar://83571235

        Reviewed by Saam Barati.

        * stress/codeBlock-should-not-add-remove-loop-hint-execution-counters-due-to-cached-unlinked-baseline-code.js: Added.

2021-10-05  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] JSPropertyNameEnumerator should not have cached prototype chain since empty JSPropertyNameEnumerator is shared
        https://bugs.webkit.org/show_bug.cgi?id=231202

        Reviewed by Keith Miller.

        * stress/for-in-validation-poly-proto.js: Added.
        (shouldBe):
        (test):
        (factory.Test):
        (factory):
        * stress/for-in-validation-watchpoint.js: Added.
        (shouldBe):
        (test):
        (Test):
        (factory):

2021-10-04  Saam Barati  <sbarati@apple.com>

        IntrinsicGetterAccessCase implementation of __proto__ needs to handle get_by_id_with_this
        https://bugs.webkit.org/show_bug.cgi?id=229951
        <rdar://problem/82787527>

        Reviewed by Yusuke Suzuki.

        * stress/run-proto-intrinsic-getter-with-this-value-in-get-by-id-with-this.js: Added.
        (assert):
        (main.v37):
        (main):

2021-10-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update test262 config.yaml since OSS WebKit now uses ICU 64.2 header
        https://bugs.webkit.org/show_bug.cgi?id=231121

        Reviewed by Mark Lam.

        * test262/config.yaml:

2021-10-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] DateTimeFormat.resolvedOptions shouldn't return an object with other date/time properties if dateStyle or timeStyle are set
        https://bugs.webkit.org/show_bug.cgi?id=231041

        Reviewed by Ross Kirsling.

        * stress/intl-date-time-format-date-time-style-basic.js:
        (shouldBe.JSON.stringify.o.resolvedOptions):
        (shouldBe):
        (shouldBe.o.format): Deleted.

2021-10-02  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, add reported test to our stress tests
        https://bugs.webkit.org/show_bug.cgi?id=230827

        While we cannot reproduce the issue successfully, adding it to our stress tests to ensure that this will never happen.

        * stress/intl-datetimeformat.js:

2021-10-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r283293.
        https://bugs.webkit.org/show_bug.cgi?id=231116

        changing print() broke a lot of random things

        Reverted changeset:

        "Print values in a nicer way in the jsc shell"
        https://bugs.webkit.org/show_bug.cgi?id=230931
        https://commits.webkit.org/r283293

2021-09-30  Saam Barati  <sbarati@apple.com>

        The DFG/FTL need to be aware that Proxy's can produce "function" for typeof and might be callable
        https://bugs.webkit.org/show_bug.cgi?id=230804
        <rdar://problem/83543951>

        Reviewed by Yusuke Suzuki.

        * stress/ai-typeof-needs-to-be-aware-of-proxy-2.js: Added.
        (assert):
        (builtin.vm.createBuiltin):
        (builtin2.vm.createBuiltin):
        (let.p.new.Proxy):
        * stress/ai-typeof-needs-to-be-aware-of-proxy.js: Added.
        (assert):
        (builtin.vm.createBuiltin):
        (let.p.new.Proxy):
        * stress/is-callable-in-ftl-needs-to-be-aware-of-proxy.js: Added.
        (main):

2021-09-29  Mark Lam  <mark.lam@apple.com>

        DFG strength reduction on % operator should handle an INT_MIN divisor.
        https://bugs.webkit.org/show_bug.cgi?id=230391
        <rdar://problem/83229740>

        Reviewed by Robin Morisset.

        * stress/dfg-strength-reduction-on-mod-should-handle-INT_MIN.js: Added.

2021-09-29  Saam Barati  <sbarati@apple.com>

        Print values in a nicer way in the jsc shell
        https://bugs.webkit.org/show_bug.cgi?id=230931

        Reviewed by Tadeu Zagallo.

        * ChakraCore/test/jsc-lib.js:

2021-09-29  Saam Barati  <sbarati@apple.com>

        We need to load the baseline JIT's constant pool register after OSR exit to checkpoints if we return to baseline code
        https://bugs.webkit.org/show_bug.cgi?id=230972
        <rdar://83659469>

        Reviewed by Mark Lam and Yusuke Suzuki.

        * stress/checkpoint-osr-exit-needs-to-reload-baseline-jit-constant-pool-gpr.js: Added.
        (empty):
        (empty2):
        (test):

2021-09-29  Saam Barati  <sbarati@apple.com>

        Code inside strength reduction can incorrectly prove that we know what lastIndex is
        https://bugs.webkit.org/show_bug.cgi?id=230802
        <rdar://problem/83543699>

        Reviewed by Mark Lam.

        * stress/dont-fold-regexp-exec-when-we-dont-know-last-index-and-regexp-is-constant.js: Added.
        (assert):
        (let.reg.RegExp.foo.g.doExec):
        (noInline.doExec):

2021-09-29  Saam Barati  <sbarati@apple.com>

        DoesGCCheck does not use enough bits for nodeIndex
        https://bugs.webkit.org/show_bug.cgi?id=230915
        <rdar://83297515>

        Unreviewed. Forgot to add a try/catch in the test.

        * stress/verify-can-gc-node-index.js:

2021-09-28  Saam Barati  <sbarati@apple.com>

        DoesGCCheck does not use enough bits for nodeIndex
        https://bugs.webkit.org/show_bug.cgi?id=230915
        <rdar://83297515>

        Reviewed by Mark Lam.

        * stress/verify-can-gc-node-index.js: Added.
        (gen):
        (f):

2021-09-28  Alexey Shvayka  <shvaikalesh@gmail.com>

        Speed up setting JSFunction's "prototype" property
        https://bugs.webkit.org/show_bug.cgi?id=230864

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/class-creation.js: Added.
        * microbenchmarks/function-prototype-put-non-reified.js: Added.
        * microbenchmarks/function-prototype-put-reified.js: Added.

2021-09-27  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Add ApproximateTime
        https://bugs.webkit.org/show_bug.cgi?id=230876

        Reviewed by Filip Pizlo.

        * microbenchmarks/approximate-time-now.js: Added.
        * microbenchmarks/monotonic-time-now.js: Added.
        * microbenchmarks/wall-time-now.js: Added.

2021-09-26  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize PutByVal with for-in
        https://bugs.webkit.org/show_bug.cgi?id=230801

        Reviewed by Saam Barati.

        * stress/for-in-sentinel.js: Added.
        (shouldBe):
        (test):

2021-09-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r283095.
        https://bugs.webkit.org/show_bug.cgi?id=230815

        We should land the original patch since this does not work
        with bytecode cache

        Reverted changeset:

        "[JSC] Optimize PutByVal with for-in"
        https://bugs.webkit.org/show_bug.cgi?id=230801
        https://commits.webkit.org/r283095

2021-09-26  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize PutByVal with for-in
        https://bugs.webkit.org/show_bug.cgi?id=230801

        Reviewed by Saam Barati.

        * stress/for-in-sentinel.js: Added.
        (shouldBe):
        (test):

2021-09-24 Rick Waldron <waldron.rick@gmail.com>

        [JSC] Add checkScriptSyntax function to jsc host environment
        https://bugs.webkit.org/show_bug.cgi?id=230631

        Reviewed by Yusuke Suzuki.

        Updates tests that were using eval() to verify syntax.

        * stress/arrow-function-syntax.js: Replace custom checkSyntax with checkScriptSyntax
        * stress/async-iteration-for-await-of-syntax.js: Replace custom checkSyntax with checkScriptSyntax
        * stress/async-iteration-syntax.js: Replace custom checkSyntax with checkScriptSyntax

2021-09-23  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Handle syntactic production for `#x in expr` correctly
        https://bugs.webkit.org/show_bug.cgi?id=230668

        Reviewed by Yusuke Suzuki.

        * stress/private-in.js: Add tests.
        * test262/expectations.yaml: Mark two test cases as passing.

2021-09-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Filter algorithmic numbering systems from enumeration data
        https://bugs.webkit.org/show_bug.cgi?id=230660

        Reviewed by Ross Kirsling.

        * stress/intl-enumeration.js:
        * test262/expectations.yaml:

2021-09-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Adjust Intl currency enumeration
        https://bugs.webkit.org/show_bug.cgi?id=230656

        Reviewed by Ross Kirsling.

        * stress/intl-enumeration.js:
        * test262/expectations.yaml:

2021-09-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] emoji and eor collations are missing
        https://bugs.webkit.org/show_bug.cgi?id=230652

        Reviewed by Ross Kirsling.

        * stress/intl-enumeration.js:
        * test262/expectations.yaml:

2021-09-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Intl unicode identifier type will reject underscore
        https://bugs.webkit.org/show_bug.cgi?id=230645

        Reviewed by Ross Kirsling.

        * test262/expectations.yaml:

2021-09-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Upgrade test262
        https://bugs.webkit.org/show_bug.cgi?id=230641

        Reviewed by Ross Kirsling.

        Upgrade test262 to the latest one.

        * test262/config.yaml:
        * test262/expectations.yaml:
        * test262/test262-Revision.txt:

2021-09-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] CompareStrictEq is omitting String check incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=230582
        rdar://83237121

        Reviewed by Mark Lam.

        * stress/compare-strict-eq-string-check.js: Added.
        (foo):
        (bar):

2021-09-21  Justin Michaud  <justin_michaud@apple.com>

        Differential testing: live statement don't execute
        https://bugs.webkit.org/show_bug.cgi?id=229939

        Reviewed by Saam Barati.

        * stress/in-by-val-should-throw.js: Added.
        (doesThrow):
        (noInline.doesThrow.noFTL.doesThrow.blackbox):
        (noInline.blackbox.doesNotThrow):
        (noInline.doesNotThrow.noFTL.doesNotThrow.main):

2021-09-20  Mikhail R. Gadelha  <mikhail@igalia.com>

        Skip stress/json-stringify-stack-overflow.js only on memory limited systems
        https://bugs.webkit.org/show_bug.cgi?id=230489

        Unreviewed gardening.

        It's currently only failing on systems with low memory, regardless of
        the arch.

        * stress/json-stringify-stack-overflow.js:

2021-09-17  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add fast property enumeration mode for JSON.stringify
        https://bugs.webkit.org/show_bug.cgi?id=230393

        Reviewed by Mark Lam.

        * stress/json-stringify-object-modify.js: Added.
        (shouldBe):
        (throw.new.Error.let.object.hello.get inner):
        (throw.new.Error):
        (shouldBe.let.object.hello.get inner):

2021-09-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize leaf object creation in JSON.parse
        https://bugs.webkit.org/show_bug.cgi?id=230298

        Reviewed by Keith Miller.

        * microbenchmarks/json-parse-leaf-object.js: Added.

2021-09-13  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add JSON.parse microbenchmarks from Speedometer2
        https://bugs.webkit.org/show_bug.cgi?id=230234

        Reviewed by Saam Barati.

        This patch adds JSON.parse microbenchmarks from Speedometer2. We record JSON.parse call in Speedometer2 subtests,
        and create benchmark which performs the same calls.

        * microbenchmarks/flight-todomvc-json-parse.js: Renamed from JSTests/microbenchmarks/flight-todomvc-json.js.
        * microbenchmarks/vanilla-es2015-babel-webpack-todomvc-json-parse.js: Added.
        * microbenchmarks/vanilla-es2015-todomvc-json-parse.js: Added.
        * microbenchmarks/vanilla-todomvc-json-parse.js: Added.

2021-09-10  Justin Michaud  <justin_michaud@apple.com>

        [ JSC Catalina Release ] wasm.yaml/wasm/references/multitable.js.wasm-collect-continuously (javascriptcore-tests) is a flaky timeout
        https://bugs.webkit.org/show_bug.cgi?id=229896

        The combination of collectContinuously and verifyGC really hammer the poor hardware 
        during the final two "table insanity" stress tests. I have confirmed that the test
        is indeed making forward progress, even after running for 45 minutes, by using logGC. 
        For this reason, it seems like it is OK to skip verifyGC for this test.

        We could have added a vm option isVerifyingGC and disabled only the table insanity test
        in this case like we do for low memory, but I think this is good enough.

        Reviewed by Mark Lam.

        * wasm/references/multitable.js:

2021-09-09  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Intl.Locale weekendInfo should list all weekend days instead of range
        https://bugs.webkit.org/show_bug.cgi?id=230108

        Reviewed by Ross Kirsling.

        * stress/intl-locale-info.js:
        (throw.new.Error):
        (let.enGB.new.Intl.Locale.shouldBe): Deleted.
        * test262/config.yaml:

2021-09-09  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize op_get_property_enumerator further
        https://bugs.webkit.org/show_bug.cgi?id=230086

        Reviewed by Saam Barati.

        * stress/for-in-cell-other.js: Added.
        (shouldBe):
        (forIn):
        * stress/for-in-null-undefined.js: Added.
        (shouldBe):
        (forIn):

2021-09-09  Justin Michaud  <justin_michaud@apple.com>

        Differential testing: incorrect constant propagation around Uint8ClampedArray
        https://bugs.webkit.org/show_bug.cgi?id=229869

        Reviewed by Saam Barati.

        * stress/Uint8ClampedArrayClampsInt52Positive.js: Added.
        (let.x.123.test):
        (noInline.test.int32pos1):
        (255.int32pos2):
        (1.int32neg1):
        (0.int32neg2):
        (0.int52pos1):
        (255.int52pos2):
        (255.int52neg1):
        (0.int52neg2):
        (0.int52neg3):
        (0.int52pos3):
        (255.int8):

2021-09-09  Robin Morisset  <rmorisset@apple.com>

        Optimize compareStrictEq when neither side is a double and at least one is not a BigInt
        https://bugs.webkit.org/show_bug.cgi?id=226755
        <rdar://problem/79321542>

        Reviewed by Yusuke Suzuki.

        Made the error messages in stress/reflect-set a bit more informative in the process of debugging an issue with the patch.

        * stress/reflect-set.js:
        (shouldBe):
        (shouldThrow):

2021-09-07  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Implement Temporal.PlainTime
        https://bugs.webkit.org/show_bug.cgi?id=229892

        Reviewed by Darin Adler.

        * stress/temporal-calendar.js:
        * stress/temporal-duration.js:
        * stress/temporal-plaintime.js: Added.
        (shouldBe):
        (shouldThrow):
        (shouldBe.String.Temporal.PlainTime.from):
        (let.time.Temporal.PlainTime.from.shouldBe):
        (let.text.of.failures.shouldThrow):
        (print):
        (shouldBe.Temporal.PlainTime.from):
        (new.Temporal.PlainTime.valueOf):
        (shouldBe.String.time.until.Temporal.PlainTime.from):
        * stress/temporal-timezone.js:
        (let.text.of.failures.shouldThrow): Deleted.
        * test262/config.yaml:

2021-09-07  Yusuke Suzuki  <ysuzuki@apple.com>

        Math.hypot checks for infinite values prematurely
        https://bugs.webkit.org/show_bug.cgi?id=229843

        Reviewed by Ross Kirsling.

        * stress/math-hypot-evaluation-ordering.js: Added.
        (shouldThrow):

2021-09-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Make EnumeratorNextUpdateIndexAndMode clobberizing rule precise
        https://bugs.webkit.org/show_bug.cgi?id=229898
        rdar://82714439

        Reviewed by Saam Barati.

        * complex.yaml:
        * complex/for-in-clobberize.js: Added.

2021-09-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Implement Temporal.TimeZone
        https://bugs.webkit.org/show_bug.cgi?id=229703

        Reviewed by Ross Kirsling.

        * complex.yaml:
        * complex/temporal-now-timezone-check.js: Added.
        (shouldBe):
        * complex/temporal-now-timezone-with-broken-tz.js: Added.
        (shouldBe):
        * stress/intl-enumeration.js:
        * stress/temporal-timezone.js: Added.
        (shouldBe):
        (shouldThrow):
        (let.text.of.failures.shouldThrow):
        (reviver):

2021-09-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Validate JSPropertyNameEnumerator via watchpoints
        https://bugs.webkit.org/show_bug.cgi?id=229846

        Reviewed by Keith Miller.

        * stress/for-in-cacheable-dictionary.js: Added.
        (shouldBe):
        (collect):
        * stress/for-in-invalidate.js: Added.
        (shouldBe):
        (collect):
        * stress/for-in-uncacheable-dictionary.js: Added.
        (shouldBe):
        (collect):

2021-08-31  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Implement Temporal.Duration
        https://bugs.webkit.org/show_bug.cgi?id=228532

        Reviewed by Yusuke Suzuki.

        * stress/temporal-duration.js: Added.
        * test262/config.yaml: Enabled Duration tests.

2021-08-30  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC][Intl] Errors for .call({}) are too verbose
        https://bugs.webkit.org/show_bug.cgi?id=229694

        Reviewed by Yusuke Suzuki.

        * stress/intl-displaynames.js:

2021-08-30  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Implement Temporal.Calendar
        https://bugs.webkit.org/show_bug.cgi?id=229651

        Reviewed by Ross Kirsling.

        * stress/temporal-calendar.js: Added.
        (shouldBe):
        (shouldThrow):
        (new.Temporal.Calendar):

2021-08-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Upgrade test262
        https://bugs.webkit.org/show_bug.cgi?id=229645

        Reviewed by Keith Miller.

        Upgrade test262 to the latest one.

        * test262/expectations.yaml:
        * test262/latest-changes-summary.txt:
        * test262/test262-Revision.txt:

2021-08-26  Yusuke Suzuki  <ysuzuki@apple.com>

        Intl.DateTimeFormat incorrectly parses patterns with 'h' literal
        https://bugs.webkit.org/show_bug.cgi?id=229313
        rdar://82414310

        Reviewed by Ross Kirsling.

        * stress/intl-date-pattern-includes-literal-text.js: Added.
        (shouldBe):

2021-08-26  Yusuke Suzuki  <ysuzuki@apple.com>

        Float32Arrays.sort() return undefined when length < 2
        https://bugs.webkit.org/show_bug.cgi?id=229575

        Reviewed by Saam Barati.

        * stress/typed-array-sort-small.js: Added.
        (shouldBe):
        (throw.new.Error):

2021-08-26  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] op_put_private_name should use modern IC and remove ByValInfo
        https://bugs.webkit.org/show_bug.cgi?id=229544

        Reviewed by Saam Barati.

        Move class-fields-private benchmarks into microbenchmarks.
        Added several microbenchmarks and stress tests.

        * microbenchmarks/class-private-field-polymorphic.js: Added.
        (shouldBe):
        (test.A.prototype.put):
        * microbenchmarks/get-private-name.js: Renamed from JSTests/microbenchmarks/class-fields-private/get-private-name.js.
        * microbenchmarks/monomorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/monomorphic-get-private-field.js.
        * microbenchmarks/polymorphic-get-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-get-private-field.js.
        * microbenchmarks/polymorphic-put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/polymorphic-put-private-field.js.
        * microbenchmarks/put-by-val-polymorphic-properties.js: Added.
        (shouldBe):
        (test):
        * microbenchmarks/put-private-field.js: Renamed from JSTests/microbenchmarks/class-fields-private/put-private-field.js.
        * stress/class-private-field-megamorphic.js: Added.
        (shouldBe):
        * stress/class-private-field-polymorphic.js: Added.
        (shouldBe):
        (test.A.prototype.put):
        * stress/put-by-val-polymorphic-properties.js: Added.
        (shouldBe):
        (test):

2021-08-26  Saam Barati  <sbarati@apple.com>

        r281485 was not sufficient in where it called disablePeepholeOptimization
        https://bugs.webkit.org/show_bug.cgi?id=229582
        <rdar://82346980>

        Reviewed by Yusuke Suzuki.

        * stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite-2.js: Added.
        (foo):

2021-08-24  Yusuke Suzuki  <ysuzuki@apple.com>

        Update Intl tests to support ICU 68
        https://bugs.webkit.org/show_bug.cgi?id=229467

        Reviewed by Mark Lam.

        ICU 68 changes some outputs of Intl tests. This patch adjusts that.

        * stress/intl-parse-unicode-subtags.js:
        (vm.icuVersion):

2021-08-24  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add Intl Enumeration APIs
        https://bugs.webkit.org/show_bug.cgi?id=214795

        Reviewed by Ross Kirsling.

        * stress/intl-datetimeformat.js:
        * stress/intl-enumeration.js: Added.
        (shouldBe):
        (shouldThrow):
        * stress/intl-locale-info.js:
        (let.l.new.Intl.Locale.shouldBe):
        (shouldBe):

2021-08-24  Keith Miller  <keith_miller@apple.com>

        (r281473) stress/for-in-has-own-property-shouldnt-flush-registers.js failing on Debug
        https://bugs.webkit.org/show_bug.cgi?id=229448

        Reviewed by Mark Lam.

        Fix typo in test name.

        * stress/for-in-in-by-val-should-flush-registers.js: Renamed from JSTests/stress/for-in-in-by-val-shouldnt-flush-registers.js.

2021-08-23  Saam Barati  <sbarati@apple.com>

        Disable peephole optimizations in the byte code generator after rewriting instructions for for-in
        https://bugs.webkit.org/show_bug.cgi?id=229420
        <rdar://82020528>

        Reviewed by Keith Miller.

        * stress/for-in-disable-bytecode-generator-peephole-optimizations-after-rewrite.js: Added.
        (foo):

2021-08-23  Saam Barati  <sbarati@apple.com>

        compileEnumeratorHasProperty uses flushRegisters incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=229412
        <rdar://82020767>

        Reviewed by Keith Miller.

        * stress/for-in-has-own-property-shouldnt-flush-registers.js: Added.
        (foo):
        * stress/for-in-in-by-val-shouldnt-flush-registers.js: Added.
        (a.toString):

2021-08-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove already-shipped wasm option flags
        https://bugs.webkit.org/show_bug.cgi?id=229386

        Reviewed by Ross Kirsling.

        * wasm/references/element_active_mod.js:
        * wasm/references/element_parsing.js:
        * wasm/references/externref_globals.js:
        * wasm/references/externref_modules.js:
        * wasm/references/externref_table.js:
        * wasm/references/externref_table_import.js:
        * wasm/references/func_ref.js:
        * wasm/references/globals.js:
        * wasm/references/is_null.js:
        * wasm/references/memory_copy.js:
        * wasm/references/memory_copy_shared.js:
        * wasm/references/memory_fill_shared.js:
        * wasm/references/multitable.js:
        * wasm/references/parse_unreachable.js:
        * wasm/references/table_js_api.js:
        * wasm/references/table_misc.js:
        * wasm/references/validation.js:
        * wasm/stress/immutable-globals.js:
        * wasm/stress/local-ref.js:
        * wasm/stress/mutable-globals.js:
        * wasm/stress/table-grow-table-size.js:

2021-08-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove already-shipped JS feature flags
        https://bugs.webkit.org/show_bug.cgi?id=229387

        Reviewed by Ross Kirsling.

        * microbenchmarks/class-fields-private/get-private-name.js:
        * microbenchmarks/class-fields-private/monomorphic-get-private-field.js:
        * microbenchmarks/class-fields-private/polymorphic-get-private-field.js:
        * microbenchmarks/class-fields-private/polymorphic-put-private-field.js:
        * microbenchmarks/class-fields-private/put-private-field.js:
        * stress/class-fields-private-as-function.js:
        * stress/class-fields-private-cached-bytecode.js:
        * stress/class-fields-private-freeze-out-of-line.js:
        * stress/class-fields-private-freeze.js:
        * stress/class-fields-private-harmony.js:
        * stress/class-fields-private-on-proxy.js:
        * stress/class-fields-private-out-of-line.js:
        * stress/class-fields-private-prevent-extensions-out-of-line.js:
        * stress/class-fields-private-prevent-extensions.js:
        * stress/class-fields-private-seal-out-of-line.js:
        * stress/class-fields-private-seal.js:
        * stress/class-fields-private-use-eval.js:
        * stress/class-fields-static-harmony.js:
        * stress/class-fields-static-private-harmony.js:
        * stress/class-fields-stress-instance.js:
        * stress/class-private-method-access.js:
        * stress/dfg-get-private-name-by-id-generic.js:
        * stress/dfg-get-private-name-by-id-osr-bad-identifier.js:
        * stress/dfg-get-private-name-by-id.js:
        * stress/dfg-get-private-name-by-offset-osr-bad-identifier.js:
        * stress/dfg-get-private-name-by-offset-osr-bad-structure.js:
        * stress/dfg-get-private-name-by-offset.js:
        * stress/dfg-get-private-name-by-val-generic.js:
        * stress/dfg-put-private-name-check-barrier-insertion.js:
        * stress/dfg-put-private-name-compiled-as-put-by-id-direct.js:
        * stress/dfg-put-private-name-compiled-as-put-private-name-by-id.js:
        * stress/ftl-get-private-name-by-id.js:
        * stress/ftl-get-private-name-by-offset-multi.js:
        * stress/get-private-name-cache-failure.js:
        * stress/get-private-name-with-constant-ident.js:
        * stress/get-private-name-with-constant-symbol.js:
        * stress/get-private-name-with-different-symbol.js:
        * stress/get-private-name-with-primitive.js:
        * stress/get-private-name.js:
        * stress/optional-chaining-and-private-fields.js:
        * stress/private-accesor-duplicate-name-early-errors.js:
        * stress/private-accessor-static-non-static.js:
        * stress/private-brand-installed-after-super-call-from-arrow-function.js:
        * stress/private-brand-installed-after-super-call-from-eval.js:
        * stress/private-getter-brand-check.js:
        * stress/private-getter-inner-class.js:
        * stress/private-in-error.js:
        * stress/private-in.js:
        * stress/private-members-get-and-set.js:
        * stress/private-method-and-field-named-constructor.js:
        * stress/private-method-brand-check.js:
        * stress/private-method-change-attribute-from-branded-structure.js:
        * stress/private-method-change-prototype-from-branded-structure.js:
        * stress/private-method-check-private-brand-ic.js:
        * stress/private-method-check-structure-miss.js:
        * stress/private-method-comparison.js:
        * stress/private-method-delete-property-from-branded-structure.js:
        * stress/private-method-extends-brand-check.js:
        * stress/private-method-get-and-call.js:
        * stress/private-method-invalid-multiple-brand-installation.js:
        * stress/private-method-invalidate-compiled-with-constant-symbol.js:
        * stress/private-method-nested-class.js:
        * stress/private-method-on-sealed-objects.js:
        * stress/private-method-on-uncacheable-dictionary.js:
        * stress/private-method-polymorphic-with-constant-symbol.js:
        * stress/private-method-set-brand-should-have-write-barrier.js:
        * stress/private-method-untyped-use.js:
        * stress/private-method-with-uncacheable-dictionary-transition.js:
        * stress/private-methods-and-accessors-postfix-node.js:
        * stress/private-methods-and-accessors-prefix-node.js:
        * stress/private-methods-inline-cache.js:
        * stress/private-methods-megamorphic-ic.js:
        * stress/private-methods-on-proxy.js:
        * stress/private-methods-poly-ic-multiple-classes.js:
        * stress/private-methods-poly-ic-single-class.js:
        * stress/private-name-access-in-computed-property.js:
        * stress/private-names-available-on-direct-eval.js:
        * stress/private-names-available-on-eval-during-field-initialization.js:
        * stress/private-setter-brand-check.js:
        * stress/private-setter-inner-class.js:
        * stress/put-by-val-direct-addprivate.js:
        * stress/put-by-val-direct-putprivate.js:
        * stress/put-private-name-by-id-set-do-not-add-structure-trasition.js:
        * stress/put-private-name-check-structure-miss.js:
        * stress/put-private-name-constant-folding-to-mult-put-by-offset.js:
        * stress/put-private-name-constant-folding-to-put-by-offset.js:
        * stress/put-private-name-generic.js:
        * stress/put-private-name-invalid-define.js:
        * stress/put-private-name-invalid-store.js:
        * stress/put-private-name-invalidate-compiled-with-constant-symbol.js:
        * stress/put-private-name-polymorphic-with-constant-symbol.js:
        * stress/put-private-name-untyped-use.js:
        * stress/put-private-name-with-constant-symbol.js:
        * stress/put-private-name-with-different-identifier.js:
        * stress/put-private-name-with-primitive.js:
        * stress/static-private-methods-and-accessor-inner-class.js:
        * stress/static-private-methods-and-accessor-multiple-evaluation.js:
        * stress/static-private-methods-and-accessors-postfix-node.js:
        * stress/static-private-methods-and-accessors-prefix-node.js:
        * stress/v8-cleanup-from-different-realm.js:
        * stress/v8-cleanup-proxy-from-different-realm.js:
        * stress/v8-finalization-registry-basics.js:
        * stress/v8-finalizationregistry-and-weakref.js:
        * stress/v8-finalizationregistry-keeps-holdings-alive.js:
        * stress/v8-finalizationregistry-scheduled-for-cleanup-multiple-times.js:
        * stress/v8-multiple-dirty-finalization-registries.js:
        * stress/v8-reentrant-gc-from-cleanup.js:
        * stress/v8-stress-finalizationregistry-dirty-enqueue.js:
        * stress/v8-undefined-holdings.js:
        * stress/v8-unregister-after-cleanup.js:
        * stress/v8-unregister-before-cleanup.js:
        * stress/v8-unregister-called-twice.js:
        * stress/v8-unregister-inside-cleanup2.js:
        * stress/v8-unregister-inside-cleanup3.js:
        * stress/v8-unregister-many.js:
        * stress/v8-weak-unregistertoken.js:
        * test262/config.yaml:

2021-08-22  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, speculative fix for old ICU
        https://bugs.webkit.org/show_bug.cgi?id=229385

        * stress/intl-locale-info.js:
        (shouldBe):

2021-08-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove Intl runtime feature flags for already shipped ones
        https://bugs.webkit.org/show_bug.cgi?id=229371

        Reviewed by Ross Kirsling.

        * stress/intl-datetimeformat-day-period.js:
        * test262/config.yaml:

2021-08-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Intl.DisplayNames v2
        https://bugs.webkit.org/show_bug.cgi?id=227832

        Reviewed by Ross Kirsling.

        * stress/intl-displaynames-v2.js: Added.
        (shouldBe):
        (shouldThrow):
        (vm.icuVersion):
        * stress/intl-displaynames.js:
        (vm.icuVersion):
        * test262/config.yaml:
        * test262/expectations.yaml:

2021-08-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Intl Locale Info
        https://bugs.webkit.org/show_bug.cgi?id=227830

        Reviewed by Ross Kirsling.

        * stress/intl-locale-info.js: Added.
        (shouldBe):
        (throw.new.Error):
        (let.enGB.new.Intl.Locale.shouldBe):
        (let.l.new.Intl.Locale.shouldBe):
        * test262/config.yaml:

2021-08-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Extend Intl TimeZoneName Option
        https://bugs.webkit.org/show_bug.cgi?id=227831

        Reviewed by Ross Kirsling.

        * stress/intl-extended-timezone-names.js: Added.
        (shouldBe):
        (timeZoneTest):
        * test262/config.yaml:

2021-08-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Enable Array#findLast method
        https://bugs.webkit.org/show_bug.cgi?id=229355

        Reviewed by Saam Barati.

        * stress/unscopables.js:

2021-08-17  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unreviewed. Skip failing MIPS tests
        https://bugs.webkit.org/show_bug.cgi?id=229198

        * ChakraCore.yaml:

2021-08-13  Keith Miller  <keith_miller@apple.com>

        EnumeratorNextUpdatePropertyName always needs to be able to handle IndexedMode
        https://bugs.webkit.org/show_bug.cgi?id=229087

        Reviewed by Filip Pizlo.

        * stress/for-in-own-structure-and-generic-with-late-add-indexed.js: Added.
        (test):
        (Foo):

2021-08-11  Yusuke Suzuki  <ysuzuki@apple.com>

        WTFCrash in JSC::Lexer<char16_t>::append8
        https://bugs.webkit.org/show_bug.cgi?id=228982

        Reviewed by Mark Lam.

        * stress/directive-includes-non-latin1.js: Added.

2021-08-09  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] super-Latin1 white space and line terminator after regular expression literal misinterpreted as flags
        https://bugs.webkit.org/show_bug.cgi?id=227944

        Reviewed by Alexey Shvayka.

        * test262/expectations.yaml:

2021-08-08  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Clean up test262 expectations
        https://bugs.webkit.org/show_bug.cgi?id=228903

        Reviewed by Ross Kirsling.

        * test262/config.yaml:
        * test262/expectations.yaml:

2021-08-07  Keith Miller  <keith_miller@apple.com>

        for-in should only emit one loop in bytecode
        https://bugs.webkit.org/show_bug.cgi?id=227989

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/for-in-double-array-with-own-named.js: Added.
        (test):
        * microbenchmarks/for-in-double-array.js: Added.
        (test):
        * microbenchmarks/for-in-getters.js: Added.
        (test):
        * microbenchmarks/for-in-int32-array-with-own-named.js: Added.
        (test):
        * microbenchmarks/for-in-int32-array.js: Added.
        (test):
        * microbenchmarks/for-in-int32-object-with-own-named-and-getters.js: Added.
        (test):
        * microbenchmarks/for-in-int32-object-with-own-named.js: Added.
        (test):
        * microbenchmarks/for-in-object-with-own-named.js: Added.
        (sum):
        (opaqueSet):
        * microbenchmarks/for-in-string-array.js: Added.
        (test):
        * microbenchmarks/for-of-iterate-array-map-set.js: Added.
        (sum):
        (let.generator):
        * stress/for-in-array-mode.js:
        (test):
        * stress/for-in-base-reassigned-later.js:
        * stress/for-in-delete-during-iteration.js:
        * stress/for-in-primitive-index-on-prototype.js: Added.
        (test):
        * stress/for-in-tests.js:
        * stress/has-own-property-structure-for-in-loop-correctness.js:
        (test5):

2021-08-05  Mikhail R. Gadelha  <mikhail@igalia.com>

        Assertion failure when checking array in DFG (32 bits)
        https://bugs.webkit.org/show_bug.cgi?id=228839

        Reviewed by Yusuke Suzuki.

        * stress/check-array-empty-32.js: Added.
        (a.b.catch.print.c):
        (a.b):
        (a.e):
        (a):

2021-08-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Yarr BoyerMoore search should support character-class
        https://bugs.webkit.org/show_bug.cgi?id=228613

        Reviewed by Saam Barati.

        * stress/regexp-bm-search-character-non-fixed-size.js: Added.
        (shouldBe):
        * stress/regexp-bm-search-many-candidate-zero-length.js: Added.
        (shouldBe):
        (regexp.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.0.1.2.3.4.5.6.7.8.9.t.v.n.r):
        * stress/regexp-bm-search-non-fixed-size.js: Added.
        (shouldBe):

2021-08-02  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=228709

        Reviewed by Mark Lam.

        * test262/latest-changes-summary.txt:
        * test262/test/built-ins/Error/prototype/constructor/S15.11.4.1_A1_T1.js: Removed.
        * test262/test/built-ins/Error/prototype/message/15.11.4.3-1.js: Removed.
        * test262/test/built-ins/Error/prototype/message/S15.11.4.3_A1.js: Removed.
        * test262/test/built-ins/Error/prototype/message/S15.11.4.3_A2.js: Removed.
        * test262/test/built-ins/Error/prototype/name/15.11.4.2-1.js: Removed.
        * test262/test/built-ins/Error/prototype/name/S15.11.4.2_A1.js: Removed.
        * test262/test/built-ins/Error/prototype/name/S15.11.4.2_A2.js: Removed.
        * test262/test/built-ins/Error/prototype/toString/S15.11.4.4_A1.js: Removed.
        * test262/test/built-ins/TypedArray/prototype/findLast/return-abrupt-from-this-out-of-bounds.js:
        * test262/test/built-ins/TypedArray/prototype/findLastIndex/return-abrupt-from-this-out-of-bounds.js:
        * test262/test/harness/sta-error.js: Removed.
        * test262/test/harness/sta-override-error.js: Removed.
        * test262/test262-Revision.txt:

2021-07-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Upgrade test262
        https://bugs.webkit.org/show_bug.cgi?id=228627

        Reviewed by Ross Kirsling.

2021-07-30  Robin Morisset  <rmorisset@apple.com>

        Improve OSR entry into Wasm loops with arguments
        https://bugs.webkit.org/show_bug.cgi?id=228595

        Reviewed by Yusuke Suzuki.

        Just a straightforward test that counts to 1M in a loop, to exercise both OSR entry and a loop with an argument at the same time.
        100k iterations was not enough to reliably complete an OSR entry.

        * wasm/stress/osr-entry-with-loop-arguments.js: Added.
        (async test):

2021-07-30  Tadeu Zagallo  <tzagallo@apple.com>

        putInlineFastReplacingStaticPropertyIfNeeded should handle custom values
        https://bugs.webkit.org/show_bug.cgi?id=227963

        Reviewed by Alexey Shvayka.

        * stress/reflect-set-custom-value.js:

2021-07-29  Tadeu Zagallo  <tzagallo@apple.com>

        definePropertyOnReceiver should check if receiver canPerformFastPutInline
        https://bugs.webkit.org/show_bug.cgi?id=227963
        <rdar://80259710>

        Reviewed by Alexey Shvayka.

        * stress/reflect-set-custom-value.js: Added.

2021-07-29  Yusuke Suzuki  <ysuzuki@apple.com> and Alexey Shvayka  <shvaikalesh@gmail.com>

        [JSC] Legacy RegExp fields should be accessors
        https://bugs.webkit.org/show_bug.cgi?id=220233

        Reviewed by Tadeu Zagallo.

        * ChakraCore/test/Lib/forin_lib_v3.baseline-jsc:
        * microbenchmarks/assign-custom-setter-polymorphic.js:
        * microbenchmarks/assign-custom-setter.js:
        * microbenchmarks/custom-setter-getter-as-put-get-by-id.js:
        * microbenchmarks/custom-value-2.js:
        * microbenchmarks/custom-value.js:
        * microbenchmarks/get-custom-getter.js:
        * stress/custom-value-delete-property-1.js:
        * stress/custom-value-delete-property-2.js:
        * stress/custom-value-delete-property-3.js:
        * stress/object-assign-fast-path.js:
        * stress/reflect-set.js:
        * stress/regexp-constructor-dollar-getters-are-unique.js: Added.
        * stress/regexp-setter-realm.js: Added.
        * stress/static-put-in-prototype-chain.js: Added.
        * test262/config.yaml:
        * test262/expectations.yaml:

2021-07-28  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Yarr should perform BoyerMoore search
        https://bugs.webkit.org/show_bug.cgi?id=228301

        Reviewed by Saam Barati.

        * microbenchmarks/jquery-todomvc-regexp.js:
        * stress/regexp--bm-search-long-character.js: Added.
        (shouldBe):
        * stress/regexp--bm-search-long-map.js: Added.
        (shouldBe):
        * stress/regexp-bitvector-reuse.js: Added.
        (shouldBe):
        * stress/regexp-non-ascii-bm-search-character.js: Added.
        (shouldBe):
        * stress/regexp-non-ascii-bm-search-map.js: Added.
        (shouldBe):

2021-07-25  Alexey Shvayka  <shvaikalesh@gmail.com>

        Partly implement Function.prototype.{caller,arguments} reflection proposal
        https://bugs.webkit.org/show_bug.cgi?id=158116

        Reviewed by Yusuke Suzuki.

        * ChakraCore/test/strict/19.function.baseline:
        * ChakraCore/test/strict/22.callerCalleeArguments.baseline-jsc:
        * microbenchmarks/function-prototype-get.js: Added.
        * microbenchmarks/reflect-own-keys-function.js: Added.
        * stress/for-in-shadow-non-enumerable.js:
        * stress/function-hidden-as-caller.js:
        * stress/has-own-property-arguments.js:
        * stress/object-assign-fast-path.js:
        * stress/put-to-proto-chain-overrides-put.js:
        * stress/reflect-set.js:
        * test262/config.yaml: Skip 3 test cases that are now incorrect.
        * test262/expectations.yaml: Mark 2 test cases as passing.

2021-07-23  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add Speedometer2 jQuery-TodoMVC RegExp microbenchmark
        https://bugs.webkit.org/show_bug.cgi?id=228257

        Reviewed by Mark Lam.

        I instrumented JSC and extracted executed RegExp evaluations from Speedometer2/jQuery-TodoMVC
        to easily test RegExp performance.

        * microbenchmarks/jquery-todomvc-regexp.js: Added.
        (x00.test):

2021-07-23  Alexey Shvayka  <shvaikalesh@gmail.com>

        [JSC] Call custom accessors / values with their holder's global object
        https://bugs.webkit.org/show_bug.cgi?id=225997

        Reviewed by Yusuke Suzuki.

        * stress/custom-get-set-proto-chain-put.js:
        * stress/getter-setter-globalobject-in-ic-2.js: Added.

2021-07-22  Saam Barati  <sbarati@apple.com>

        JSTests/stress/test-out-of-memory shouldn't assume that we always OOM
        https://bugs.webkit.org/show_bug.cgi?id=228213

        Reviewed by Mark Lam.

        * stress/test-out-of-memory.js:

2021-07-22  Yusuke Suzuki  <ysuzuki@apple.com>

        Reduce iteration of microbenchmarks/memcpy-typed-loop.js
        https://bugs.webkit.org/show_bug.cgi?id=228214

        Reviewed by Saam Barati.

        Observing frequent timeout (e.g. https://ews-build.webkit.org/#/builders/1/builds/44698).
        We do not need to have such a large # of iterations.

        * microbenchmarks/memcpy-typed-loop.js:

2021-07-22  Saam Barati  <sbarati@apple.com>

        AirStackSlot's uint16_t byte size is too small
        https://bugs.webkit.org/show_bug.cgi?id=228193
        <rdar://80888059>

        Reviewed by Mark Lam.

        * stress/stack-slot-needs-to-use-more-than-uint16.js: Added.

2021-07-20  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] invalidParameterInstanceofSourceAppender should care direct call of Symbol.hasInstance
        https://bugs.webkit.org/show_bug.cgi?id=228075
        rdar://80762879

        Reviewed by Frédéric Wang.

        * stress/symbol-hasinstance-error.js: Added.
        (shouldThrow):
        (let.a):

2021-07-19  Mark Lam  <mark.lam@apple.com>

        DFG's parseIntResult() should check for negative zero.
        https://bugs.webkit.org/show_bug.cgi?id=228068
        rdar://80788603

        Reviewed by Yusuke Suzuki.

        * stress/dfg-parseIntResult-should-check-for-negative-zero.js: Added.

2021-07-19  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] InByStatus / InByVariant should visit CacheableIdentifier
        https://bugs.webkit.org/show_bug.cgi?id=228088
        rdar://80794604

        Reviewed by Mark Lam.

        * stress/in-by-variant-should-mark-cacheable-identifier.js: Added.
        (foo):
        (let.handler.has):

2021-07-16  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Simplify sampling-profiler-regexp.js test
        https://bugs.webkit.org/show_bug.cgi?id=228040

        Reviewed by Saam Barati.

        In this new test case, only thing we care is regexp appears on sampling-profiler regardless of whether the other functions are inlined / tail-called or not.
        We change the sampling-profiler/samplingProfiler.js runTest to add a mode which searches specific signature in the call tree.

        * stress/sampling-profiler-regexp.js:
        (platformSupportsSamplingProfiler):
        * stress/sampling-profiler/samplingProfiler.js:
        (doesTreeHaveStackTrace):
        (runTest):

2021-07-16  Saam Barati  <sbarati@apple.com>

        Grab the lock in FTL::Thunks::keyForSlowPathCallThunk
        https://bugs.webkit.org/show_bug.cgi?id=227988
        <rdar://problem/80627901>

        Reviewed by Mark Lam.

        * stress/thunks-hash-map-should-grab-lock.js: Added.

2021-07-16  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] RegExp::dumpToStream must not ref Strings since it is called concurrently
        https://bugs.webkit.org/show_bug.cgi?id=228031
        rdar://80686425

        Reviewed by Mark Lam.

        * stress/regexp-dump-concurrently.js: Added.
        (let.code):

2021-07-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] SamplingProfiler should recognize RegExp execution
        https://bugs.webkit.org/show_bug.cgi?id=201702

        Reviewed by Saam Barati.

        * stress/sampling-profiler-regexp.js: Added.
        (platformSupportsSamplingProfiler.getText):
        (platformSupportsSamplingProfiler.test):
        (platformSupportsSamplingProfiler.baz):
        (platformSupportsSamplingProfiler):
        * stress/sampling-profiler/samplingProfiler.js: Extend samplingProfiler to show better error information when VERBOSE = true.
        (doesTreeHaveStackTrace):

2021-07-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Harden defaultTimeZone retrieval
        https://bugs.webkit.org/show_bug.cgi?id=227996

        Reviewed by Mark Lam.

        * complex.yaml:
        * complex/intl-timezone-check.js: Added.
        (shouldBe):

2021-07-15  Mark Lam  <mark.lam@apple.com>

        JITWorklist::waitUntilAllPlansForVMAreReady() should also be notified when plans are cancelled.
        https://bugs.webkit.org/show_bug.cgi?id=228003
        rdar://78314543

        Reviewed by Yusuke Suzuki.

        * stress/waitUntilAllPlansForVMAreReady-should-be-notified-of-cancelled-plans-too.js: Added.

2021-07-14  Devin Rousso  <drousso@apple.com>

        Implement Array.prototype.findLast and Array.prototype.findLastIndex
        https://bugs.webkit.org/show_bug.cgi?id=227939

        Reviewed by Yusuke Suzuki.

        * stress/typedarray-findLast.js: Added.
        (keepEven):
        (keepEvenAndChange):
        (isBigEnoughAndException):

        * stress/typedarray-findLastIndex.js: Added.
        (keepEven):
        (keepEvenAndChange):
        (isBigEnoughAndException):

2021-07-14  Keith Miller  <keith_miller@apple.com>

        Unreviewed, test gardening.

        * stress/bit-op-with-object-returning-int32.js:
        * stress/bitwise-not-fixup-rules.js:
        (jscOptions):

2021-07-14  Mark Lam  <mark.lam@apple.com>

        Check for out of memory in JSC::globalFuncEscape() and JSC::globalFuncUnescape().
        https://bugs.webkit.org/show_bug.cgi?id=227962
        rdar://78392251

        Reviewed by Yusuke Suzuki.

        * stress/out-of-memory-in-globalFuncUnescape.js: Added.

2021-07-14  Mark Lam  <mark.lam@apple.com>

        Placate exception checker validation in operationObjectAssignUntyped.
        https://bugs.webkit.org/show_bug.cgi?id=227955
        rdar://80503746

        Reviewed by Michael Saboff.

        * stress/exception-check-in-operationObjectAssignUntyped.js: Added.

2021-07-14  Keith Miller  <keith_miller@apple.com>

        Fix more tests around fuzzing executable allocations
        https://bugs.webkit.org/show_bug.cgi?id=226663

        Reviewed by Mark Lam.

        * stress/bit-op-with-object-returning-int32.js:
        (numberOfDFGCompiles): Deleted.
        * stress/bitwise-not-fixup-rules.js:
        (jscOptions):
        (numberOfDFGCompiles): Deleted.

2021-07-12  Saam Barati  <sbarati@apple.com>

        Run some tests for fewer iterations to prevent test timeouts
        https://bugs.webkit.org/show_bug.cgi?id=227879

        Reviewed by Mark Lam.

        * microbenchmarks/get-by-val-negative-array-index.js:
        * microbenchmarks/memcpy-typed-loop-small.js:
        * microbenchmarks/put-by-val-negative-array-index.js:

2021-07-12  Saam Barati  <sbarati@apple.com>

        stress/wasm-loop-consistency.js should require the --useExecutableAllocationFuzz=false JSC option
        https://bugs.webkit.org/show_bug.cgi?id=227876

        Reviewed by Mark Lam.

        * stress/wasm-loop-consistency.js:

2021-07-10  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=227851

        Reviewed by Mark Lam.

        * test262/config.yaml:
        * test262/expectations.yaml:
        * test262/harness/compareArray.js:
        (assert.compareArray):
        * test262/harness/regExpUtils.js:
        (buildString):
        (): Deleted.
        * test262/harness/sta.js:
        (Test262Error.thrower):
        * test262/harness/testIntl.js:
        (getLocaleSupportInfo):
        * test262/latest-changes-summary.txt:
        * test262/test/annexB/language/literals/regexp/legacy-octal-escape.js:
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-diminuitive.js: Added.
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-excessive.js: Added.
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-negative.js: Added.
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-object.js: Added.
        (options.maxByteLength.toString):
        (options.maxByteLength.valueOf):
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-poisoned.js: Added.
        (options.get maxByteLength):
        * test262/test/built-ins/ArrayBuffer/options-maxbytelength-undefined.js: Added.
        * test262/test/built-ins/ArrayBuffer/options-non-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/detached-buffer.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/length.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/name.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-resizable.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/return-maxbytelength-resizable.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/maxByteLength/this-is-sharedarraybuffer.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/detached-buffer.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-accessor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/invoked-as-func.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/length.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/name.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/prop-desc.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/return-resizable.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/this-has-no-arraybufferdata-internal.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-not-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resizable/this-is-sharedarraybuffer.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/descriptor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/extensible.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/length.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/name.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-excessive.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-negative.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/new-length-non-number.js: Added.
        (newLength.toString):
        (newLength.valueOf):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/nonconstructor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-grow.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-explicit.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size-zero-implicit.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-same-size.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-explicit.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink-zero-implicit.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/resize-shrink.js: Added.
        (catch):
        * test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-detached.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-arraybuffer-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-not-resizable-arraybuffer-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/resize/this-is-sharedarraybuffer.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/descriptor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/extensible.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-larger.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-same.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-smaller.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-fixed-to-zero.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-larger.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-same.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-smaller.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/from-resizable-to-zero.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/length.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/name.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-excessive.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/new-length-non-number.js: Added.
        (newLength.toString):
        (newLength.valueOf):
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/nonconstructor.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-detached.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-arraybuffer-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-not-object.js: Added.
        * test262/test/built-ins/ArrayBuffer/prototype/transfer/this-is-sharedarraybuffer.js: Added.
        * test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-auto.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getBigInt64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getBigUint64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getFloat32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getFloat64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getInt16/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getInt32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getInt8/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getUint16/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getUint32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/getUint8/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setBigInt64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setBigUint64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setFloat32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setFloat64/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setInt16/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setInt32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setInt8/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setUint16/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setUint32/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/DataView/prototype/setUint8/resizable-buffer.js: Added.
        (catch):
        * test262/test/built-ins/Error/cause_abrupt.js:
        (has):
        (options.get cause):
        * test262/test/built-ins/Object/hasOwn/descriptor.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_exists.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter.js: Added.
        (base.get foo):
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter.js: Added.
        (base.get foo):
        (base.set foo):
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_getter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_nonwritable_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_setter.js: Added.
        (base.set foo):
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_setter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_inherited_writable_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_nonexistent.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter.js: Added.
        (o.get foo):
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter.js: Added.
        (o.get foo):
        (o.set foo):
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_and_setter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_getter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_nonwritable_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_nonwriteable_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_property_exists.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_setter.js: Added.
        (o.set foo):
        * test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_setter_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_setter_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_writable_configurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_enumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/hasown_own_writable_nonconfigurable_nonenumerable.js: Added.
        * test262/test/built-ins/Object/hasOwn/length.js: Added.
        * test262/test/built-ins/Object/hasOwn/name.js: Added.
        * test262/test/built-ins/Object/hasOwn/not-a-constructor.js: Added.
        * test262/test/built-ins/Object/hasOwn/prototype.js: Added.
        * test262/test/built-ins/Object/hasOwn/symbol_own_property.js: Added.
        * test262/test/built-ins/Object/hasOwn/symbol_property_toPrimitive.js: Added.
        (wrapper.Symbol.toPrimitive):
        * test262/test/built-ins/Object/hasOwn/symbol_property_toString.js: Added.
        (wrapper.toString):
        (wrapper.valueOf):
        * test262/test/built-ins/Object/hasOwn/symbol_property_valueOf.js: Added.
        (wrapper.valueOf):
        * test262/test/built-ins/Object/hasOwn/toobject_before_topropertykey.js: Added.
        (coercibleKey1.get toString):
        (coercibleKey1.get valueOf):
        (coercibleKey2.Symbol.toPrimitive):
        * test262/test/built-ins/Object/hasOwn/toobject_null.js: Added.
        * test262/test/built-ins/Object/hasOwn/toobject_undefined.js: Added.
        * test262/test/built-ins/Promise/race/resolve-element-function-extensible.js: Removed.
        * test262/test/built-ins/Promise/race/resolve-element-function-name.js: Removed.
        * test262/test/built-ins/Promise/race/resolve-element-function-nonconstructor.js: Removed.
        * test262/test/built-ins/Promise/race/resolve-element-function-prototype.js: Removed.
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-diminuitive.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-excessive.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-negative.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-object.js: Added.
        (options.maxByteLength.toString):
        (options.maxByteLength.valueOf):
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-poisoned.js: Added.
        (options.get maxByteLength):
        * test262/test/built-ins/SharedArrayBuffer/options-maxbytelength-undefined.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/options-non-object.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/descriptor.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/extensible.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-larger-size.js: Added.
        (catch):
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-same-size.js: Added.
        (catch):
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/grow-smaller-size.js: Added.
        (catch):
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/length.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/name.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-excessive.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-negative.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/new-length-non-number.js: Added.
        (newLength.toString):
        (newLength.valueOf):
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/nonconstructor.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-arraybuffer-object.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-object.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-not-resizable-arraybuffer-object.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/grow/this-is-sharedarraybuffer.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-accessor.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/invoked-as-func.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/length.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/name.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/prop-desc.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/return-growable.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-has-no-arraybufferdata-internal.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-arraybuffer.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/growable/this-is-not-object.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-accessor.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/invoked-as-func.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/length.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/name.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/prop-desc.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-growable.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/return-maxbytelength-non-growable.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-has-no-arraybufferdata-internal.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-arraybuffer.js: Added.
        * test262/test/built-ins/SharedArrayBuffer/prototype/maxByteLength/this-is-not-object.js: Added.
        * test262/test/built-ins/Symbol/for/description.js: Added.
        (symbol.Symbol.toString):
        * test262/test/built-ins/Temporal/now/instant/extensible.js: Added.
        * test262/test/built-ins/Temporal/now/instant/length.js: Added.
        * test262/test/built-ins/Temporal/now/instant/name.js: Added.
        * test262/test/built-ins/Temporal/now/instant/not-a-constructor.js: Added.
        * test262/test/built-ins/Temporal/now/instant/prop-desc.js: Added.
        * test262/test/built-ins/Temporal/now/instant/return-value-distinct.js: Added.
        * test262/test/built-ins/Temporal/now/instant/return-value-prototype.js: Added.
        * test262/test/built-ins/Temporal/now/instant/return-value-value.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/extensible.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/length.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/name.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/new-object.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/not-a-constructor.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/prop-desc.js: Added.
        * test262/test/built-ins/Temporal/now/timeZone/return-value.js: Added.
        * test262/test/built-ins/TypedArray/prototype/at/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-auto.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/byteLength/resizable-array-buffer-fixed.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-auto.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/byteOffset/resizable-array-buffer-fixed.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/copyWithin/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/entries/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/every/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.every):
        * test262/test/built-ins/TypedArray/prototype/fill/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/filter/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.filter):
        * test262/test/built-ins/TypedArray/prototype/find/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.find):
        * test262/test/built-ins/TypedArray/prototype/findIndex/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.findIndex):
        * test262/test/built-ins/TypedArray/prototype/forEach/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.forEach):
        * test262/test/built-ins/TypedArray/prototype/includes/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/indexOf/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/join/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/keys/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/lastIndexOf/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-auto.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/length/resizable-array-buffer-fixed.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/map/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.map):
        * test262/test/built-ins/TypedArray/prototype/reduce/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.reduce):
        * test262/test/built-ins/TypedArray/prototype/reduceRight/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.reduceRight):
        * test262/test/built-ins/TypedArray/prototype/reverse/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-set-values-same-buffer-same-type-resized.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArray/prototype/set/typedarray-arg-target-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/slice/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/some/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        (testWithTypedArrayConstructors.TA.array.some):
        * test262/test/built-ins/TypedArray/prototype/sort/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArray/prototype/values/return-abrupt-from-this-out-of-bounds.js: Added.
        (testWithTypedArrayConstructors.TA.catch):
        * test262/test/built-ins/TypedArrayConstructors/ctors/buffer-arg/excessive-offset-throws-resizable-ab.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-different-type.js: Added.
        (testWithTypedArrayConstructors.):
        (testWithTypedArrayConstructors.get var):
        (testWithTypedArrayConstructors.onGetSpecies):
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/ctors/typedarray-arg/out-of-bounds-when-species-retrieved-same-type.js: Added.
        (testWithTypedArrayConstructors.):
        (testWithTypedArrayConstructors.get var):
        (testWithTypedArrayConstructors.onGetSpecies):
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js: Removed.
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws-realm.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-throws.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-not-numeric-index-throws.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-accessor-desc-throws.js: Added.
        (testWithBigIntTypedArrayConstructors.):
        (testWithBigIntTypedArrayConstructors.get assert):
        (testWithBigIntTypedArrayConstructors.set assert):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-configurable.js:
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-configurable-throws.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-enumerable-throws.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/key-is-numericindex-desc-not-writable-throws.js: Added.
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js:
        (testWithBigIntTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js: Removed.
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws-realm.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-throws.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-not-numeric-index-throws.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-accessor-desc-throws.js: Added.
        (testWithTypedArrayConstructors.):
        (testWithTypedArrayConstructors.get assert):
        (testWithTypedArrayConstructors.set assert):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-configurable.js:
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-configurable-throws.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-enumerable-throws.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/key-is-numericindex-desc-not-writable-throws.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js:
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/Delete/key-is-symbol.js:
        * test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-auto.js: Added.
        (inspect):
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/HasProperty/resizable-array-buffer-fixed.js: Added.
        (inspect):
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-auto.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/built-ins/TypedArrayConstructors/internals/OwnPropertyKeys/integer-indexes-resizable-array-buffer-fixed.js: Added.
        (testWithTypedArrayConstructors):
        * test262/test/intl402/DateTimeFormat/constructor-options-style-conflict.js: Added.
        * test262/test/intl402/Locale/prototype/calendars/branding.js: Added.
        * test262/test/intl402/Locale/prototype/calendars/name.js: Added.
        * test262/test/intl402/Locale/prototype/calendars/output-array.js: Added.
        * test262/test/intl402/Locale/prototype/calendars/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/collations/branding.js: Added.
        * test262/test/intl402/Locale/prototype/collations/name.js: Added.
        * test262/test/intl402/Locale/prototype/collations/output-array-values.js: Added.
        * test262/test/intl402/Locale/prototype/collations/output-array.js: Added.
        * test262/test/intl402/Locale/prototype/collations/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/hourCycles/branding.js: Added.
        * test262/test/intl402/Locale/prototype/hourCycles/name.js: Added.
        * test262/test/intl402/Locale/prototype/hourCycles/output-array-values.js: Added.
        * test262/test/intl402/Locale/prototype/hourCycles/output-array.js: Added.
        * test262/test/intl402/Locale/prototype/hourCycles/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/numberingSystems/branding.js: Added.
        * test262/test/intl402/Locale/prototype/numberingSystems/name.js: Added.
        * test262/test/intl402/Locale/prototype/numberingSystems/output-array.js: Added.
        * test262/test/intl402/Locale/prototype/numberingSystems/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/textInfo/branding.js: Added.
        * test262/test/intl402/Locale/prototype/textInfo/name.js: Added.
        * test262/test/intl402/Locale/prototype/textInfo/output-object-keys.js: Added.
        * test262/test/intl402/Locale/prototype/textInfo/output-object.js: Added.
        * test262/test/intl402/Locale/prototype/textInfo/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/branding.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/name.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/output-array-sorted.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/output-array.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/output-undefined.js: Added.
        * test262/test/intl402/Locale/prototype/timeZones/prop-desc.js: Added.
        * test262/test/intl402/Locale/prototype/weekInfo/branding.js: Added.
        * test262/test/intl402/Locale/prototype/weekInfo/name.js: Added.
        * test262/test/intl402/Locale/prototype/weekInfo/output-object-keys.js: Added.
        * test262/test/intl402/Locale/prototype/weekInfo/output-object.js: Added.
        * test262/test/intl402/Locale/prototype/weekInfo/prop-desc.js: Added.
        * test262/test/intl402/Segmenter/constructor/supportedLocalesOf/locales-specific.js:
        * test262/test/intl402/Segmenter/prototype/segment/containing/iswordlike.js:
        (other_granularities.forEach):
        * test262/test/intl402/Segmenter/prototype/segment/containing/one-index.js:
        (toString):
        (valueOf):
        (Symbol.toPrimitive):
        * test262/test/intl402/Segmenter/prototype/segment/containing/out-of-bound-index.js:
        (toString):
        (valueOf):
        (Symbol.toPrimitive):
        * test262/test/intl402/Segmenter/prototype/segment/containing/word-iswordlike.js:
        (inputs.forEach):
        * test262/test/intl402/Segmenter/prototype/segment/containing/zero-index.js:
        (toString):
        (valueOf):
        (Symbol.toPrimitive):
        * test262/test/intl402/Segmenter/prototype/segment/segment-grapheme-iterable.js:
        (const.v.of.seg.segment):
        * test262/test/intl402/Segmenter/prototype/segment/segment-sentence-iterable.js:
        (const.v.of.seg.segment):
        * test262/test/intl402/Segmenter/prototype/segment/segment-word-iterable.js:
        (const.v.of.seg.segment):
        * test262/test/intl402/fallback-locales-are-supported.js:
        (testWithIntlConstructors):
        * test262/test/intl402/supportedLocalesOf-consistent-with-resolvedOptions.js:
        (testWithIntlConstructors):
        * test262/test/intl402/supportedLocalesOf-unicode-extensions-ignored.js:
        (testWithIntlConstructors.):
        (testWithIntlConstructors):
        * test262/test/language/expressions/arrow-function/extensibility.js: Added.
        (assert.Object.isExtensible):
        * test262/test/language/expressions/arrow-function/syntax/arrowparameters-cover-initialize-2.js:
        * test262/test/language/expressions/assignment/S11.13.1_A7_T1.js: Removed.
        * test262/test/language/expressions/assignment/S11.13.1_A7_T2.js: Removed.
        * test262/test/language/expressions/assignment/target-member-computed-reference-null.js: Added.
        (DummyError):
        (prop):
        (expr):
        (prop.toString):
        * test262/test/language/expressions/assignment/target-member-computed-reference-undefined.js: Added.
        (DummyError):
        (prop):
        (expr):
        (prop.toString):
        * test262/test/language/expressions/assignment/target-member-identifier-reference-null.js: Added.
        * test262/test/language/expressions/assignment/target-member-identifier-reference-undefined.js: Added.
        * test262/test/language/expressions/assignment/target-super-computed-reference-null.js: Added.
        (C.m):
        (C):
        * test262/test/language/expressions/assignment/target-super-identifier-reference-null.js: Added.
        (C.m):
        (C):
        * test262/test/language/expressions/delete/member-computed-reference-null.js: Added.
        * test262/test/language/expressions/delete/member-computed-reference-undefined.js: Added.
        * test262/test/language/expressions/delete/member-identifier-reference-null.js: Added.
        * test262/test/language/expressions/delete/member-identifier-reference-undefined.js: Added.
        * test262/test/language/expressions/delete/super-property-null-base.js: Added.
        (C.m):
        (C):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration-abrupt.js: Added.
        (options.ownKeys):
        (options.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-enumeration.js: Added.
        (options.ownKeys):
        (options.get _):
        (options.getOwnPropertyDescriptor):
        (options.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-non-object.js: Added.
        (test):
        (string_appeared_here.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-undefined.js: Added.
        (then):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-value-abrupt.js: Added.
        (assert.get string_appeared_here):
        (then):
        * test262/test/language/expressions/dynamic-import/2nd-param-assert-value-non-string.js: Added.
        (test):
        (string_appeared_here.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-await-expr.js: Added.
        * test262/test/language/expressions/dynamic-import/2nd-param-await-ident.js: Added.
        (await):
        (await.undefined.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-return.js: Added.
        (iter):
        * test262/test/language/expressions/dynamic-import/2nd-param-evaluation-abrupt-throw.js: Added.
        (throwError):
        * test262/test/language/expressions/dynamic-import/2nd-param-evaluation-sequence.js: Added.
        * test262/test/language/expressions/dynamic-import/2nd-param-get-assert-error.js: Added.
        (options.get assert):
        (options.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-in.js: Added.
        (promise.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-non-object.js: Added.
        (test):
        (string_appeared_here.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-fulfill.js: Added.
        (then):
        * test262/test/language/expressions/dynamic-import/2nd-param-trailing-comma-reject.js: Added.
        (import.toString):
        (then):
        * test262/test/language/expressions/dynamic-import/2nd-param-yield-expr.js: Added.
        (iter):
        (promise.then):
        * test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-invalid.js: Added.
        * test262/test/language/expressions/dynamic-import/2nd-param-yield-ident-valid.js: Added.
        (yield.then):
        * test262/test/language/expressions/dynamic-import/2nd-param_FIXTURE.js: Added.
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js:
        (let.f):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js:
        (async await):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-args.js:
        (async await):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-return-await-not-extensible-no-trailing-comma.js: Removed.
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js:
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-args.js:
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-args.js:
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-return-await-not-extensible-no-trailing-comma.js: Removed.
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js:
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js:
        (DONOTEVALUATE):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-args.js:
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js:
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-braceless-not-extensible-no-trailing-comma.js: Removed.
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-args.js:
        (with.import):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js:
        (with):
        * test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-args.js:
        * test262/test/language/expressions/dynamic-import/syntax/invalid/top-level-not-extensible-no-trailing-comma.js: Removed.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-assignment-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-no-trailing-comma.js.
        (let.f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-arrow-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-not-extensible-args.js.
        (let.f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-arrow-function-await-not-extensible-args.js.
        (async await):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-arrow-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
        (async await):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-return-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-args.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-await-not-extensible-no-trailing-comma.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-function-not-extensible-no-trailing-comma.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-no-trailing-comma.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-async-gen-await-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-async-gen-await-not-extensible-args.js.
        (async f):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-labeled-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-labeled-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-block-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-block-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-do-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-do-while-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-braceless-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-else-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-else-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-return-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-args.js.
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-not-extensible-no-trailing-comma.js.
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-function-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-function-return-not-extensible-no-trailing-comma.js.
        (fn):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-braceless-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-arrow-assignment-expression-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-if-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-if-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-no-trailing-comma.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-while-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-while-not-extensible-args.js.
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-first.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
        (with.import):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-expression-trailing-comma-second.js: Copied from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-args.js.
        (with.import):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-first.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-not-extensible-no-trailing-comma.js.
        (with):
        * test262/test/language/expressions/dynamic-import/syntax/valid/nested-with-trailing-comma-second.js: Renamed from JSTests/test262/test/language/expressions/dynamic-import/syntax/invalid/nested-with-expression-not-extensible-no-trailing-comma.js.
        (with):
        * test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-first.js: Added.
        * test262/test/language/expressions/dynamic-import/syntax/valid/top-level-trailing-comma-second.js: Added.
        * test262/test/language/expressions/dynamic-import/trailing-comma-fulfill.js: Added.
        (then):
        * test262/test/language/expressions/dynamic-import/trailing-comma-reject.js: Added.
        (import.toString):
        (then):
        * test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-8.js:
        * test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence-9.js:
        * test262/test/language/expressions/template-literal/invalid-legacy-octal-escape-sequence.js:
        * test262/test/language/import/json-extensibility-array.js: Added.
        * test262/test/language/import/json-extensibility-object.js: Added.
        * test262/test/language/import/json-idempotency-indirect_FIXTURE.js: Added.
        * test262/test/language/import/json-idempotency.js: Added.
        (then):
        * test262/test/language/import/json-invalid.js: Added.
        * test262/test/language/import/json-named-bindings.js: Added.
        * test262/test/language/import/json-value-array.js: Added.
        * test262/test/language/import/json-value-boolean.js: Added.
        * test262/test/language/import/json-value-null.js: Added.
        * test262/test/language/import/json-value-number.js: Added.
        * test262/test/language/import/json-value-object.js: Added.
        * test262/test/language/import/json-value-string.js: Added.
        * test262/test/language/import/json-via-namespace.js: Added.
        * test262/test/language/literals/numeric/legacy-octal-integer-strict.js:
        * test262/test/language/literals/numeric/legacy-octal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/legacy-octal-integer.js.
        * test262/test/language/literals/numeric/non-octal-decimal-integer-strict.js:
        * test262/test/language/literals/numeric/non-octal-decimal-integer.js: Renamed from JSTests/test262/test/annexB/language/literals/numeric/non-octal-decimal-integer.js.
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-1-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-2-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-3-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-4-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-5-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-6-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-7-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-non-strict.js: Added.
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-8-strict.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-non-strict.js: Added.
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict-explicit-pragma.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-9-strict.js:
        * test262/test/language/literals/string/legacy-non-octal-escape-sequence-strict.js:
        * test262/test/language/literals/string/legacy-octal-escape-sequence-strict.js:
        * test262/test/language/literals/string/legacy-octal-escape-sequence.js: Renamed from JSTests/test262/test/annexB/language/literals/string/legacy-octal-escape-sequence.js.
        * test262/test/language/module-code/early-dup-assert-key-export.js: Added.
        * test262/test/language/module-code/early-dup-assert-key-import-nobinding.js: Added.
        * test262/test/language/module-code/early-dup-assert-key-import-withbinding.js: Added.
        * test262/test/language/module-code/early-export-ill-formed-string.js:
        * test262/test/language/module-code/eval-gtbndng-indirect-faux-assertion.js: Added.
        * test262/test/language/module-code/import-assertion-1_FIXTURE.js: Added.
        * test262/test/language/module-code/import-assertion-2_FIXTURE.js: Added.
        * test262/test/language/module-code/import-assertion-3_FIXTURE.js: Added.
        * test262/test/language/module-code/import-assertion-empty.js: Added.
        * test262/test/language/module-code/import-assertion-key-identifiername.js: Added.
        * test262/test/language/module-code/import-assertion-key-string-double.js: Added.
        * test262/test/language/module-code/import-assertion-key-string-single.js: Added.
        * test262/test/language/module-code/import-assertion-many.js: Added.
        * test262/test/language/module-code/import-assertion-newlines.js: Added.
        * test262/test/language/module-code/import-assertion-trlng-comma.js: Added.
        * test262/test/language/module-code/import-assertion-value-string-double.js: Added.
        * test262/test/language/module-code/import-assertion-value-string-single.js: Added.
        * test262/test/language/module-code/instn-star-as-props-dflt-skip.js:
        * test262/test/language/module-code/top-level-await/dfs-invariant-async_FIXTURE.js: Added.
        * test262/test/language/module-code/top-level-await/dfs-invariant-direct-1_FIXTURE.js: Added.
        * test262/test/language/module-code/top-level-await/dfs-invariant-direct-2_FIXTURE.js: Added.
        * test262/test/language/module-code/top-level-await/dfs-invariant-indirect_FIXTURE.js: Added.
        * test262/test/language/module-code/top-level-await/dfs-invariant.js: Added.
        * test262/test/language/statements/for-of/head-lhs-async-escaped.js: Added.
        * test262/test/language/statements/for-of/head-lhs-async-parens.js: Added.
        * test262/test262-Revision.txt:

2021-07-08  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update Intl.Locale test after AppleICU update
        https://bugs.webkit.org/show_bug.cgi?id=227788

        Reviewed by Keith Miller.

        This patch fixes Intl.Locale test since AppleICU fixes the ICU bug and starts producing the right results.

        * stress/intl-long-locale-id-maximize-minimize.js:
        (shouldBe):

2021-07-07  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Fix Object.assign fast path to accept undefined/null
        https://bugs.webkit.org/show_bug.cgi?id=227769
        rdar://80264271

        Reviewed by Saam Barati.

        * stress/object-assign-undefined.js: Added.
        (test):

2021-07-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r279546, r279554, r279558 and r279567.
        https://bugs.webkit.org/show_bug.cgi?id=227732

        Speedometer/jQuery-TodoMVC 2-3% regression

        Reverted changesets:

        "[WebIDL] Rework runtime enabled properties leveraging
        PropertyCallback"
        https://bugs.webkit.org/show_bug.cgi?id=227275
        https://commits.webkit.org/r279546

        "[WebIDL] Generate constructor's hash table in
        GenerateConstructorHelperMethods"
        https://bugs.webkit.org/show_bug.cgi?id=227668
        https://commits.webkit.org/r279554

        "[WebIDL] Simplify generation of runtime conditionally read-
        write attributes"
        https://bugs.webkit.org/show_bug.cgi?id=227672
        https://commits.webkit.org/r279558

        "Use AbortSignal's [PrivateIdentifier] whenSignalAborted()
        static method"
        https://bugs.webkit.org/show_bug.cgi?id=227673
        https://commits.webkit.org/r279567

2021-07-06  Saam Barati  <sbarati@apple.com>

        Run microbenchmarks/memcpy-typed-loop-small.js for fewer iterations to avoid timeouts
        https://bugs.webkit.org/show_bug.cgi?id=227717

        Reviewed by Robin Morisset.

        * microbenchmarks/memcpy-typed-loop-small.js:

2021-07-05  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize Object.assign and putDirectInternal
        https://bugs.webkit.org/show_bug.cgi?id=227677

        Reviewed by Filip Pizlo.

        * microbenchmarks/object-assign-replace.js: Added.
        (test):
        * microbenchmarks/object-assign-transition.js: Added.
        (test):

2021-07-03  Alexey Shvayka  <shvaikalesh@gmail.com>

        [WebIDL] Rework runtime enabled properties leveraging PropertyCallback
        https://bugs.webkit.org/show_bug.cgi?id=227275

        Reviewed by Saam Barati.

        * stress/lazy-property-cross-realm.js: Added.
        * stress/lazy-property-get-cache.js: Added.
        * stress/lazy-property-gopd.js: Added.
        * stress/lazy-property-hasownproperty-cache.js: Added.
        * stress/lazy-property-put-cache.js: Added.

2021-06-30  Saam Barati  <sbarati@apple.com>

        Turn off data ICs by default
        https://bugs.webkit.org/show_bug.cgi?id=227334
        <rdar://problem/79802812>

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/deltablue-varargs.js:
        * microbenchmarks/richards-try-catch.js:

2021-06-30  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Stop generating default parameter code if class constructor is called without 'new'
        https://bugs.webkit.org/show_bug.cgi?id=227547
        rdar://78821453

        Reviewed by Mark Lam.

        * stress/calling-non-callable-constructors.js: Added.
        (shouldThrow):

2021-06-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Private names should be handled by usedVariables mechanism
        https://bugs.webkit.org/show_bug.cgi?id=227476
        rdar://76049469

        Reviewed by Saam Barati.

2021-06-30  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip interpreter-wasm.js on ARM and MIPS
        https://bugs.webkit.org/show_bug.cgi?id=227295

        Reviewed by Caio Araujo Neponoceno de Lima.

        Changed the testcase to be guarded by $vm.isWasmSupported(), so the
        test will be executed once wasm is available in the arch

        * microbenchmarks/interpreter-wasm.js:
        (key.in.Module.Module.hasOwnProperty): Deleted.
        (quit_): Deleted.
        (locateFile): Deleted.
        (ENVIRONMENT_IS_NODE.read_): Deleted.
        (ENVIRONMENT_IS_NODE.readBinary): Deleted.
        (ENVIRONMENT_IS_NODE.quit_): Deleted.
        (ENVIRONMENT_IS_NODE.Module.string_appeared_here): Deleted.
        (else.read_): Deleted.
        (else.readBinary): Deleted.
        (else.quit_): Deleted.
        (else): Deleted.
        (else.xhr.onload): Deleted.
        (else.readAsync): Deleted.
        (else.setWindowTitle): Deleted.
        (key.in.moduleOverrides.moduleOverrides.hasOwnProperty): Deleted.
        (dynamicAlloc): Deleted.
        (getNativeTypeSize): Deleted.
        (warnOnce): Deleted.
        (convertJsFunctionToWasm): Deleted.
        (addFunctionWasm): Deleted.
        (removeFunctionWasm): Deleted.
        (): Deleted.
        (setTempRet0): Deleted.
        (setValue): Deleted.
        (assert): Deleted.
        (getCFunc): Deleted.
        (toC.string_appeared_here): Deleted.
        (convertReturnValue): Deleted.
        (ccall): Deleted.
        (UTF8ArrayToString): Deleted.
        (UTF8ToString): Deleted.
        (stringToUTF8Array): Deleted.
        (stringToUTF8): Deleted.
        (lengthBytesUTF8): Deleted.
        (allocateUTF8OnStack): Deleted.
        (writeArrayToMemory): Deleted.
        (writeAsciiToMemory): Deleted.
        (updateGlobalBufferAndViews): Deleted.
        (callRuntimeCallbacks): Deleted.
        (preRun): Deleted.
        (initRuntime): Deleted.
        (preMain): Deleted.
        (exitRuntime): Deleted.
        (postRun): Deleted.
        (addOnPreRun): Deleted.
        (addOnPostRun): Deleted.
        (addRunDependency): Deleted.
        (removeRunDependency): Deleted.
        (hasPrefix): Deleted.
        (isDataURI): Deleted.
        (isFileURI): Deleted.
        (getBinary): Deleted.
        (getBinaryPromise): Deleted.
        (createWasm.receiveInstance): Deleted.
        (createWasm.receiveInstantiatedSource): Deleted.
        (createWasm.instantiateArrayBuffer): Deleted.
        (createWasm.instantiateAsync.): Deleted.
        (createWasm.instantiateAsync): Deleted.
        (createWasm): Deleted.
        (__ATINIT__.push.func): Deleted.
        (demangle): Deleted.
        (demangleAll): Deleted.
        (_emscripten_get_sbrk_ptr): Deleted.
        (_emscripten_memcpy_big): Deleted.
        (abortOnCannotGrowMemory): Deleted.
        (_emscripten_resize_heap): Deleted.
        (PATH.splitPath): Deleted.
        (PATH.normalizeArray): Deleted.
        (PATH.normalize): Deleted.
        (PATH.dirname): Deleted.
        (PATH.basename): Deleted.
        (PATH.extname): Deleted.
        (PATH.join): Deleted.
        (PATH.join2): Deleted.
        (SYSCALLS.printChar): Deleted.
        (SYSCALLS.getStr): Deleted.
        (SYSCALLS.get64): Deleted.
        (_fd_write): Deleted.
        (_setTempRet0): Deleted.
        (___wasm_call_ctors.Module.string_appeared_here): Deleted.
        (_main.Module.string_appeared_here): Deleted.
        (_malloc.Module.string_appeared_here): Deleted.
        (___errno_location.Module.string_appeared_here): Deleted.
        (_free.Module.string_appeared_here): Deleted.
        (stackSave.Module.string_appeared_here): Deleted.
        (stackAlloc.Module.string_appeared_here): Deleted.
        (stackRestore.Module.string_appeared_here): Deleted.
        (__growWasmMemory.Module.string_appeared_here): Deleted.
        (dynCall_ii.Module.string_appeared_here): Deleted.
        (dynCall_iiii.Module.string_appeared_here): Deleted.
        (dynCall_jiji.Module.string_appeared_here): Deleted.
        (ExitStatus): Deleted.
        (dependenciesFulfilled): Deleted.
        (callMain): Deleted.
        (run.doRun): Deleted.
        (run): Deleted.
        (exit): Deleted.

2021-06-25  Guillaume Emont  <guijemont@igalia.com>

        Unskip stress/call-apply-exponential-bytecode-size.js on most platforms
        https://bugs.webkit.org/show_bug.cgi?id=227354

        Reviewed by Yusuke Suzuki.

        Instead of skipping, we increase the JIT memory size for this test on
        platforms that have less than 64 MB by default.

        * stress/call-apply-exponential-bytecode-size.js:

2021-06-25  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip structure-storedPrototype-should-only-assert-on-the-mutator-thread.js on arm and mips
        https://bugs.webkit.org/show_bug.cgi?id=227222

        Tested with 50 iterations in both arm and mips.

        Unreviewed Gardening.

        * stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js:

2021-06-25  Paulo Matos  <pmatos@igalia.com>

        Unskip materialized-regexp-has-correct-last-index-set-by-match on arm and mips
        https://bugs.webkit.org/show_bug.cgi?id=227213

        Unreviewed Gardening.

        * stress/materialized-regexp-has-correct-last-index-set-by-match.js:

2021-06-25  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip materialize-regexp-cyclic-regexp.js on ARM and MIPS
        https://bugs.webkit.org/show_bug.cgi?id=227223

        Tested with 50 iterations in both arm and mips.

        Unreviewed Gardening.

        * stress/materialize-regexp-cyclic-regexp.js:

2021-06-24  Asumu Takikawa  <asumu@igalia.com>

        [WASM-Function-References] Add support for (ref null? $t) type constructor
        https://bugs.webkit.org/show_bug.cgi?id=226296

        Adds additional tests for uses of `(ref $t)` and `(ref null $t)`
        types, including with non-null extern/funcrefs.

        Reviewed by Yusuke Suzuki.

        * wasm/function-references/ref_types.js: Added.
        (module):
        (async testRefTypeLocal):
        (async testNonNullRefTypeLocal):
        (async testRefTypeInSignature):
        (async testRefTypeParamCheck):
        (async testRefGlobalCheck):
        (async testExternFuncrefNonNullCheck):
        (async testExternrefCompatibility):
        (async testNonNullExternrefIncompatible):
        (async testFuncrefCompatibility):
        (async testNonNullFuncrefIncompatible):
        * wasm/wasm.json:

2021-06-24  Guillaume Emont  <guijemont@igalia.com>

        Improve our checking of NaN values in DataView tests
        https://bugs.webkit.org/show_bug.cgi?id=227347

        Reviewed by Yusuke Suzuki.

        This allows the merging of dataview-jit-set-nan.js and
        dataview-jit-set.js.

        * stress/dataview-jit-set-nan.js: Removed.
        * stress/dataview-jit-set.js:
        (test5):
        (test6):

2021-06-24  Mikhail R. Gadelha  <mikhail@igalia.com>

        Unskip arguments-properties-order.js on MIPS 
        https://bugs.webkit.org/show_bug.cgi?id=227254

        No failures after 50 iterations. Also tested on Loongson 3A4000 (in 32-bits mode).

        Unreviewed Gardening.

        * stress/arguments-properties-order.js:

2021-06-24  Xan Lopez  <xan@igalia.com>

        [JSC] Implement returnEarlyFromInfiniteLoopsForFuzzing for 32bits
        https://bugs.webkit.org/show_bug.cgi?id=227290

        Reviewed by Mark Lam.

        Now that we can return early from infinite (actual or just
        extremely long running) loops on 32bits, we can pass these tests.

        * stress/construct-return-early-from-infinite-loop-for-fuzzer.js: unskip for 32bits.
        * stress/early-return-from-builtin2.js: ditto.
        * stress/validate-does-gc-with-return-early-from-infinite-loop-2.js: ditto.
        * stress/validate-does-gc-with-return-early-from-infinite-loop.js: ditto.

2021-06-23  Saam Barati  <sbarati@apple.com>

        Bound stress/put-by-id-flags with a fixed number of iterations
        https://bugs.webkit.org/show_bug.cgi?id=227305

        Reviewed by Mark Lam.

        * stress/put-by-id-flags.js:
        (numberOfDFGCompiles): Deleted.

2021-06-23  Saam Barati  <sbarati@apple.com>

        Run typedarray-intrinsic-getters-change-prototype for a fixed set of iterations
        https://bugs.webkit.org/show_bug.cgi?id=227304

        Reviewed by Mark Lam.

        * stress/typedarray-intrinsic-getters-change-prototype.js:
        (body):

2021-06-22  Saam Barati  <sbarati@apple.com>

        Don't assume stress/out-of-memory-while-constructing-BytecodeGenerator.js will OOM
        https://bugs.webkit.org/show_bug.cgi?id=227263

        Reviewed by Yusuke Suzuki.

        * stress/out-of-memory-while-constructing-BytecodeGenerator.js:

2021-06-22  Saam Barati  <sbarati@apple.com>

        Run detach-buffer-during-iteration for fewer iterations
        https://bugs.webkit.org/show_bug.cgi?id=227262

        Reviewed by Yusuke Suzuki.

        * stress/detach-buffer-during-iteration.js:

2021-06-22  Saam Barati  <sbarati@apple.com>

        Run microbenchmarks/interpreter-wasm under runDefault only
        https://bugs.webkit.org/show_bug.cgi?id=227261

        Reviewed by Robin Morisset.

        * microbenchmarks/interpreter-wasm.js:

2021-06-22  Saam Barati  <sbarati@apple.com>

        jitCompileAndSetHeuristics shouldn't return true when we fail to compile
        https://bugs.webkit.org/show_bug.cgi?id=227155

        Reviewed by Tadeu Zagallo.

        * microbenchmarks/interpreter-wasm.js:
        * microbenchmarks/memcpy-wasm-large.js:
        * microbenchmarks/memcpy-wasm-medium.js:
        * microbenchmarks/memcpy-wasm-small.js:
        * microbenchmarks/memcpy-wasm.js:
        * stress/wasm-error-message-cross-threads.js:

2021-06-22  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip stress/elidable-new-object-roflcopter-then-exit.js on MIPS/ARM
        https://bugs.webkit.org/show_bug.cgi?id=227251

        Unreviewed gardening.

        No failures on either platform after 100 iterations.

        * stress/elidable-new-object-roflcopter-then-exit.js:

2021-06-22  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip microbenchmarks/redefine-property-data-dictionary.js on MIPS/ARM
        https://bugs.webkit.org/show_bug.cgi?id=227252

        Unreviewed gardening.

        No failures on either platform after 100 iterations.

        * microbenchmarks/redefine-property-data-dictionary.js:

2021-06-22  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip stress/array-species-create-should-handle-masquerader.js on mips
        https://bugs.webkit.org/show_bug.cgi?id=227249

        Unreviewed gardening.

        No failure after 60 iterations.

        * stress/array-species-create-should-handle-masquerader.js:

2021-06-21  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Add JIT ICs for `#x in obj` feature
        https://bugs.webkit.org/show_bug.cgi?id=226146

        Reviewed by Saam Barati.

        * microbenchmarks/has-private-brand.js: Added.
        * microbenchmarks/has-private-name.js: Added.

2021-06-21  Xan Lopez  <xan@igalia.com>

        [JSC] Fix consistency check during stack splitting in Wasm::LLIntGenerator::addLoop
        https://bugs.webkit.org/show_bug.cgi?id=226012

        Reviewed by Tadeu Zagallo.

        * stress/wasm-loop-consistency.js: Added.
        (vm.isWasmSupported):

2021-06-21  Yusuke Suzuki  <ysuzuki@apple.com>

        Release assert memory in JSC::Wasm::Memory::growShared(JSC::Wasm::PageCount)::<lambda()>
        https://bugs.webkit.org/show_bug.cgi?id=227180

        Reviewed by Keith Miller.

        * stress/shared-wasm-memory-with-zero-byte.js: Added.

2021-06-21  Xan Lopez  <xan@igalia.com>

        [JSC] Reenable ChakraCore/test/Math/max.js on ARMv7 and MIPS
        https://bugs.webkit.org/show_bug.cgi?id=227209

        Reviewed by Adrian Perez de Castro.

        * ChakraCore.yaml: reenable the test, should be working fine now.

2021-06-20  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add ValueOf fast path in toPrimitive
        https://bugs.webkit.org/show_bug.cgi?id=226948

        Reviewed by Ross Kirsling.

        * microbenchmarks/valueof-via-toprimitive.js: Added.

2021-06-17  Saam Barati  <sbarati@apple.com>

        Make microbenchmarks/delete-property-from-prototype-chain not time out on debug builds
        https://bugs.webkit.org/show_bug.cgi?id=227148

        Reviewed by Mark Lam.

        * microbenchmarks/delete-property-from-prototype-chain.js:

2021-06-16  Tadeu Zagallo  <tzagallo@apple.com>

        AssemblyHelpers should save/restore callee save FPRs
        https://bugs.webkit.org/show_bug.cgi?id=227052
        <rdar://77080162>

        Reviewed by Mark Lam.

        * stress/callee-save-fpr.js: Added.
        (_f):
        (_g):
        (_h):
        (_i):
        (assertEqual):

2021-06-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Optimize JSON.parse with small content by dropping single character Identifier pool
        https://bugs.webkit.org/show_bug.cgi?id=227057

        Reviewed by Sam Weinig.

        * microbenchmarks/flight-todomvc-json.js: Added.
        (test):

2021-06-14  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Workaround ICU uloc_addLikelySubtags / uloc_minimizeSubtags bugs
        https://bugs.webkit.org/show_bug.cgi?id=226996
        rdar://79250513

        Reviewed by Ross Kirsling.

        * stress/intl-long-locale-id-maximize-minimize.js: Added.
        (shouldBe):
        (throw.new.Error):

2021-06-13  Saam Barati  <sbarati@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=226576
        <rdar://problem/78810362>

        Reviewed by Yusuke Suzuki.

        * stress/short-circuit-read-modify-write-cant-write-dst-before-tdz-check.js: Added.
        (let.result.eval.try.captureV):
        (catch):

2021-06-06  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Use ResolvedClosureVar to get brand from scope
        https://bugs.webkit.org/show_bug.cgi?id=226677
        rdar://78802869

        Reviewed by Saam Barati.

        * stress/private-access-nested-eval.js: Added.
        (shouldThrow):
        (shouldThrow.prototype.x):
        (shouldThrow.prototype.m.C.prototype.z):
        (shouldThrow.prototype.m.C.prototype.a):
        (shouldThrow.prototype.m.C):
        (shouldThrow.prototype.m):
        * stress/private-access-nested.js: Added.
        (shouldThrow):
        (shouldThrow.prototype.x):
        (shouldThrow.prototype.m.C.prototype.z):
        (shouldThrow.prototype.m.C.prototype.a):
        (shouldThrow.prototype.m.C):
        (shouldThrow.prototype.m):

2021-06-07  Alexey Shvayka  <shvaikalesh@gmail.com>

        Unreviewed, reland r276592 with a fix for put() override in prototype chain of a JSProxy
        https://bugs.webkit.org/show_bug.cgi?id=226185

        * microbenchmarks/put-slow-no-cache-array.js: Added.
        * microbenchmarks/put-slow-no-cache-function.js: Added.
        * microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
        * microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
        * microbenchmarks/put-slow-no-cache.js: Added.
        * microbenchmarks/reflect-set-with-receiver.js: Added.
        * stress/custom-get-set-proto-chain-put.js:
        * stress/module-namespace-access-set-fails.js: Added.
        * stress/put-non-reified-static-accessor-or-custom.js: Added.
        * stress/put-non-reified-static-function-or-custom.js: Added.
        * stress/put-to-primitive-non-reified-static-custom.js: Added.
        * stress/put-to-primitive.js: Added.
        * stress/put-to-proto-chain-overrides-put.js:
        Rework to always test new objects, add JSProxy coverage, and assert that receiver has own property.

        * stress/typed-array-canonical-numeric-index-string-set.js: Added.

2021-06-07  Saam Barati  <sbarati@apple.com>

        Short circuit read modify write nodes emit byte code that uses the wrong locals
        https://bugs.webkit.org/show_bug.cgi?id=226576
        <rdar://problem/78810362>

        Reviewed by Yusuke Suzuki.

        * stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js: Added.
        (eval):

2021-06-07  Robin Morisset  <rmorisset@apple.com>

        Optimize compareStrictEq when neither side is a double and at least one is neither a string nor a BigInt
        https://bugs.webkit.org/show_bug.cgi?id=226676

        Reviewed by Filip Pizlo.

        I made two variants of the already existing poly-stricteq microbenchmarks with different types in the array.
        I also tweaked all three so that we more reliably reach the FTL.
        Finally I added a stress-test to verify that I did not introduce an OSR exit bug.

        * microbenchmarks/poly-stricteq-not-double-nor-string.js: Added.
        (foo):
        (test):
        * microbenchmarks/poly-stricteq-not-double.js: Added.
        (foo):
        (test):
        * microbenchmarks/poly-stricteq.js:
        (foo):
        (test):
        * stress/poly-stricteq-not-double-nor-string-fail.js: Added.
        (foo):
        (test):

2021-06-04  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Private static method should define privateClassBrandIdentifier in class-scope
        https://bugs.webkit.org/show_bug.cgi?id=226656
        rdar://78313139

        Reviewed by Keith Miller.

        * stress/private-in-error.js: Added.
        (shouldThrow):
        (x):
        (prototype.foo):
        * stress/private-static-method-declaration-error.js: Added.
        (shouldThrow):
        (prototype.get x):
        (prototype.foo.D.a):
        (prototype.foo.D.prototype.b):
        (prototype.foo.D):
        (prototype.foo):

2021-06-04  Mark Lam  <mark.lam@apple.com>

        Placate exception checker validation in objectPrototypeHasOwnProperty.
        https://bugs.webkit.org/show_bug.cgi?id=226651
        rdar://78861296

        Reviewed by Keith Miller.

        * stress/placate-exception-checker-in-objectPrototypeHasOwnProperty.js: Added.

2021-06-03  Filip Pizlo  <fpizlo@apple.com>

        DFG should speculate on CompareStrictEq(@x, @x)
        https://bugs.webkit.org/show_bug.cgi?id=226621

        Reviewed by Mark Lam.

        * microbenchmarks/untyped-stricteq-self.js: Added.
        (foo):
        * stress/untyped-stricteq-self-fail.js: Added.
        (bar):
        (foo):

2021-06-04  Keith Miller  <keith_miller@apple.com>

        Fix tests that fail under executable allocation fuzzing
        https://bugs.webkit.org/show_bug.cgi?id=226593

        Reviewed by Mark Lam.

        * microbenchmarks/memcpy-wasm-large.js:
        (typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
        (typeof.WebAssembly.string_appeared_here.catch):
        (typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
        * microbenchmarks/memcpy-wasm-medium.js:
        (typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
        (typeof.WebAssembly.string_appeared_here.catch):
        (typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
        * microbenchmarks/memcpy-wasm-small.js:
        (typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
        (typeof.WebAssembly.string_appeared_here.catch):
        (typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
        * microbenchmarks/memcpy-wasm.js:
        (typeof.WebAssembly.string_appeared_here.try.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array):
        (typeof.WebAssembly.string_appeared_here.catch):
        (typeof.WebAssembly.string_appeared_here.const.1.new.WebAssembly.Instance.new.WebAssembly.Module.new.Uint8Array): Deleted.
        * stress/bit-op-with-object-returning-int32.js:
        (numberOfDFGCompiles):
        (bitOr): Deleted.
        (bitXor): Deleted.
        (bitNot): Deleted.
        (bitLShift): Deleted.
        * stress/bitwise-not-fixup-rules.js:
        (numberOfDFGCompiles):
        (let.o.valueOf): Deleted.

2021-06-04  Tadeu Zagallo  <tzagallo@apple.com>

        Optimize Function.prototype.toString
        https://bugs.webkit.org/show_bug.cgi?id=226418
        <rdar://77861846>

        Reviewed by Saam Barati.

        * microbenchmarks/function-to-string.js: Added.
        (f):
        (C):
        (C.prototype.method1):
        (C.prototype.method2):
        (test):
        (test2):

2021-06-03  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Implement JIT ICs for InByVal
        https://bugs.webkit.org/show_bug.cgi?id=226563

        Reviewed by Saam Barati.

        * microbenchmarks/in-by-val-int32.js: Added.
        * microbenchmarks/in-by-val-string-index.js: Added.
        * microbenchmarks/in-by-val-symbol.js: Added.

2021-06-03  Mark Lam  <mark.lam@apple.com>

        Fix an ASSERT in objectPrototypeHasOwnProperty() to account for TerminationException.
        https://bugs.webkit.org/show_bug.cgi?id=226609
        rdar://78465046

        Reviewed by Robin Morisset.

        * stress/termination-exception-in-objectPrototypeHasOwnProperty.js: Added.

2021-06-03  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Make $vm's accessor test functions robust against primitive |this|
        https://bugs.webkit.org/show_bug.cgi?id=226591

        Reviewed by Saam Barati.

        * stress/test-static-accessor-on-primitive.js: Added.
        (shouldThrow):

2021-05-28  Robin Morisset  <rmorisset@apple.com>

        Fix LikelyDenseUnsignedIntegerSet::clear()
        https://bugs.webkit.org/show_bug.cgi?id=226388
        rdar://78607433

        Reviewed by Mark Lam.

        * stress/stack-allocation-regression.js: Added.
        (foo):

2021-05-28  Saam Barati  <sbarati@apple.com>

        Don't sink arguments past the context of the inline call frame they were created in
        https://bugs.webkit.org/show_bug.cgi?id=226363
        <rdar://78392801>

        Reviewed by Filip Pizlo.

        * stress/dont-sink-arguments-past-inline-call-frame.js: Added.
        (foo):
        (fooWrap):
        (empty):
        (bar):

2021-05-22  Ross Kirsling  <ross.kirsling@sony.com>

        Support Ergonomic Brand Checks proposal (`#x in obj`)
        https://bugs.webkit.org/show_bug.cgi?id=221093

        Reviewed by Caio Araujo Neponoceno de Lima.

        * stress/private-in.js: Added.
        * test262/config.yaml: Add feature flag.

2021-05-21  Angelos Oikonomopoulos  <angelos@igalia.com>

        Unskip type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value on MIPS
        https://bugs.webkit.org/show_bug.cgi?id=226011

        Unreviewed gardening.

        Appears to no longer be flaky.

        * stress/type-check-hoisting-phase-hoist-check-structure-on-tdz-this-value.js:

2021-05-20  Saam Barati  <sbarati@apple.com>

        [ Catalina Release JSC] A large number of JSC test appear to be flaky failing
        https://bugs.webkit.org/show_bug.cgi?id=225998
        <rdar://problem/78235001>

        Reviewed by Yusuke Suzuki.

        * stress/dont-link-virtual-calls-on-compiler-thread.js: Added.

2021-05-19  Robin Morisset  <rmorisset@apple.com>

        Fix typo in AirUseCounts
        https://bugs.webkit.org/show_bug.cgi?id=225977
        rdar://78210501

        Reviewed by Mark Lam.

        Add the testcase found by Tuomas.

        * stress/register-allocator-stress.js: Added.
        (foo):

2021-05-18  Keith Miller  <keith_miller@apple.com>

        Temporarily revert r276592 as it breaks some native apps
        https://bugs.webkit.org/show_bug.cgi?id=225917

        Unreviewed, revert.

        * microbenchmarks/put-slow-no-cache-array.js: Removed.
        * microbenchmarks/put-slow-no-cache-function.js: Removed.
        * microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
        * microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
        * microbenchmarks/put-slow-no-cache.js: Removed.
        * microbenchmarks/reflect-set-with-receiver.js: Removed.
        * stress/custom-get-set-proto-chain-put.js:
        (getObjects):
        (let.base.of.getBases):
        * stress/module-namespace-access-set-fails.js: Removed.
        * stress/put-non-reified-static-accessor-or-custom.js: Removed.
        * stress/put-non-reified-static-function-or-custom.js: Removed.
        * stress/put-to-primitive-non-reified-static-custom.js: Removed.
        * stress/put-to-primitive.js: Removed.
        * stress/put-to-proto-chain-overrides-put.js: Removed.
        * stress/typed-array-canonical-numeric-index-string-set.js: Removed.

2021-05-17  Alexey Shvayka  <shvaikalesh@gmail.com>

        REGRESSION (r271119): Object methods defined with shorthand notation cannot access "caller" in non-strict mode
        https://bugs.webkit.org/show_bug.cgi?id=225277

        Reviewed by Darin Adler.

        * stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Now covers #157461 and #157863. 
        * stress/function-caller-cross-realm-via-call-apply.js: Added, coverage for #34553.
        * stress/function-hidden-as-caller.js: Also adds test case for #102276.

2021-05-16  Saam Barati  <sbarati@apple.com>

        DFGVarargsForwardingPhase shouldn't consult Flush
        https://bugs.webkit.org/show_bug.cgi?id=225824

        Reviewed by Filip Pizlo and Yusuke Suzuki.

        * microbenchmarks/tail-call-forward-arguments-arguments-elimination.js: Added.

2021-05-15  Alexey Shvayka  <shvaikalesh@gmail.com>

        Turn callGetter() / callSetter() into instance methods
        https://bugs.webkit.org/show_bug.cgi?id=225831

        Reviewed by Ross Kirsling.

        * microbenchmarks/put-slow-no-cache-setter.js: Added.

2021-05-07  Ross Kirsling  <ross.kirsling@sony.com>

        [JSC] Error#cause must recognize explicit undefined
        https://bugs.webkit.org/show_bug.cgi?id=225535

        Reviewed by Alexey Shvayka.

        * test262/config.yaml:
        Re-enable tests for this feature; they were all failing due to this quirk.

2021-05-07  Ross Kirsling  <ross.kirsling@sony.com>

        Update test262 (2021.05.07)
        https://bugs.webkit.org/show_bug.cgi?id=225536

        Reviewed by Alexey Shvayka.

        * test262/config.yaml:
        * test262/expectations.yaml:
        * test262/latest-changes-summary.txt:
        * test262/test/:
        * test262/test262-Revision.txt:

2021-05-06  Mark Lam  <mark.lam@apple.com>

        Forbid further execution in jsc shell if execution is terminated.
        https://bugs.webkit.org/show_bug.cgi?id=225410
        rdar://77548608

        Reviewed by Michael Saboff.

        * stress/jsc-shell-forbid-execution-after-termination.js: Added.

2021-05-05  Saam Barati  <sbarati@apple.com>

        Update tests to use collectExtraSamplingProfilerData instead of collectSamplingProfilerDataForJSCShell
        https://bugs.webkit.org/show_bug.cgi?id=225398

        Reviewed by Mark Lam.

        I forgot to update the tests to use the new option name.

        * stress/sampling-profiler-code-origin.js:
        * stress/sampling-profiler-richards.js:

2021-05-03  Mark Lam  <mark.lam@apple.com>

        Fix syntax error message for AUTOPLUSPLUS token.
        https://bugs.webkit.org/show_bug.cgi?id=225308
        rdar://76830934

        Reviewed by Saam Barati.

        * stress/prefix-plusplus-syntax-error-should-say-plusplus.js: Added.

2021-05-03  Dmitry Bezhetskov  <dbezhetskov@igalia.com>

        [WASM-Function-References] Add call_ref instruction
        https://bugs.webkit.org/show_bug.cgi?id=222903

        Reviewed by Yusuke Suzuki.

        Add basic tests for new call_ref instruction:
        https://github.com/WebAssembly/function-references/blob/master/proposals/function-references/Overview.md.
        Add tests for calling same-instance wasm function, foreign-instance
        wasm function and for calling imported js function.

        * wasm.yaml:
        * wasm/function-references/call_ref.js: Added.
        (module):
        (async basics):
        (async indirectCall):
        (async importHostCall):
        * wasm/wasm.json:

2021-04-28  Mark Lam  <mark.lam@apple.com>

        Fix exception assertions in light of the TerminationException.
        https://bugs.webkit.org/show_bug.cgi?id=225128
        rdar://76694909

        Reviewed by Robin Morisset.

        * stress/suppress-TerminationException-in-JSFunction-prototypeForConstruction.js: Added.

2021-04-27  Angelos Oikonomopoulos  <angelos@igalia.com>

        [JSC] Skip tests failing on Loongson 3A4000
        https://bugs.webkit.org/show_bug.cgi?id=225091

        Reviewed by Yusuke Suzuki.

        This new hardware is much faster when it comes to running JSC tests (and
        hopefully more reliable than the ci20 boards currently in use), so skip the
        couple of tests that fail, so that we can test the Loongson box in production.

        * ChakraCore.yaml:
        * stress/arguments-properties-order.js:

2021-04-26  Mark Lam  <mark.lam@apple.com>

        %TypedArray%.prototype.sort() should not use a regular array as a temp buffer.
        https://bugs.webkit.org/show_bug.cgi?id=225062
        rdar://77021547

        Reviewed by Yusuke Suzuki.

        * stress/typedarray-sort-should-not-use-a-regular-array-as-temp-buffer.js: Added.

2021-04-26  Alexey Shvayka  <shvaikalesh@gmail.com>

        [JSC] OrdinarySet should invoke custom [[Set]] methods
        https://bugs.webkit.org/show_bug.cgi?id=217916

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/put-slow-no-cache-array.js: Added.
        * microbenchmarks/put-slow-no-cache-function.js: Added.
        * microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
        * microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
        * microbenchmarks/put-slow-no-cache.js: Added.
        * microbenchmarks/reflect-set-with-receiver.js: Added.
        * stress/custom-get-set-proto-chain-put.js:
        * stress/module-namespace-access-set-fails.js: Added.
        * stress/put-non-reified-static-accessor-or-custom.js: Added.
        * stress/put-non-reified-static-function-or-custom.js: Added.
        * stress/put-to-primitive-non-reified-static-custom.js: Added.
        * stress/put-to-primitive.js: Added.
        * stress/put-to-proto-chain-overrides-put.js: Added.
        * stress/typed-array-canonical-numeric-index-string-set.js: Added.

2021-04-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Baseline should have fast path for switch_imm
        https://bugs.webkit.org/show_bug.cgi?id=224521

        Reviewed by Tadeu Zagallo.

        * stress/switch-imm-baseline.js: Added.
        (shouldBe):
        (test):

2021-04-21  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] DFG / FTL should inline switch_string
        https://bugs.webkit.org/show_bug.cgi?id=224578

        Reviewed by Mark Lam.

        * microbenchmarks/switch-inlining.js: Added.
        (inner):
        (outer):
        * stress/switch-inlining-nested.js: Added.
        (shouldBe):
        (inner):
        (outer):

2021-04-21  Caio Lima  <ticaiolima@gmail.com>

        [JSC] Unskip some tests for ARMv7 and MIPS
        https://bugs.webkit.org/show_bug.cgi?id=224813

        Unreviewed test gardening.

        * stress/has-own-property-name-cache-symbols-and-strings.js:
        * stress/incremental-marking-should-not-dead-lock-in-new-property-transition.js:

2021-04-20  Paulo Matos  <pmatos@igalia.com>

        Unskip couple of tests for armv7l and mips
        https://bugs.webkit.org/show_bug.cgi?id=224607

        Unreviewed gardening.

        * stress/check-stack-overflow-before-value-profiling-arguments.js:
        (fullGC):
        * stress/intl-suppored-locales-of.js:

2021-04-20  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Limit memory allocation size of JSTests/stress/early-return-from-builtin.js
        https://bugs.webkit.org/show_bug.cgi?id=224803
        <rdar://problem/75597901>

        Reviewed by Ryosuke Niwa.

        Add limit to JSTests/stress/early-return-from-builtin.js to avoid infinite allocation.

        * stress/early-return-from-builtin.js:
        (let.iter.Symbol.iterator):

2021-04-19  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Rebaseline test results for new ICU
        https://bugs.webkit.org/show_bug.cgi?id=224792

        Reviewed by Mark Lam.

        This patch updates some intl- tests' expectation since it is changed because of ICU CLDR data change.

        * stress/intl-datetimeformat-formatrange-relevant-extensions-ja.js:
        (shouldBeOneOfThem):
        (vm.icuVersion):
        * stress/intl-datetimeformat-formatrange-relevant-extensions.js:
        (shouldBeOneOfThem):
        * stress/intl-datetimeformat-formatrange-should-not-handle-gregorian-change-date.js:
        (shouldBe):
        (vm.icuHeaderVersion):
        * stress/intl-datetimeformat-formatrangetoparts-relevant-extensions-ja.js:
        (normalize):
        (shouldBe):
        (compareParts):
        (shouldBeOneOfParts):
        (shouldBeParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt5.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.vm.icuVersion):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt7.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt9.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt11.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt13.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeParts.fmt13.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt14.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt15.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.shouldBeOneOfParts.fmt16.formatRangeToParts):
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt1.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt2.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt3.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt4.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt5.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt6.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt7.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt8.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt9.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt10.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt11.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt12.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt13.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt14.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt15.formatRangeToParts): Deleted.
        (Intl.DateTimeFormat.prototype.formatRangeToParts.compareParts.fmt16.formatRangeToParts): Deleted.
        * stress/intl-datetimeformat-formatrangetoparts-relevant-extensions.js:
        (normalize):
        (shouldBe):
        (compareParts):
        (shouldBeOneOfParts):
        (shouldBeParts):
        * stress/intl-datetimeformat-formatrangetoparts-should-not-handle-gregorian-change-date.js:
        (shouldBe):
        * stress/intl-datetimeformat.js:
        (shouldBeOneOfThem):

2021-04-16  Guillaume Emont  <guijemont@igalia.com>

        [JSC] Unskip stress/intl-parse-unicode-subtags.js on arm
        https://bugs.webkit.org/show_bug.cgi?id=224679

        Unreviewed test gardening.

        * stress/intl-parse-unicode-subtags.js: Unskipped, as it passes fine
        now.

2021-04-16  Xan Lopez  <xan@igalia.com>

        [JSC][ARMv7] Unskip stress/put-direct-index-broken-2.js
        https://bugs.webkit.org/show_bug.cgi?id=224661

        Unreviewed test gardening.

        * stress/put-direct-index-broken-2.js: unskip on ARMv7, could not
        reproduce locally the crash we saw earlier.

2021-04-15  Mark Lam  <mark.lam@apple.com>

        HashMapImpl::rehash() should use a version of jsMapHash that cannot throw.
        https://bugs.webkit.org/show_bug.cgi?id=224610
        rdar://76698910

        Reviewed by Yusuke Suzuki.

        * stress/suppress-TerminationException-in-HashMapImpl-rehash.js: Added.

2021-04-14  Mark Lam  <mark.lam@apple.com>

        Add missing exception check in operationGetPrivateNameOptimize().
        https://bugs.webkit.org/show_bug.cgi?id=224592
        rdar://76645873

        Reviewed by Yusuke Suzuki.

        * stress/suppress-TerminationException-in-operationGetPrivateNameOptimize.js: Added.

2021-04-14  Mark Lam  <mark.lam@apple.com>

        Defer TerminationExceptions when evaluating ASSERT in HashMapIml::addNormalized().
        https://bugs.webkit.org/show_bug.cgi?id=224565
        rdar://76645980

        Reviewed by Yusuke Suzuki.

        * stress/suppress-TerrminationException-in-ASSERT-in-HashMapImpl-addNormalized.js: Added.

2021-04-14  Guillaume Emont  <guijemont@igalia.com>

        [JSC] Unskip stress/intl-segmenter.js
        https://bugs.webkit.org/show_bug.cgi?id=224553

        Unreviewed test gardening.

        It shouldn't fail any more on our bots now that our handling of libicu
        is more robust.

        * stress/intl-segmenter.js:

2021-04-14  Angelos Oikonomopoulos  <angelos@igalia.com>

        [JSC] Unskip typedarray-functions-with-neutered.js on MIPS
        https://bugs.webkit.org/show_bug.cgi?id=224428

        Unreviewed test gardening.

        This appears to no longer fail.

        * stress/typedarray-functions-with-neutered.js:

2021-04-13  Angelos Oikonomopoulos  <angelos@igalia.com>

        [JSC] Unskip stress/intl-displaynames.js on ARM
        https://bugs.webkit.org/show_bug.cgi?id=224427

        Unreviewed test gardening.

        * stress/intl-displaynames.js:

2021-04-10  Mark Lam  <mark.lam@apple.com>

        Enable VMTraps checks in RETURN_IF_EXCEPTION.
        https://bugs.webkit.org/show_bug.cgi?id=224078
        rdar://75037057

        Reviewed by Keith Miller.

        * stress/watchdog-fire-while-in-forEachInIterable.js: Added.

2021-04-07  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] DUCET level-1 weighs are equal if characters are alphabets
        https://bugs.webkit.org/show_bug.cgi?id=224047

        Reviewed by Saam Barati and Mark Lam.

        * stress/ducet-level-3-or-4-comparison.js: Added.
        (shouldBe):

2021-04-07  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Update test262
        https://bugs.webkit.org/show_bug.cgi?id=224272

        Reviewed by Ross Kirsling.

        * test262/latest-changes-summary.txt:
        * test262/test/intl402/DisplayNames/options-getoptionsobject.js: Added.
        * test262/test/intl402/ListFormat/constructor/constructor/options-getoptionsobject.js: Renamed from JSTests/test262/test/intl402/ListFormat/constructor/constructor/options-toobject.js.
        * test262/test/intl402/ListFormat/constructor/constructor/options-toobject-prototype.js: Removed.
        * test262/test/intl402/Segmenter/constructor/constructor/options-getoptionsobject.js: Added.
        * test262/test/intl402/Segmenter/constructor/constructor/options-toobject-prototype.js: Removed.
        * test262/test/intl402/Segmenter/constructor/constructor/options-toobject.js: Removed.
        * test262/test/language/expressions/in/rhs-yield-absent-non-strict.js: Added.
        * test262/test/language/expressions/in/rhs-yield-absent-strict.js: Added.
        * test262/test/language/expressions/in/rhs-yield-present.js: Added.
        (isNameIn):
        * test262/test262-Revision.txt:

2021-04-06  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] WasmMemory caging should care about nullptr
        https://bugs.webkit.org/show_bug.cgi?id=224268
        <rdar://problem/74654838>

        Reviewed by Mark Lam.

        * wasm/stress/4g-memory-cage.js: Added.
        (async test):
        * wasm/stress/more-than-4g-offset-access-oom.js: Added.
        (async test):
        * wasm/stress/null-memory-cage-explicit.js: Added.
        (async test):
        * wasm/stress/null-memory-cage.js: Added.
        (async test):

2021-04-06  Alexey Shvayka  <shvaikalesh@gmail.com>

        Symbol and BigInt wrapper objects should perform OrdinaryToPrimitive
        https://bugs.webkit.org/show_bug.cgi?id=224208

        Reviewed by Yusuke Suzuki.

        * stress/bigint-object-ordinary-toprimitive.js: Added.
        * stress/symbol-object-ordinary-toprimitive.js: Added.

2021-04-06  Alexey Shvayka  <shvaikalesh@gmail.com>

        Array's toString() is incorrect if join() is non-callable
        https://bugs.webkit.org/show_bug.cgi?id=224215

        Reviewed by Yusuke Suzuki.

        * stress/array-toString-non-callable-join.js: Added.

2021-04-05  Keith Miller  <keith_miller@apple.com>

        DFG arity fixup nodes should exit to the caller's call opcode
        https://bugs.webkit.org/show_bug.cgi?id=223278

        Reviewed by Saam Barati.

        * stress/dfg-arity-fixup-uses-callers-exit-origin.js: Added.
        (main.v22):
        (main.v30):
        (main.try.v40):
        (main.try.v47):
        (main.try.v56):
        (main.):
        (main):

2021-04-02  Alexey Shvayka  <shvaikalesh@gmail.com>

        Reduce bytecode instruction count emitted for `class extends`
        https://bugs.webkit.org/show_bug.cgi?id=223884

        Reviewed by Yusuke Suzuki.

        * ChakraCore/test/Error/validate_line_column.baseline-jsc:

2021-04-02  Jessica Tallon  <jtallon@igalia.com>

        Add tests for the new type method on certain JS-API wasm objects.
        https://bugs.webkit.org/show_bug.cgi?id=222412

        Reviewed by Yusuke Suzuki.

        * wasm/js-api/global.js: Added.
        (assert.throws):
        * wasm/js-api/table.js:
        (assert.truthy):
        * wasm/js-api/test_memory.js:

2021-04-01  Alexey Shvayka  <shvaikalesh@gmail.com>

        Optimize createListFromArrayLike() and Proxy's [[OwnPropertyKeys]] method
        https://bugs.webkit.org/show_bug.cgi?id=223928

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/json-stringify-array-replacer.js:
        Reduce running time from over 350ms to ~60ms.

        * microbenchmarks/reflect-own-keys-proxy-2.js: Added.
        * microbenchmarks/reflect-own-keys-proxy.js: Added.

2021-03-31  Mark Lam  <mark.lam@apple.com>

        Missing exception check in HashMapImpl::add().
        https://bugs.webkit.org/show_bug.cgi?id=224007
        rdar://76053163

        Reviewed by Saam Barati.

        * stress/missing-exception-check-in-HashMapImpl-add.js: Added.

2021-03-31  Alexey Shvayka  <shvaikalesh@gmail.com>

        Optimize constructors of ES6 collections
        https://bugs.webkit.org/show_bug.cgi?id=223953

        Reviewed by Yusuke Suzuki.

        * microbenchmarks/map-constructor.js:
        * microbenchmarks/set-constructor.js: Added.
        * microbenchmarks/weak-map-constructor.js: Added.
        * microbenchmarks/weak-set-constructor.js: Added.
        * stress/map-constructor-adder.js:
        * stress/set-constructor-adder.js:
        * stress/weak-map-constructor-adder-error-cross-realm.js: Added.
        * stress/weak-map-constructor-adder.js:
        * stress/weak-set-constructor-adder-error-cross-realm.js: Added.
        * stress/weak-set-constructor-adder.js:
        * stress/weak-set-constructor.js:

2021-03-29  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed test gardening.

        * stress/early-return-from-builtin.js: Disable this test for memoryLimited configurations.

2021-03-26  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Use AppleICU SPI for canonicalization
        https://bugs.webkit.org/show_bug.cgi?id=223552

        Reviewed by Ryosuke Niwa.

        * stress/intl-canonical-locale-alias-mapping.js: Added.
        (shouldBe):
        (Intl.getCanonicalLocales):

2021-03-25  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r275056.

        This is no longer needed

        Reverted changeset:

        "stress/early-return-from-builtin.js.default is failing on iOS
        JSC testers"
        https://commits.webkit.org/r275056

2021-03-25  Truitt Savell  <tsavell@apple.com>

        stress/early-return-from-builtin.js.default is failing on iOS JSC testers
        rdar://75597901

        Unreviewed test gardening.

        * stress/early-return-from-builtin.js:

2021-03-25  Saam Barati  <sbarati@apple.com>

        early-return-from-builtin.js should try/catch in case of OOM
        https://bugs.webkit.org/show_bug.cgi?id=223756

        Reviewed by Yusuke Suzuki.

        It's throwing an OOM on iOS.

        * stress/early-return-from-builtin.js:

2021-03-24  Michael Saboff  <msaboff@apple.com>

        [YARR] Interpreter incorrectly matches non-BMP characters with multiple . w/dotAll flag
        https://bugs.webkit.org/show_bug.cgi?id=223666

        Reviewed by Mark Lam.

        Added tests for dotAll.  Also made sure that we test both JIT and non-JIT execution.

        * stress/regexp-dot-match-nonBMP.js:

2021-03-24  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Rope string equal operation should first check length
        https://bugs.webkit.org/show_bug.cgi?id=223678

        Reviewed by Mark Lam.

        * stress/redefine-property-same-value-exception-check.js:
        (shouldThrow):

2021-03-23  Robin Morisset  <rmorisset@apple.com>

        Object.freeze(this) at the global scope can lose a reference to a WatchpointSet
        https://bugs.webkit.org/show_bug.cgi?id=223608

        Reviewed by Yusuke Suzuki.

        * stress/freeze-global-object.js: Added.
        (foo):

2021-03-22  Saam Barati  <sbarati@apple.com>

        LiteralParser shouldn't make error messages of length ~2^31
        https://bugs.webkit.org/show_bug.cgi?id=223483
        <rdar://75572255>

        Reviewed by Robin Morisset.

        * stress/literal-parser-error-message-oom.js: Added.

2021-03-22  Michael Saboff  <msaboff@apple.com>

        [YARR] Interpreter incorrectly matches non-BMP characters with multiple .
        https://bugs.webkit.org/show_bug.cgi?id=223498

        Reviewed by Yusuke Suzuki.

        New test.

        * stress/regexp-dot-match-nonBMP.js: Added.
        (shouldMatch):
        (shouldntMatch):

2021-03-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Intl.Locale should not assume is8Bit
        https://bugs.webkit.org/show_bug.cgi?id=223553

        Reviewed by Ross Kirsling.

        * stress/intl-locale-non-8bit.js: Added.
        (shouldBe):

2021-03-19  Mark Lam  <mark.lam@apple.com>

        BrandedStructure should keep its members alive.
        https://bugs.webkit.org/show_bug.cgi?id=223495
        rdar://75565765

        Reviewed by Saam Barati.

        * stress/BrandedStructure-should-keep-its-members-alive.js: Added.

== Rolled over to ChangeLog-2021-03-18 ==
