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 ==
