Update test262 tests to commit 157b18d
authorkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Jan 2020 23:21:56 +0000 (23:21 +0000)
committerkeith_miller@apple.com <keith_miller@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Jan 2020 23:21:56 +0000 (23:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=205741

Reviewed by Yusuke Suzuki.

JSTests:

* test262/expectations.yaml:
* test262/harness/deepEqual.js:
(assert.deepEqual):
(assert.deepEqual.format):
(deepEqual):
(compareEquality):
(compareIf):
(tryCompareStrictEquality):
(tryCompareTypeOfEquality):
(tryCompareToStringTagEquality):
(isOptional):
(compareOptionality):
(isPrimitiveEquatable):
(comparePrimitiveEquality):
(isNaNEquatable):
(compareNaNEquality):
(isObjectEquatable):
(compareObjectEquality):
(isBoxed):
(isValueOfEquatable):
(compareValueOfEquality):
(isToStringEquatable):
(compareToStringEquality):
(isArrayLikeEquatable):
(isStructurallyEquatable):
(isIterableEquatable):
(compareIteratorEquality):
(compareIterableEquality):
(cacheComparison):
(fail):
(setCache):
(getCache):
(assert.deepEqual._compare):
* test262/latest-changes-summary.txt:
* test262/test/built-ins/AggregateError: Added.
* test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js: Added.
(case1.get Symbol):
(case2.get Symbol):
(case3.Symbol.iterator):
(case4.Symbol.iterator):
(case5.Symbol.iterator):
(case6.Symbol.iterator.return.get next):
(case6.Symbol.iterator):
(case7.Symbol.iterator.return.get next):
(case7.Symbol.iterator):
(case8.Symbol.iterator):
(case9.Symbol.iterator):
(case10.Symbol.iterator):
(case11.Symbol.iterator.return.next.return.get done):
(case11.Symbol.iterator):
* test262/test/built-ins/AggregateError/errors-iterabletolist.js: Added.
(case1.Symbol.iterator.return.next.return.get value):
(case1.Symbol.iterator):
* test262/test/built-ins/AggregateError/length.js: Added.
* test262/test/built-ins/AggregateError/message-method-prop-cast.js: Added.
(toString):
* test262/test/built-ins/AggregateError/message-method-prop.js: Added.
* test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js: Added.
(case2.Symbol.toPrimitive):
(case2.toString):
(case2.valueOf):
* test262/test/built-ins/AggregateError/message-tostring-abrupt.js: Added.
(case1.Symbol.toPrimitive):
(case1.toString):
(case1.valueOf):
(case2.toString):
(case2.valueOf):
(case3.valueOf):
* test262/test/built-ins/AggregateError/message-undefined-no-prop.js: Added.
* test262/test/built-ins/AggregateError/name.js: Added.
* test262/test/built-ins/AggregateError/newtarget-proto-custom.js: Added.
(newt.new.Proxy):
(newt.new.Proxy.get if):
* test262/test/built-ins/AggregateError/newtarget-proto-fallback.js: Added.
(ctor):
(const.value.of.values.get t):
* test262/test/built-ins/AggregateError/newtarget-proto.js: Added.
* test262/test/built-ins/AggregateError/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/proto.js: Added.
* test262/test/built-ins/AggregateError/prototype: Added.
* test262/test/built-ins/AggregateError/prototype/constructor.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors: Added.
* test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/length.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/name.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js: Added.
(errors.Symbol.iterator.return.next.return.get value):
(errors.Symbol.iterator):
* test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js: Added.
* test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js: Added.
* test262/test/built-ins/AggregateError/prototype/message.js: Added.
* test262/test/built-ins/AggregateError/prototype/name.js: Added.
* test262/test/built-ins/AggregateError/prototype/prop-desc.js: Added.
* test262/test/built-ins/AggregateError/prototype/proto.js: Added.
* test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js: Added.
(longDenseArray):
(shorten):
* test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js: Added.
(longDenseArray):
(shorten):
* test262/test/built-ins/Array/prototype/flatMap/this-value-ctor-object-species-bad-throws.js:
* test262/test/built-ins/Atomics/add/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/and/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/or/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/store/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/Error/prototype/toString/invalid-receiver.js: Added.
(Symbol.forEach):
* test262/test/built-ins/Error/prototype/toString/undefined-props.js: Added.
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js: Added.
(fg.new.FinalizationGroup):
(callback):
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js:
* test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js:
* test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js:
* test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js: Added.
(fg.new.FinalizationGroup):
(emptyCells):
(emptyCells.then):
* test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js:
* test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js: Added.
* test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js: Added.
* test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js: Added.
* test262/test/built-ins/JSON/parse/reviver-call-order.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js: Added.
* test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js: Added.
* test262/test/built-ins/JSON/parse/reviver-wrapper.js: Added.
* test262/test/built-ins/JSON/stringify/property-order.js: Added.
* test262/test/built-ins/Object/entries/return-order.js: Added.
* test262/test/built-ins/Object/freeze/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/length.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/name.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-with-description.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-without-description.js:
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-duplicate-string-entry.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js: Added.
(ownKeys):
* test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js:
* test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js: Added.
(ownKeys):
* test262/test/built-ins/Object/keys/return-order.js: Added.
* test262/test/built-ins/Object/preventExtensions/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js: Added.
(handler.allowProxyTraps.getPrototypeOf):
* test262/test/built-ins/Object/prototype/isPrototypeOf/builtin.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/length.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/name.js:
* test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-object-arg-throws.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-primitive-arg-returns-false.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/this-value-is-in-prototype-chain-of-arg.js: Added.
(USER_FACTORY.this.getName):
(USER_FACTORY):
(this.getGrade):
(FORCEDUSER_FACTORY):
* test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-object-arg-throws.js: Added.
* test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-primitive-arg-returns-false.js: Added.
* test262/test/built-ins/Object/seal/throws-when-false.js: Added.
(preventExtensions):
* test262/test/built-ins/Object/values/return-order.js: Added.
* test262/test/built-ins/Proxy/has/call-in-prototype-index.js: Added.
(handler.allowProxyTraps.has):
* test262/test/built-ins/Proxy/has/call-in-prototype.js:
* test262/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js:
(handler.ownKeys):
* test262/test/built-ins/Proxy/set/call-parameters-prototype-index.js: Added.
* test262/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-element.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-matched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
* test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-array.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-object.js:
* test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js:
* test262/test/built-ins/RegExp/match-indices/indices-property.js:
* test262/test/built-ins/String/prototype/replaceAll: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0024.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0026.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0027.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x003C.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0060.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024N.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024NN.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/length.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/name.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceAll.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-abrupt.js: Added.
(custom):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-each-match-position.js: Added.
(t):
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-matching-empty.js: Added.
(t):
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-skip-no-match.js: Added.
(replaceValue):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-tostring-abrupt.js: Added.
(custom):
(symbol):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-fn-skip-toString.js: Added.
(replaceValue):
(value):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-tostring-abrupt.js: Added.
(thisValue.toString):
(searchValue.toString):
(replaceValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-replaces-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-tostring.js: Added.
(replaceValue.Symbol.toPrimitive):
(replaceValue.toString):
(replaceValue.valueOf):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string-this-empty-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-no-g-throws.js: Added.
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-null-undefined-throws.js: Added.
(poison.toString):
(searchValue.get flags):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-toString-abrupt.js: Added.
(poison.toString):
(searchValue.toString):
(searchValue.flags.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-get-flags-abrupt.js: Added.
(searchValue.get flags):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-isRegExp-abrupt.js: Added.
(searchValue.get Symbol):
(searchValue.toString):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replace-method-abrupt.js: Added.
(poison.toString):
(searchValue.get Symbol):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call-fn.js: Added.
(RE.prototype.Symbol.replace):
(RE.prototype.toString):
(RE):
(const.t):
(getFn.return.replaceValueFn):
(getFn):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js: Added.
(RE.prototype.Symbol.replace):
(RE.prototype.toString):
(RE):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-before-tostring.js: Added.
(value):
(poison.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call-abrupt.js: Added.
(poison.toString):
(searchValue.Symbol.replace):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call.js: Added.
(value):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-abrupt.js: Added.
(poison.toString):
(thisValue.toString):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-regexp.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-is-null-throws.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-is-undefined-throws.js: Added.
* test262/test/built-ins/String/prototype/replaceAll/this-tostring-abrupt.js: Added.
(poison.toString):
(thisValue.toString):
(searchValue.toString):
* test262/test/built-ins/String/prototype/replaceAll/this-tostring.js: Added.
(thisValue.Symbol.toPrimitive):
(thisValue.toString):
(thisValue.valueOf):
* test262/test/built-ins/TypedArray/from/mapfn-is-not-callable.js:
* test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length-throws.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
* test262/test/built-ins/TypedArrayConstructors/from/new-instance-from-zero.js:
* test262/test/built-ins/TypedArrayConstructors/of/BigInt/inherited.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/of/inherited.js:
(testWithTypedArrayConstructors):
* test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js:
* test262/test/harness/deepEqual-array.js:
* test262/test/harness/deepEqual-circular.js:
* test262/test/harness/deepEqual-deep.js:
* test262/test/harness/deepEqual-mapset.js:
* test262/test/harness/deepEqual-object.js:
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-dateStyle.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js: Added.
(locales.forEach):
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js:
* test262/test/intl402/DisplayNames: Added.
* test262/test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js: Added.
(custom.new.Proxy.new.Function.get if):
(custom.new.Proxy.new.Function):
* test262/test/intl402/DisplayNames/ctor-custom-prototype.js: Added.
* test262/test/intl402/DisplayNames/ctor-default-prototype.js: Added.
* test262/test/intl402/DisplayNames/instance-extensible.js: Added.
* test262/test/intl402/DisplayNames/length.js: Added.
* test262/test/intl402/DisplayNames/locales-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/locales-length-poison-throws.js: Added.
* test262/test/intl402/DisplayNames/locales-length-tolength-throws.js: Added.
(locales.length.valueOf):
(locales.length.Symbol.toPrimitive):
(locales.length.toString):
* test262/test/intl402/DisplayNames/locales-symbol-length.js: Added.
* test262/test/intl402/DisplayNames/name.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js: Added.
(options.fallback.toString):
(options.fallback.valueOf):
(options.fallback.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-fallback-valid.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js: Added.
(options.localeMatcher.toString):
(options.localeMatcher.valueOf):
(options.localeMatcher.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-localeMatcher-valid.js: Added.
* test262/test/intl402/DisplayNames/options-null-throws.js: Added.
* test262/test/intl402/DisplayNames/options-random-properties-unchecked.js: Added.
* test262/test/intl402/DisplayNames/options-style-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-style-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-style-toString-abrupt-throws.js: Added.
(options.style.toString):
(options.style.valueOf):
(options.style.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-style-valid.js: Added.
* test262/test/intl402/DisplayNames/options-type-abrupt-throws.js: Added.
* test262/test/intl402/DisplayNames/options-type-invalid-throws.js: Added.
* test262/test/intl402/DisplayNames/options-type-toString-abrupt-throws.js: Added.
(options.type.toString):
(options.type.valueOf):
(options.type.Symbol.toPrimitive):
* test262/test/intl402/DisplayNames/options-type-valid.js: Added.
* test262/test/intl402/DisplayNames/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/proto-from-ctor-realm.js: Added.
* test262/test/intl402/DisplayNames/proto.js: Added.
* test262/test/intl402/DisplayNames/prototype: Added.
* test262/test/intl402/DisplayNames/prototype/Symbol.toStringTag.js: Added.
* test262/test/intl402/DisplayNames/prototype/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/length.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/name.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js: Added.
* test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js: Added.
* test262/test/intl402/DisplayNames/undefined-newtarget-throws.js: Added.
* test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
* test262/test/language/expressions/addition/bigint-and-number.js:
* test262/test/language/expressions/addition/bigint-arithmetic.js:
* test262/test/language/expressions/addition/bigint-errors.js:
* test262/test/language/expressions/addition/bigint-toprimitive.js:
* test262/test/language/expressions/addition/bigint-wrapped-values.js:
* test262/test/language/expressions/arrow-function/eval-var-scope-syntax-err.js: Added.
(f.a.eval):
* test262/test/language/expressions/arrow-function/scope-param-elem-var-close.js:
* test262/test/language/expressions/arrow-function/scope-param-elem-var-open.js:
* test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/async-arrow-function/eval-var-scope-syntax-err.js: Added.
(f.async a):
(SyntaxError.then):
* test262/test/language/expressions/async-function/named-eval-var-scope-syntax-err.js: Added.
(f.async f):
(f):
* test262/test/language/expressions/async-function/nameless-eval-var-scope-syntax-err.js: Added.
* test262/test/language/expressions/async-generator/eval-var-scope-syntax-err.js: Added.
* test262/test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js: Added.
(f.async g):
(f):
* test262/test/language/expressions/bitwise-and/bigint-and-number.js:
* test262/test/language/expressions/bitwise-and/bigint-errors.js:
* test262/test/language/expressions/bitwise-and/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-and/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-not/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-or/bigint-and-number.js:
* test262/test/language/expressions/bitwise-or/bigint-errors.js:
* test262/test/language/expressions/bitwise-or/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-or/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js:
* test262/test/language/expressions/bitwise-xor/bigint-and-number.js:
* test262/test/language/expressions/bitwise-xor/bigint-errors.js:
* test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js:
* test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js:
* test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js:
* test262/test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/async-method-static/eval-var-scope-syntax-err.js: Added.
(C):
(then):
* test262/test/language/expressions/class/async-method/eval-var-scope-syntax-err.js: Added.
(C):
(SyntaxError.then):
* test262/test/language/expressions/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
(C.prototype.access):
* test262/test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/method-static/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/class/method/eval-var-scope-syntax-err.js: Added.
(C):
* test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js:
* test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js:
* test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js:
* test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js:
* test262/test/language/expressions/delete/super-property.js:
(C):
* test262/test/language/expressions/division/bigint-and-number.js:
* test262/test/language/expressions/division/bigint-arithmetic.js:
* test262/test/language/expressions/division/bigint-complex-infinity.js:
* test262/test/language/expressions/division/bigint-errors.js:
* test262/test/language/expressions/division/bigint-toprimitive.js:
* test262/test/language/expressions/division/bigint-wrapped-values.js:
* test262/test/language/expressions/does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/does-not-equals/bigint-and-object.js:
* test262/test/language/expressions/does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/equals/bigint-and-bigint.js:
* test262/test/language/expressions/equals/bigint-and-boolean.js:
* test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/equals/bigint-and-non-finite.js:
* test262/test/language/expressions/equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/equals/bigint-and-number.js:
* test262/test/language/expressions/equals/bigint-and-object.js:
* test262/test/language/expressions/equals/bigint-and-string.js:
* test262/test/language/expressions/exponentiation/bigint-and-number.js:
* test262/test/language/expressions/exponentiation/bigint-arithmetic.js:
* test262/test/language/expressions/exponentiation/bigint-errors.js:
* test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js:
* test262/test/language/expressions/exponentiation/bigint-toprimitive.js:
* test262/test/language/expressions/exponentiation/bigint-wrapped-values.js:
* test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js:
* test262/test/language/expressions/function/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/expressions/function/scope-param-elem-var-close.js:
* test262/test/language/expressions/function/scope-param-elem-var-open.js:
* test262/test/language/expressions/function/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/function/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/generators/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/expressions/generators/scope-param-elem-var-close.js:
* test262/test/language/expressions/generators/scope-param-elem-var-open.js:
* test262/test/language/expressions/generators/scope-param-rest-elem-var-close.js:
* test262/test/language/expressions/generators/scope-param-rest-elem-var-open.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/greater-than/bigint-and-bigint.js:
* test262/test/language/expressions/greater-than/bigint-and-boolean.js:
* test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/greater-than/bigint-and-non-finite.js:
* test262/test/language/expressions/greater-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/greater-than/bigint-and-number.js:
* test262/test/language/expressions/greater-than/bigint-and-symbol.js:
* test262/test/language/expressions/left-shift/bigint-and-number.js:
* test262/test/language/expressions/left-shift/bigint-errors.js:
* test262/test/language/expressions/left-shift/bigint-non-primitive.js:
* test262/test/language/expressions/left-shift/bigint-toprimitive.js:
* test262/test/language/expressions/left-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
* test262/test/language/expressions/less-than-or-equal/bigint-and-string.js:
* test262/test/language/expressions/less-than/bigint-and-bigint.js:
* test262/test/language/expressions/less-than/bigint-and-boolean.js:
* test262/test/language/expressions/less-than/bigint-and-incomparable-string.js:
* test262/test/language/expressions/less-than/bigint-and-non-finite.js:
* test262/test/language/expressions/less-than/bigint-and-number-extremes.js:
* test262/test/language/expressions/less-than/bigint-and-number.js:
* test262/test/language/expressions/modulus/bigint-and-number.js:
* test262/test/language/expressions/modulus/bigint-arithmetic.js:
* test262/test/language/expressions/modulus/bigint-errors.js:
* test262/test/language/expressions/modulus/bigint-modulo-zero.js:
* test262/test/language/expressions/modulus/bigint-toprimitive.js:
* test262/test/language/expressions/modulus/bigint-wrapped-values.js:
* test262/test/language/expressions/multiplication/bigint-and-number.js:
* test262/test/language/expressions/multiplication/bigint-arithmetic.js:
* test262/test/language/expressions/multiplication/bigint-errors.js:
* test262/test/language/expressions/multiplication/bigint-toprimitive.js:
* test262/test/language/expressions/multiplication/bigint-wrapped-values.js:
* test262/test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js: Added.
(obj.async method):
* test262/test/language/expressions/object/method-definition/async-meth-eval-var-scope-syntax-err.js: Added.
(obj.async method):
(SyntaxError.then):
* test262/test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js: Added.
(obj.method.a.eval):
* test262/test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js: Added.
(obj.method.a.eval):
* test262/test/language/expressions/object/scope-gen-meth-param-elem-var-close.js:
* test262/test/language/expressions/object/scope-gen-meth-param-elem-var-open.js:
* test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js:
* test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js:
* test262/test/language/expressions/object/scope-meth-param-elem-var-close.js:
* test262/test/language/expressions/object/scope-meth-param-elem-var-open.js:
* test262/test/language/expressions/object/scope-meth-param-rest-elem-var-close.js:
* test262/test/language/expressions/object/scope-meth-param-rest-elem-var-open.js:
* test262/test/language/expressions/optional-chaining/iteration-statement-do.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for-await-of.js: Added.
(const.obj.iterable.Symbol.asyncIterator):
(async checkAssertions):
* test262/test/language/expressions/optional-chaining/iteration-statement-for-in.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for-of-type-error.js: Added.
* test262/test/language/expressions/optional-chaining/iteration-statement-for.js: Added.
(const.obj3.get a):
* test262/test/language/expressions/optional-chaining/iteration-statement-while.js: Added.
* test262/test/language/expressions/optional-chaining/new-target-optional-call.js: Added.
(const.newTargetContext):
(Base):
(Foo):
* test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js: Added.
(const.a.b):
* test262/test/language/expressions/optional-chaining/super-property-optional-call.js: Added.
(Base.prototype.method):
(Base):
(Foo.prototype.method):
(Foo):
* test262/test/language/expressions/right-shift/bigint-and-number.js:
* test262/test/language/expressions/right-shift/bigint-errors.js:
* test262/test/language/expressions/right-shift/bigint-non-primitive.js:
* test262/test/language/expressions/right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/right-shift/bigint-wrapped-values.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js:
* test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js:
* test262/test/language/expressions/strict-equals/bigint-and-bigint.js:
* test262/test/language/expressions/strict-equals/bigint-and-boolean.js:
* test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js:
* test262/test/language/expressions/strict-equals/bigint-and-non-finite.js:
* test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js:
* test262/test/language/expressions/strict-equals/bigint-and-number.js:
* test262/test/language/expressions/strict-equals/bigint-and-object.js:
* test262/test/language/expressions/strict-equals/bigint-and-string.js:
* test262/test/language/expressions/subtraction/bigint-and-number.js:
* test262/test/language/expressions/subtraction/bigint-arithmetic.js:
* test262/test/language/expressions/subtraction/bigint-errors.js:
* test262/test/language/expressions/subtraction/bigint-toprimitive.js:
* test262/test/language/expressions/subtraction/bigint-wrapped-values.js:
* test262/test/language/expressions/typeof/proxy.js: Added.
(assert.sameValue.typeof.new.Proxy):
(const.rp2.Proxy.revocable):
* test262/test/language/expressions/unary-minus/bigint-non-primitive.js:
* test262/test/language/expressions/unary-plus/bigint-throws.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-errors.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js:
* test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js:
* test262/test/language/function-code/eval-param-env-with-computed-key.js:
* test262/test/language/function-code/eval-param-env-with-prop-initializer.js:
* test262/test/language/statements/async-function/eval-var-scope-syntax-err.js: Added.
(async f):
(SyntaxError.then):
* test262/test/language/statements/async-generator/eval-var-scope-syntax-err.js: Added.
(async f):
* test262/test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
(C.async method):
(C):
* test262/test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.async method):
(C):
* test262/test/language/statements/class/async-method-static/eval-var-scope-syntax-err.js: Added.
(C.async method):
(C):
(SyntaxError.then):
* test262/test/language/statements/class/async-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.async method):
(C):
(SyntaxError.then):
* test262/test/language/statements/class/definition/constructable-but-no-prototype.js:
* test262/test/language/statements/class/definition/constructor-strict-by-default.js:
* test262/test/language/statements/class/definition/getters-restricted-ids.js:
* test262/test/language/statements/class/definition/implicit-constructor.js:
* test262/test/language/statements/class/definition/invalid-extends.js:
* test262/test/language/statements/class/definition/methods-named-eval-arguments.js:
* test262/test/language/statements/class/definition/prototype-getter.js:
* test262/test/language/statements/class/definition/prototype-property.js:
* test262/test/language/statements/class/definition/setters-restricted-ids.js:
* test262/test/language/statements/class/definition/side-effects-in-extends.js:
* test262/test/language/statements/class/definition/side-effects-in-property-define.js:
* test262/test/language/statements/class/definition/this-access-restriction-2.js:
* test262/test/language/statements/class/definition/this-access-restriction.js:
* test262/test/language/statements/class/definition/this-check-ordering.js:
* test262/test/language/statements/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
(C.prototype.access):
(C):
* test262/test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
(C.method):
(C):
* test262/test/language/statements/class/gen-method/eval-var-scope-syntax-err.js: Added.
(C.prototype.method):
(C):
* test262/test/language/statements/class/method-static/eval-var-scope-syntax-err.js: Added.
(C.method):
(C):
* test262/test/language/statements/class/method/eval-var-scope-syntax-err.js: Added.
(C.prototype.method):
(C):
* test262/test/language/statements/class/name-binding/basic.js:
* test262/test/language/statements/class/subclass/binding.js:
* test262/test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js:
* test262/test/language/statements/class/subclass/builtin-objects/String/length.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js:
* test262/test/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js:
* test262/test/language/statements/class/subclass/builtins.js:
* test262/test/language/statements/class/subclass/default-constructor-spread-override.js:
* test262/test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js:
* test262/test/language/statements/for-in/order-enumerable-shadowed.js: Added.
* test262/test/language/statements/for-in/order-property-added.js: Added.
* test262/test/language/statements/for-in/order-property-on-prototype.js: Added.
* test262/test/language/statements/for-in/order-simple-object.js: Added.
* test262/test/language/statements/function/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/statements/function/scope-param-elem-var-close.js:
* test262/test/language/statements/function/scope-param-elem-var-open.js:
* test262/test/language/statements/function/scope-param-rest-elem-var-close.js:
* test262/test/language/statements/function/scope-param-rest-elem-var-open.js:
* test262/test/language/statements/generators/eval-var-scope-syntax-err.js: Added.
(f):
* test262/test/language/statements/generators/scope-param-elem-var-close.js:
* test262/test/language/statements/generators/scope-param-elem-var-open.js:
* test262/test/language/statements/generators/scope-param-rest-elem-var-close.js:
* test262/test/language/statements/generators/scope-param-rest-elem-var-open.js:
* test262/test262-Revision.txt:

Tools:

Using --save and --latest-import should update expectations rather than overwrite.

* Scripts/test262/Runner.pm:
(main):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254017 268f45cc-cd09-0410-ab3c-d52691b4dbfc

444 files changed:
JSTests/ChangeLog
JSTests/test262/expectations.yaml
JSTests/test262/harness/deepEqual.js
JSTests/test262/latest-changes-summary.txt
JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/length.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/message-method-prop-cast.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/message-method-prop.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/message-undefined-no-prop.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/name.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/newtarget-proto-custom.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/newtarget-proto-fallback.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/newtarget-proto.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/proto.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/constructor.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/length.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/name.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/message.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/name.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/built-ins/AggregateError/prototype/proto.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Array/prototype/flatMap/this-value-ctor-object-species-bad-throws.js
JSTests/test262/test/built-ins/Atomics/add/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/and/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/or/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/store/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js
JSTests/test262/test/built-ins/Error/prototype/toString/invalid-receiver.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Error/prototype/toString/undefined-props.js [new file with mode: 0644]
JSTests/test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js
JSTests/test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js [new file with mode: 0644]
JSTests/test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js
JSTests/test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js
JSTests/test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js
JSTests/test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js [new file with mode: 0644]
JSTests/test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js
JSTests/test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-call-order.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/parse/reviver-wrapper.js [new file with mode: 0644]
JSTests/test262/test/built-ins/JSON/stringify/property-order.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/entries/return-order.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/freeze/throws-when-false.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/length.js
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/name.js
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-with-description.js
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-without-description.js
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-duplicate-string-entry.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js
JSTests/test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/keys/return-order.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/preventExtensions/throws-when-false.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/builtin.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/length.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/name.js
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-object-arg-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-primitive-arg-returns-false.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/this-value-is-in-prototype-chain-of-arg.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-object-arg-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-primitive-arg-returns-false.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/seal/throws-when-false.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Object/values/return-order.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Proxy/has/call-in-prototype-index.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Proxy/has/call-in-prototype.js
JSTests/test262/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js
JSTests/test262/test/built-ins/Proxy/set/call-parameters-prototype-index.js [new file with mode: 0644]
JSTests/test262/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-element.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-matched.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-properties.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-array.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-groups-object.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js
JSTests/test262/test/built-ins/RegExp/match-indices/indices-property.js
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0024.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0026.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0027.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x003C.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0060.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024N.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024NN.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/length.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/name.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceAll.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-each-match-position.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-matching-empty.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-skip-no-match.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-tostring-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-fn-skip-toString.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-tostring-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-replaces-string.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-tostring.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string-this-empty-string.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-no-g-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-null-undefined-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-toString-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-get-flags-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-isRegExp-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replace-method-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call-fn.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-before-tostring.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-regexp.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/this-is-null-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/this-is-undefined-throws.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/this-tostring-abrupt.js [new file with mode: 0644]
JSTests/test262/test/built-ins/String/prototype/replaceAll/this-tostring.js [new file with mode: 0644]
JSTests/test262/test/built-ins/TypedArray/from/mapfn-is-not-callable.js
JSTests/test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length-throws.js
JSTests/test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length.js
JSTests/test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js
JSTests/test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js
JSTests/test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js
JSTests/test262/test/built-ins/TypedArrayConstructors/from/new-instance-from-zero.js
JSTests/test262/test/built-ins/TypedArrayConstructors/of/BigInt/inherited.js
JSTests/test262/test/built-ins/TypedArrayConstructors/of/inherited.js
JSTests/test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js
JSTests/test262/test/harness/deepEqual-array.js
JSTests/test262/test/harness/deepEqual-circular.js
JSTests/test262/test/harness/deepEqual-deep.js
JSTests/test262/test/harness/deepEqual-mapset.js
JSTests/test262/test/harness/deepEqual-object.js
JSTests/test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-dateStyle.js [new file with mode: 0644]
JSTests/test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js [new file with mode: 0644]
JSTests/test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js [new file with mode: 0644]
JSTests/test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js
JSTests/test262/test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/ctor-custom-prototype.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/ctor-default-prototype.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/instance-extensible.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/length.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/locales-invalid-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/locales-length-poison-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/locales-length-tolength-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/locales-symbol-length.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/name.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-fallback-valid.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-localeMatcher-valid.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-null-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-random-properties-unchecked.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-style-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-style-invalid-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-style-toString-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-style-valid.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-type-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-type-invalid-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-type-toString-abrupt-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/options-type-valid.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/proto-from-ctor-realm.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/proto.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/Symbol.toStringTag.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/length.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/name.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js [new file with mode: 0644]
JSTests/test262/test/intl402/DisplayNames/undefined-newtarget-throws.js [new file with mode: 0644]
JSTests/test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js
JSTests/test262/test/language/expressions/addition/bigint-and-number.js
JSTests/test262/test/language/expressions/addition/bigint-arithmetic.js
JSTests/test262/test/language/expressions/addition/bigint-errors.js
JSTests/test262/test/language/expressions/addition/bigint-toprimitive.js
JSTests/test262/test/language/expressions/addition/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/arrow-function/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/arrow-function/scope-param-elem-var-close.js
JSTests/test262/test/language/expressions/arrow-function/scope-param-elem-var-open.js
JSTests/test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js
JSTests/test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js
JSTests/test262/test/language/expressions/async-arrow-function/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/async-function/named-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/async-function/nameless-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/async-generator/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/bitwise-and/bigint-and-number.js
JSTests/test262/test/language/expressions/bitwise-and/bigint-errors.js
JSTests/test262/test/language/expressions/bitwise-and/bigint-non-primitive.js
JSTests/test262/test/language/expressions/bitwise-and/bigint-toprimitive.js
JSTests/test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/bitwise-not/bigint-non-primitive.js
JSTests/test262/test/language/expressions/bitwise-or/bigint-and-number.js
JSTests/test262/test/language/expressions/bitwise-or/bigint-errors.js
JSTests/test262/test/language/expressions/bitwise-or/bigint-non-primitive.js
JSTests/test262/test/language/expressions/bitwise-or/bigint-toprimitive.js
JSTests/test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/bitwise-xor/bigint-and-number.js
JSTests/test262/test/language/expressions/bitwise-xor/bigint-errors.js
JSTests/test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js
JSTests/test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js
JSTests/test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/async-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/async-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/class/method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js
JSTests/test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js
JSTests/test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js
JSTests/test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js
JSTests/test262/test/language/expressions/delete/super-property.js
JSTests/test262/test/language/expressions/division/bigint-and-number.js
JSTests/test262/test/language/expressions/division/bigint-arithmetic.js
JSTests/test262/test/language/expressions/division/bigint-complex-infinity.js
JSTests/test262/test/language/expressions/division/bigint-errors.js
JSTests/test262/test/language/expressions/division/bigint-toprimitive.js
JSTests/test262/test/language/expressions/division/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-bigint.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-boolean.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-number.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-object.js
JSTests/test262/test/language/expressions/does-not-equals/bigint-and-string.js
JSTests/test262/test/language/expressions/equals/bigint-and-bigint.js
JSTests/test262/test/language/expressions/equals/bigint-and-boolean.js
JSTests/test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js
JSTests/test262/test/language/expressions/equals/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/equals/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/equals/bigint-and-number.js
JSTests/test262/test/language/expressions/equals/bigint-and-object.js
JSTests/test262/test/language/expressions/equals/bigint-and-string.js
JSTests/test262/test/language/expressions/exponentiation/bigint-and-number.js
JSTests/test262/test/language/expressions/exponentiation/bigint-arithmetic.js
JSTests/test262/test/language/expressions/exponentiation/bigint-errors.js
JSTests/test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js
JSTests/test262/test/language/expressions/exponentiation/bigint-toprimitive.js
JSTests/test262/test/language/expressions/exponentiation/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js
JSTests/test262/test/language/expressions/function/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/function/scope-param-elem-var-close.js
JSTests/test262/test/language/expressions/function/scope-param-elem-var-open.js
JSTests/test262/test/language/expressions/function/scope-param-rest-elem-var-close.js
JSTests/test262/test/language/expressions/function/scope-param-rest-elem-var-open.js
JSTests/test262/test/language/expressions/generators/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/generators/scope-param-elem-var-close.js
JSTests/test262/test/language/expressions/generators/scope-param-elem-var-open.js
JSTests/test262/test/language/expressions/generators/scope-param-rest-elem-var-close.js
JSTests/test262/test/language/expressions/generators/scope-param-rest-elem-var-open.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js
JSTests/test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-bigint.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-boolean.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-number.js
JSTests/test262/test/language/expressions/greater-than/bigint-and-symbol.js
JSTests/test262/test/language/expressions/left-shift/bigint-and-number.js
JSTests/test262/test/language/expressions/left-shift/bigint-errors.js
JSTests/test262/test/language/expressions/left-shift/bigint-non-primitive.js
JSTests/test262/test/language/expressions/left-shift/bigint-toprimitive.js
JSTests/test262/test/language/expressions/left-shift/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-number.js
JSTests/test262/test/language/expressions/less-than-or-equal/bigint-and-string.js
JSTests/test262/test/language/expressions/less-than/bigint-and-bigint.js
JSTests/test262/test/language/expressions/less-than/bigint-and-boolean.js
JSTests/test262/test/language/expressions/less-than/bigint-and-incomparable-string.js
JSTests/test262/test/language/expressions/less-than/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/less-than/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/less-than/bigint-and-number.js
JSTests/test262/test/language/expressions/modulus/bigint-and-number.js
JSTests/test262/test/language/expressions/modulus/bigint-arithmetic.js
JSTests/test262/test/language/expressions/modulus/bigint-errors.js
JSTests/test262/test/language/expressions/modulus/bigint-modulo-zero.js
JSTests/test262/test/language/expressions/modulus/bigint-toprimitive.js
JSTests/test262/test/language/expressions/modulus/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/multiplication/bigint-and-number.js
JSTests/test262/test/language/expressions/multiplication/bigint-arithmetic.js
JSTests/test262/test/language/expressions/multiplication/bigint-errors.js
JSTests/test262/test/language/expressions/multiplication/bigint-toprimitive.js
JSTests/test262/test/language/expressions/multiplication/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/object/method-definition/async-meth-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/object/scope-gen-meth-param-elem-var-close.js
JSTests/test262/test/language/expressions/object/scope-gen-meth-param-elem-var-open.js
JSTests/test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js
JSTests/test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js
JSTests/test262/test/language/expressions/object/scope-meth-param-elem-var-close.js
JSTests/test262/test/language/expressions/object/scope-meth-param-elem-var-open.js
JSTests/test262/test/language/expressions/object/scope-meth-param-rest-elem-var-close.js
JSTests/test262/test/language/expressions/object/scope-meth-param-rest-elem-var-open.js
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-do.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-for-await-of.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-for-in.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-for-of-type-error.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-for.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/iteration-statement-while.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/new-target-optional-call.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/optional-chaining/super-property-optional-call.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/right-shift/bigint-and-number.js
JSTests/test262/test/language/expressions/right-shift/bigint-errors.js
JSTests/test262/test/language/expressions/right-shift/bigint-non-primitive.js
JSTests/test262/test/language/expressions/right-shift/bigint-toprimitive.js
JSTests/test262/test/language/expressions/right-shift/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js
JSTests/test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-bigint.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-boolean.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-non-finite.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-number.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-object.js
JSTests/test262/test/language/expressions/strict-equals/bigint-and-string.js
JSTests/test262/test/language/expressions/subtraction/bigint-and-number.js
JSTests/test262/test/language/expressions/subtraction/bigint-arithmetic.js
JSTests/test262/test/language/expressions/subtraction/bigint-errors.js
JSTests/test262/test/language/expressions/subtraction/bigint-toprimitive.js
JSTests/test262/test/language/expressions/subtraction/bigint-wrapped-values.js
JSTests/test262/test/language/expressions/typeof/proxy.js [new file with mode: 0644]
JSTests/test262/test/language/expressions/unary-minus/bigint-non-primitive.js
JSTests/test262/test/language/expressions/unary-plus/bigint-throws.js
JSTests/test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js
JSTests/test262/test/language/expressions/unsigned-right-shift/bigint-errors.js
JSTests/test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js
JSTests/test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js
JSTests/test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js
JSTests/test262/test/language/function-code/eval-param-env-with-computed-key.js
JSTests/test262/test/language/function-code/eval-param-env-with-prop-initializer.js
JSTests/test262/test/language/statements/async-function/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/async-generator/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/async-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/async-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/definition/constructable-but-no-prototype.js
JSTests/test262/test/language/statements/class/definition/constructor-strict-by-default.js
JSTests/test262/test/language/statements/class/definition/getters-restricted-ids.js
JSTests/test262/test/language/statements/class/definition/implicit-constructor.js
JSTests/test262/test/language/statements/class/definition/invalid-extends.js
JSTests/test262/test/language/statements/class/definition/methods-named-eval-arguments.js
JSTests/test262/test/language/statements/class/definition/prototype-getter.js
JSTests/test262/test/language/statements/class/definition/prototype-property.js
JSTests/test262/test/language/statements/class/definition/setters-restricted-ids.js
JSTests/test262/test/language/statements/class/definition/side-effects-in-extends.js
JSTests/test262/test/language/statements/class/definition/side-effects-in-property-define.js
JSTests/test262/test/language/statements/class/definition/this-access-restriction-2.js
JSTests/test262/test/language/statements/class/definition/this-access-restriction.js
JSTests/test262/test/language/statements/class/definition/this-check-ordering.js
JSTests/test262/test/language/statements/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/gen-method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/method-static/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/method/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/class/name-binding/basic.js
JSTests/test262/test/language/statements/class/subclass/binding.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/String/length.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js
JSTests/test262/test/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js
JSTests/test262/test/language/statements/class/subclass/builtins.js
JSTests/test262/test/language/statements/class/subclass/default-constructor-spread-override.js
JSTests/test262/test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js
JSTests/test262/test/language/statements/for-in/order-enumerable-shadowed.js [new file with mode: 0644]
JSTests/test262/test/language/statements/for-in/order-property-added.js [new file with mode: 0644]
JSTests/test262/test/language/statements/for-in/order-property-on-prototype.js [new file with mode: 0644]
JSTests/test262/test/language/statements/for-in/order-simple-object.js [new file with mode: 0644]
JSTests/test262/test/language/statements/function/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/function/scope-param-elem-var-close.js
JSTests/test262/test/language/statements/function/scope-param-elem-var-open.js
JSTests/test262/test/language/statements/function/scope-param-rest-elem-var-close.js
JSTests/test262/test/language/statements/function/scope-param-rest-elem-var-open.js
JSTests/test262/test/language/statements/generators/eval-var-scope-syntax-err.js [new file with mode: 0644]
JSTests/test262/test/language/statements/generators/scope-param-elem-var-close.js
JSTests/test262/test/language/statements/generators/scope-param-elem-var-open.js
JSTests/test262/test/language/statements/generators/scope-param-rest-elem-var-close.js
JSTests/test262/test/language/statements/generators/scope-param-rest-elem-var-open.js
JSTests/test262/test262-Revision.txt
Tools/ChangeLog
Tools/Scripts/test262/Runner.pm

index 984a397..e068ddb 100644 (file)
@@ -1,3 +1,704 @@
+2020-01-03  Keith Miller  <keith_miller@apple.com>
+
+        Update test262 tests to commit 157b18d
+        https://bugs.webkit.org/show_bug.cgi?id=205741
+
+        Reviewed by Yusuke Suzuki.
+
+        * test262/expectations.yaml:
+        * test262/harness/deepEqual.js:
+        (assert.deepEqual):
+        (assert.deepEqual.format):
+        (deepEqual):
+        (compareEquality):
+        (compareIf):
+        (tryCompareStrictEquality):
+        (tryCompareTypeOfEquality):
+        (tryCompareToStringTagEquality):
+        (isOptional):
+        (compareOptionality):
+        (isPrimitiveEquatable):
+        (comparePrimitiveEquality):
+        (isNaNEquatable):
+        (compareNaNEquality):
+        (isObjectEquatable):
+        (compareObjectEquality):
+        (isBoxed):
+        (isValueOfEquatable):
+        (compareValueOfEquality):
+        (isToStringEquatable):
+        (compareToStringEquality):
+        (isArrayLikeEquatable):
+        (isStructurallyEquatable):
+        (isIterableEquatable):
+        (compareIteratorEquality):
+        (compareIterableEquality):
+        (cacheComparison):
+        (fail):
+        (setCache):
+        (getCache):
+        (assert.deepEqual._compare):
+        * test262/latest-changes-summary.txt:
+        * test262/test/built-ins/AggregateError: Added.
+        * test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js: Added.
+        (case1.get Symbol):
+        (case2.get Symbol):
+        (case3.Symbol.iterator):
+        (case4.Symbol.iterator):
+        (case5.Symbol.iterator):
+        (case6.Symbol.iterator.return.get next):
+        (case6.Symbol.iterator):
+        (case7.Symbol.iterator.return.get next):
+        (case7.Symbol.iterator):
+        (case8.Symbol.iterator):
+        (case9.Symbol.iterator):
+        (case10.Symbol.iterator):
+        (case11.Symbol.iterator.return.next.return.get done):
+        (case11.Symbol.iterator):
+        * test262/test/built-ins/AggregateError/errors-iterabletolist.js: Added.
+        (case1.Symbol.iterator.return.next.return.get value):
+        (case1.Symbol.iterator):
+        * test262/test/built-ins/AggregateError/length.js: Added.
+        * test262/test/built-ins/AggregateError/message-method-prop-cast.js: Added.
+        (toString):
+        * test262/test/built-ins/AggregateError/message-method-prop.js: Added.
+        * test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js: Added.
+        (case2.Symbol.toPrimitive):
+        (case2.toString):
+        (case2.valueOf):
+        * test262/test/built-ins/AggregateError/message-tostring-abrupt.js: Added.
+        (case1.Symbol.toPrimitive):
+        (case1.toString):
+        (case1.valueOf):
+        (case2.toString):
+        (case2.valueOf):
+        (case3.valueOf):
+        * test262/test/built-ins/AggregateError/message-undefined-no-prop.js: Added.
+        * test262/test/built-ins/AggregateError/name.js: Added.
+        * test262/test/built-ins/AggregateError/newtarget-proto-custom.js: Added.
+        (newt.new.Proxy):
+        (newt.new.Proxy.get if):
+        * test262/test/built-ins/AggregateError/newtarget-proto-fallback.js: Added.
+        (ctor):
+        (const.value.of.values.get t):
+        * test262/test/built-ins/AggregateError/newtarget-proto.js: Added.
+        * test262/test/built-ins/AggregateError/prop-desc.js: Added.
+        * test262/test/built-ins/AggregateError/proto.js: Added.
+        * test262/test/built-ins/AggregateError/prototype: Added.
+        * test262/test/built-ins/AggregateError/prototype/constructor.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/length.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/name.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js: Added.
+        (errors.Symbol.iterator.return.next.return.get value):
+        (errors.Symbol.iterator):
+        * test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/message.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/name.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/prop-desc.js: Added.
+        * test262/test/built-ins/AggregateError/prototype/proto.js: Added.
+        * test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js: Added.
+        (longDenseArray):
+        (shorten):
+        * test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js: Added.
+        (longDenseArray):
+        (shorten):
+        * test262/test/built-ins/Array/prototype/flatMap/this-value-ctor-object-species-bad-throws.js:
+        * test262/test/built-ins/Atomics/add/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/and/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/or/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/store/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Atomics/sub/bigint/nonshared-int-views.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/Error/prototype/toString/invalid-receiver.js: Added.
+        (Symbol.forEach):
+        * test262/test/built-ins/Error/prototype/toString/undefined-props.js: Added.
+        * test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js:
+        (emptyCells):
+        (emptyCells.then):
+        * test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js: Added.
+        (fg.new.FinalizationGroup):
+        (callback):
+        (emptyCells):
+        (emptyCells.then):
+        * test262/test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js:
+        * test262/test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js:
+        * test262/test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js:
+        * test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js: Added.
+        (fg.new.FinalizationGroup):
+        (emptyCells):
+        (emptyCells.then):
+        * test262/test/built-ins/FinalizationGroup/target-not-callable-throws.js:
+        * test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-call-order.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js: Added.
+        * test262/test/built-ins/JSON/parse/reviver-wrapper.js: Added.
+        * test262/test/built-ins/JSON/stringify/property-order.js: Added.
+        * test262/test/built-ins/Object/entries/return-order.js: Added.
+        * test262/test/built-ins/Object/freeze/throws-when-false.js: Added.
+        (preventExtensions):
+        * test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertySymbols/length.js:
+        * test262/test/built-ins/Object/getOwnPropertySymbols/name.js:
+        * test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-with-description.js:
+        * test262/test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-without-description.js:
+        * test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-duplicate-string-entry.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js:
+        * test262/test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js: Added.
+        (ownKeys):
+        * test262/test/built-ins/Object/keys/return-order.js: Added.
+        * test262/test/built-ins/Object/preventExtensions/throws-when-false.js: Added.
+        (preventExtensions):
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js: Added.
+        (handler.allowProxyTraps.getPrototypeOf):
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/builtin.js: Added.
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/length.js: Added.
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/name.js:
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-object-arg-throws.js: Added.
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/null-this-and-primitive-arg-returns-false.js: Added.
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/this-value-is-in-prototype-chain-of-arg.js: Added.
+        (USER_FACTORY.this.getName):
+        (USER_FACTORY):
+        (this.getGrade):
+        (FORCEDUSER_FACTORY):
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-object-arg-throws.js: Added.
+        * test262/test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-primitive-arg-returns-false.js: Added.
+        * test262/test/built-ins/Object/seal/throws-when-false.js: Added.
+        (preventExtensions):
+        * test262/test/built-ins/Object/values/return-order.js: Added.
+        * test262/test/built-ins/Proxy/has/call-in-prototype-index.js: Added.
+        (handler.allowProxyTraps.has):
+        * test262/test/built-ins/Proxy/has/call-in-prototype.js:
+        * test262/test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js:
+        (handler.ownKeys):
+        * test262/test/built-ins/Proxy/set/call-parameters-prototype-index.js: Added.
+        * test262/test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-element.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-matched.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-properties.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-unicode-match.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array-unmatched.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-array.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-groups-object.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-groups-properties.js:
+        * test262/test/built-ins/RegExp/match-indices/indices-property.js:
+        * test262/test/built-ins/String/prototype/replaceAll: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0024.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0026.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0027.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x003C.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0060.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024N.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024NN.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/length.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/name.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/replaceAll.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-abrupt.js: Added.
+        (custom):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-each-match-position.js: Added.
+        (t):
+        (replaceValue):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-matching-empty.js: Added.
+        (t):
+        (replaceValue):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-skip-no-match.js: Added.
+        (replaceValue):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-call-tostring-abrupt.js: Added.
+        (custom):
+        (symbol):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-fn-skip-toString.js: Added.
+        (replaceValue):
+        (value):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-tostring-abrupt.js: Added.
+        (thisValue.toString):
+        (searchValue.toString):
+        (replaceValue.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-replaces-string.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/replaceValue-value-tostring.js: Added.
+        (replaceValue.Symbol.toPrimitive):
+        (replaceValue.toString):
+        (replaceValue.valueOf):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string-this-empty-string.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-empty-string.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-no-g-throws.js: Added.
+        (poison.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-null-undefined-throws.js: Added.
+        (poison.toString):
+        (searchValue.get flags):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-flags-toString-abrupt.js: Added.
+        (poison.toString):
+        (searchValue.toString):
+        (searchValue.flags.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-get-flags-abrupt.js: Added.
+        (searchValue.get flags):
+        (poison.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-isRegExp-abrupt.js: Added.
+        (searchValue.get Symbol):
+        (searchValue.toString):
+        (poison.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replace-method-abrupt.js: Added.
+        (poison.toString):
+        (searchValue.get Symbol):
+        (searchValue.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call-fn.js: Added.
+        (RE.prototype.Symbol.replace):
+        (RE.prototype.toString):
+        (RE):
+        (const.t):
+        (getFn.return.replaceValueFn):
+        (getFn):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js: Added.
+        (RE.prototype.Symbol.replace):
+        (RE.prototype.toString):
+        (RE):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-before-tostring.js: Added.
+        (value):
+        (poison.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call-abrupt.js: Added.
+        (poison.toString):
+        (searchValue.Symbol.replace):
+        (searchValue.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-replacer-call.js: Added.
+        (value):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-abrupt.js: Added.
+        (poison.toString):
+        (thisValue.toString):
+        (searchValue.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/searchValue-tostring-regexp.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/this-is-null-throws.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/this-is-undefined-throws.js: Added.
+        * test262/test/built-ins/String/prototype/replaceAll/this-tostring-abrupt.js: Added.
+        (poison.toString):
+        (thisValue.toString):
+        (searchValue.toString):
+        * test262/test/built-ins/String/prototype/replaceAll/this-tostring.js: Added.
+        (thisValue.Symbol.toPrimitive):
+        (thisValue.toString):
+        (thisValue.valueOf):
+        * test262/test/built-ins/TypedArray/from/mapfn-is-not-callable.js:
+        * test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length-throws.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js:
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js:
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArrayConstructors/from/nan-conversion.js:
+        * test262/test/built-ins/TypedArrayConstructors/from/new-instance-from-zero.js:
+        * test262/test/built-ins/TypedArrayConstructors/of/BigInt/inherited.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArrayConstructors/of/inherited.js:
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js:
+        * test262/test/harness/deepEqual-array.js:
+        * test262/test/harness/deepEqual-circular.js:
+        * test262/test/harness/deepEqual-deep.js:
+        * test262/test/harness/deepEqual-mapset.js:
+        * test262/test/harness/deepEqual-object.js:
+        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-dateStyle.js: Added.
+        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js: Added.
+        (locales.forEach):
+        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js: Added.
+        * test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js:
+        * test262/test/intl402/DisplayNames: Added.
+        * test262/test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js: Added.
+        (custom.new.Proxy.new.Function.get if):
+        (custom.new.Proxy.new.Function):
+        * test262/test/intl402/DisplayNames/ctor-custom-prototype.js: Added.
+        * test262/test/intl402/DisplayNames/ctor-default-prototype.js: Added.
+        * test262/test/intl402/DisplayNames/instance-extensible.js: Added.
+        * test262/test/intl402/DisplayNames/length.js: Added.
+        * test262/test/intl402/DisplayNames/locales-invalid-throws.js: Added.
+        * test262/test/intl402/DisplayNames/locales-length-poison-throws.js: Added.
+        * test262/test/intl402/DisplayNames/locales-length-tolength-throws.js: Added.
+        (locales.length.valueOf):
+        (locales.length.Symbol.toPrimitive):
+        (locales.length.toString):
+        * test262/test/intl402/DisplayNames/locales-symbol-length.js: Added.
+        * test262/test/intl402/DisplayNames/name.js: Added.
+        * test262/test/intl402/DisplayNames/options-fallback-abrupt-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-fallback-invalid-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js: Added.
+        (options.fallback.toString):
+        (options.fallback.valueOf):
+        (options.fallback.Symbol.toPrimitive):
+        * test262/test/intl402/DisplayNames/options-fallback-valid.js: Added.
+        * test262/test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js: Added.
+        (options.localeMatcher.toString):
+        (options.localeMatcher.valueOf):
+        (options.localeMatcher.Symbol.toPrimitive):
+        * test262/test/intl402/DisplayNames/options-localeMatcher-valid.js: Added.
+        * test262/test/intl402/DisplayNames/options-null-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-random-properties-unchecked.js: Added.
+        * test262/test/intl402/DisplayNames/options-style-abrupt-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-style-invalid-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-style-toString-abrupt-throws.js: Added.
+        (options.style.toString):
+        (options.style.valueOf):
+        (options.style.Symbol.toPrimitive):
+        * test262/test/intl402/DisplayNames/options-style-valid.js: Added.
+        * test262/test/intl402/DisplayNames/options-type-abrupt-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-type-invalid-throws.js: Added.
+        * test262/test/intl402/DisplayNames/options-type-toString-abrupt-throws.js: Added.
+        (options.type.toString):
+        (options.type.valueOf):
+        (options.type.Symbol.toPrimitive):
+        * test262/test/intl402/DisplayNames/options-type-valid.js: Added.
+        * test262/test/intl402/DisplayNames/prop-desc.js: Added.
+        * test262/test/intl402/DisplayNames/proto-from-ctor-realm.js: Added.
+        * test262/test/intl402/DisplayNames/proto.js: Added.
+        * test262/test/intl402/DisplayNames/prototype: Added.
+        * test262/test/intl402/DisplayNames/prototype/Symbol.toStringTag.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/prop-desc.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/length.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/name.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js: Added.
+        * test262/test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js: Added.
+        * test262/test/intl402/DisplayNames/undefined-newtarget-throws.js: Added.
+        * test262/test/language/destructuring/binding/syntax/property-list-single-name-bindings.js:
+        * test262/test/language/expressions/addition/bigint-and-number.js:
+        * test262/test/language/expressions/addition/bigint-arithmetic.js:
+        * test262/test/language/expressions/addition/bigint-errors.js:
+        * test262/test/language/expressions/addition/bigint-toprimitive.js:
+        * test262/test/language/expressions/addition/bigint-wrapped-values.js:
+        * test262/test/language/expressions/arrow-function/eval-var-scope-syntax-err.js: Added.
+        (f.a.eval):
+        * test262/test/language/expressions/arrow-function/scope-param-elem-var-close.js:
+        * test262/test/language/expressions/arrow-function/scope-param-elem-var-open.js:
+        * test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js:
+        * test262/test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js:
+        * test262/test/language/expressions/async-arrow-function/eval-var-scope-syntax-err.js: Added.
+        (f.async a):
+        (SyntaxError.then):
+        * test262/test/language/expressions/async-function/named-eval-var-scope-syntax-err.js: Added.
+        (f.async f):
+        (f):
+        * test262/test/language/expressions/async-function/nameless-eval-var-scope-syntax-err.js: Added.
+        * test262/test/language/expressions/async-generator/eval-var-scope-syntax-err.js: Added.
+        * test262/test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js: Added.
+        (f.async g):
+        (f):
+        * test262/test/language/expressions/bitwise-and/bigint-and-number.js:
+        * test262/test/language/expressions/bitwise-and/bigint-errors.js:
+        * test262/test/language/expressions/bitwise-and/bigint-non-primitive.js:
+        * test262/test/language/expressions/bitwise-and/bigint-toprimitive.js:
+        * test262/test/language/expressions/bitwise-and/bigint-wrapped-values.js:
+        * test262/test/language/expressions/bitwise-not/bigint-non-primitive.js:
+        * test262/test/language/expressions/bitwise-or/bigint-and-number.js:
+        * test262/test/language/expressions/bitwise-or/bigint-errors.js:
+        * test262/test/language/expressions/bitwise-or/bigint-non-primitive.js:
+        * test262/test/language/expressions/bitwise-or/bigint-toprimitive.js:
+        * test262/test/language/expressions/bitwise-or/bigint-wrapped-values.js:
+        * test262/test/language/expressions/bitwise-xor/bigint-and-number.js:
+        * test262/test/language/expressions/bitwise-xor/bigint-errors.js:
+        * test262/test/language/expressions/bitwise-xor/bigint-non-primitive.js:
+        * test262/test/language/expressions/bitwise-xor/bigint-toprimitive.js:
+        * test262/test/language/expressions/bitwise-xor/bigint-wrapped-values.js:
+        * test262/test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/class/async-method-static/eval-var-scope-syntax-err.js: Added.
+        (C):
+        (then):
+        * test262/test/language/expressions/class/async-method/eval-var-scope-syntax-err.js: Added.
+        (C):
+        (SyntaxError.then):
+        * test262/test/language/expressions/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
+        (C.prototype.access):
+        * test262/test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/class/method-static/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/class/method/eval-var-scope-syntax-err.js: Added.
+        (C):
+        * test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js:
+        * test262/test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js:
+        * test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js:
+        * test262/test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js:
+        * test262/test/language/expressions/delete/super-property.js:
+        (C):
+        * test262/test/language/expressions/division/bigint-and-number.js:
+        * test262/test/language/expressions/division/bigint-arithmetic.js:
+        * test262/test/language/expressions/division/bigint-complex-infinity.js:
+        * test262/test/language/expressions/division/bigint-errors.js:
+        * test262/test/language/expressions/division/bigint-toprimitive.js:
+        * test262/test/language/expressions/division/bigint-wrapped-values.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-bigint.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-boolean.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-non-finite.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-number.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-object.js:
+        * test262/test/language/expressions/does-not-equals/bigint-and-string.js:
+        * test262/test/language/expressions/equals/bigint-and-bigint.js:
+        * test262/test/language/expressions/equals/bigint-and-boolean.js:
+        * test262/test/language/expressions/equals/bigint-and-incomparable-primitive.js:
+        * test262/test/language/expressions/equals/bigint-and-non-finite.js:
+        * test262/test/language/expressions/equals/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/equals/bigint-and-number.js:
+        * test262/test/language/expressions/equals/bigint-and-object.js:
+        * test262/test/language/expressions/equals/bigint-and-string.js:
+        * test262/test/language/expressions/exponentiation/bigint-and-number.js:
+        * test262/test/language/expressions/exponentiation/bigint-arithmetic.js:
+        * test262/test/language/expressions/exponentiation/bigint-errors.js:
+        * test262/test/language/expressions/exponentiation/bigint-negative-exponent-throws.js:
+        * test262/test/language/expressions/exponentiation/bigint-toprimitive.js:
+        * test262/test/language/expressions/exponentiation/bigint-wrapped-values.js:
+        * test262/test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js:
+        * test262/test/language/expressions/function/eval-var-scope-syntax-err.js: Added.
+        (f):
+        * test262/test/language/expressions/function/scope-param-elem-var-close.js:
+        * test262/test/language/expressions/function/scope-param-elem-var-open.js:
+        * test262/test/language/expressions/function/scope-param-rest-elem-var-close.js:
+        * test262/test/language/expressions/function/scope-param-rest-elem-var-open.js:
+        * test262/test/language/expressions/generators/eval-var-scope-syntax-err.js: Added.
+        (f):
+        * test262/test/language/expressions/generators/scope-param-elem-var-close.js:
+        * test262/test/language/expressions/generators/scope-param-elem-var-open.js:
+        * test262/test/language/expressions/generators/scope-param-rest-elem-var-close.js:
+        * test262/test/language/expressions/generators/scope-param-rest-elem-var-open.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-bigint.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-number.js:
+        * test262/test/language/expressions/greater-than-or-equal/bigint-and-string.js:
+        * test262/test/language/expressions/greater-than/bigint-and-bigint.js:
+        * test262/test/language/expressions/greater-than/bigint-and-boolean.js:
+        * test262/test/language/expressions/greater-than/bigint-and-incomparable-string.js:
+        * test262/test/language/expressions/greater-than/bigint-and-non-finite.js:
+        * test262/test/language/expressions/greater-than/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/greater-than/bigint-and-number.js:
+        * test262/test/language/expressions/greater-than/bigint-and-symbol.js:
+        * test262/test/language/expressions/left-shift/bigint-and-number.js:
+        * test262/test/language/expressions/left-shift/bigint-errors.js:
+        * test262/test/language/expressions/left-shift/bigint-non-primitive.js:
+        * test262/test/language/expressions/left-shift/bigint-toprimitive.js:
+        * test262/test/language/expressions/left-shift/bigint-wrapped-values.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-bigint.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-non-finite.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-number.js:
+        * test262/test/language/expressions/less-than-or-equal/bigint-and-string.js:
+        * test262/test/language/expressions/less-than/bigint-and-bigint.js:
+        * test262/test/language/expressions/less-than/bigint-and-boolean.js:
+        * test262/test/language/expressions/less-than/bigint-and-incomparable-string.js:
+        * test262/test/language/expressions/less-than/bigint-and-non-finite.js:
+        * test262/test/language/expressions/less-than/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/less-than/bigint-and-number.js:
+        * test262/test/language/expressions/modulus/bigint-and-number.js:
+        * test262/test/language/expressions/modulus/bigint-arithmetic.js:
+        * test262/test/language/expressions/modulus/bigint-errors.js:
+        * test262/test/language/expressions/modulus/bigint-modulo-zero.js:
+        * test262/test/language/expressions/modulus/bigint-toprimitive.js:
+        * test262/test/language/expressions/modulus/bigint-wrapped-values.js:
+        * test262/test/language/expressions/multiplication/bigint-and-number.js:
+        * test262/test/language/expressions/multiplication/bigint-arithmetic.js:
+        * test262/test/language/expressions/multiplication/bigint-errors.js:
+        * test262/test/language/expressions/multiplication/bigint-toprimitive.js:
+        * test262/test/language/expressions/multiplication/bigint-wrapped-values.js:
+        * test262/test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js: Added.
+        (obj.async method):
+        * test262/test/language/expressions/object/method-definition/async-meth-eval-var-scope-syntax-err.js: Added.
+        (obj.async method):
+        (SyntaxError.then):
+        * test262/test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js: Added.
+        (obj.method.a.eval):
+        * test262/test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js: Added.
+        (obj.method.a.eval):
+        * test262/test/language/expressions/object/scope-gen-meth-param-elem-var-close.js:
+        * test262/test/language/expressions/object/scope-gen-meth-param-elem-var-open.js:
+        * test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js:
+        * test262/test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js:
+        * test262/test/language/expressions/object/scope-meth-param-elem-var-close.js:
+        * test262/test/language/expressions/object/scope-meth-param-elem-var-open.js:
+        * test262/test/language/expressions/object/scope-meth-param-rest-elem-var-close.js:
+        * test262/test/language/expressions/object/scope-meth-param-rest-elem-var-open.js:
+        * test262/test/language/expressions/optional-chaining/iteration-statement-do.js: Added.
+        * test262/test/language/expressions/optional-chaining/iteration-statement-for-await-of.js: Added.
+        (const.obj.iterable.Symbol.asyncIterator):
+        (async checkAssertions):
+        * test262/test/language/expressions/optional-chaining/iteration-statement-for-in.js: Added.
+        * test262/test/language/expressions/optional-chaining/iteration-statement-for-of-type-error.js: Added.
+        * test262/test/language/expressions/optional-chaining/iteration-statement-for.js: Added.
+        (const.obj3.get a):
+        * test262/test/language/expressions/optional-chaining/iteration-statement-while.js: Added.
+        * test262/test/language/expressions/optional-chaining/new-target-optional-call.js: Added.
+        (const.newTargetContext):
+        (Base):
+        (Foo):
+        * test262/test/language/expressions/optional-chaining/optional-call-preserves-this.js: Added.
+        (const.a.b):
+        * test262/test/language/expressions/optional-chaining/super-property-optional-call.js: Added.
+        (Base.prototype.method):
+        (Base):
+        (Foo.prototype.method):
+        (Foo):
+        * test262/test/language/expressions/right-shift/bigint-and-number.js:
+        * test262/test/language/expressions/right-shift/bigint-errors.js:
+        * test262/test/language/expressions/right-shift/bigint-non-primitive.js:
+        * test262/test/language/expressions/right-shift/bigint-toprimitive.js:
+        * test262/test/language/expressions/right-shift/bigint-wrapped-values.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-bigint.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-boolean.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-number.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-object.js:
+        * test262/test/language/expressions/strict-does-not-equals/bigint-and-string.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-bigint.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-boolean.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-non-finite.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-number-extremes.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-number.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-object.js:
+        * test262/test/language/expressions/strict-equals/bigint-and-string.js:
+        * test262/test/language/expressions/subtraction/bigint-and-number.js:
+        * test262/test/language/expressions/subtraction/bigint-arithmetic.js:
+        * test262/test/language/expressions/subtraction/bigint-errors.js:
+        * test262/test/language/expressions/subtraction/bigint-toprimitive.js:
+        * test262/test/language/expressions/subtraction/bigint-wrapped-values.js:
+        * test262/test/language/expressions/typeof/proxy.js: Added.
+        (assert.sameValue.typeof.new.Proxy):
+        (const.rp2.Proxy.revocable):
+        * test262/test/language/expressions/unary-minus/bigint-non-primitive.js:
+        * test262/test/language/expressions/unary-plus/bigint-throws.js:
+        * test262/test/language/expressions/unsigned-right-shift/bigint-and-number.js:
+        * test262/test/language/expressions/unsigned-right-shift/bigint-errors.js:
+        * test262/test/language/expressions/unsigned-right-shift/bigint-non-primitive.js:
+        * test262/test/language/expressions/unsigned-right-shift/bigint-toprimitive.js:
+        * test262/test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js:
+        * test262/test/language/function-code/eval-param-env-with-computed-key.js:
+        * test262/test/language/function-code/eval-param-env-with-prop-initializer.js:
+        * test262/test/language/statements/async-function/eval-var-scope-syntax-err.js: Added.
+        (async f):
+        (SyntaxError.then):
+        * test262/test/language/statements/async-generator/eval-var-scope-syntax-err.js: Added.
+        (async f):
+        * test262/test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js: Added.
+        (C.async method):
+        (C):
+        * test262/test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js: Added.
+        (C.prototype.async method):
+        (C):
+        * test262/test/language/statements/class/async-method-static/eval-var-scope-syntax-err.js: Added.
+        (C.async method):
+        (C):
+        (SyntaxError.then):
+        * test262/test/language/statements/class/async-method/eval-var-scope-syntax-err.js: Added.
+        (C.prototype.async method):
+        (C):
+        (SyntaxError.then):
+        * test262/test/language/statements/class/definition/constructable-but-no-prototype.js:
+        * test262/test/language/statements/class/definition/constructor-strict-by-default.js:
+        * test262/test/language/statements/class/definition/getters-restricted-ids.js:
+        * test262/test/language/statements/class/definition/implicit-constructor.js:
+        * test262/test/language/statements/class/definition/invalid-extends.js:
+        * test262/test/language/statements/class/definition/methods-named-eval-arguments.js:
+        * test262/test/language/statements/class/definition/prototype-getter.js:
+        * test262/test/language/statements/class/definition/prototype-property.js:
+        * test262/test/language/statements/class/definition/setters-restricted-ids.js:
+        * test262/test/language/statements/class/definition/side-effects-in-extends.js:
+        * test262/test/language/statements/class/definition/side-effects-in-property-define.js:
+        * test262/test/language/statements/class/definition/this-access-restriction-2.js:
+        * test262/test/language/statements/class/definition/this-access-restriction.js:
+        * test262/test/language/statements/class/definition/this-check-ordering.js:
+        * test262/test/language/statements/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js: Added.
+        (C.prototype.access):
+        (C):
+        * test262/test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js: Added.
+        (C.method):
+        (C):
+        * test262/test/language/statements/class/gen-method/eval-var-scope-syntax-err.js: Added.
+        (C.prototype.method):
+        (C):
+        * test262/test/language/statements/class/method-static/eval-var-scope-syntax-err.js: Added.
+        (C.method):
+        (C):
+        * test262/test/language/statements/class/method/eval-var-scope-syntax-err.js: Added.
+        (C.prototype.method):
+        (C):
+        * test262/test/language/statements/class/name-binding/basic.js:
+        * test262/test/language/statements/class/subclass/binding.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/String/length.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js:
+        * test262/test/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js:
+        * test262/test/language/statements/class/subclass/builtins.js:
+        * test262/test/language/statements/class/subclass/default-constructor-spread-override.js:
+        * test262/test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js:
+        * test262/test/language/statements/for-in/order-enumerable-shadowed.js: Added.
+        * test262/test/language/statements/for-in/order-property-added.js: Added.
+        * test262/test/language/statements/for-in/order-property-on-prototype.js: Added.
+        * test262/test/language/statements/for-in/order-simple-object.js: Added.
+        * test262/test/language/statements/function/eval-var-scope-syntax-err.js: Added.
+        (f):
+        * test262/test/language/statements/function/scope-param-elem-var-close.js:
+        * test262/test/language/statements/function/scope-param-elem-var-open.js:
+        * test262/test/language/statements/function/scope-param-rest-elem-var-close.js:
+        * test262/test/language/statements/function/scope-param-rest-elem-var-open.js:
+        * test262/test/language/statements/generators/eval-var-scope-syntax-err.js: Added.
+        (f):
+        * test262/test/language/statements/generators/scope-param-elem-var-close.js:
+        * test262/test/language/statements/generators/scope-param-elem-var-open.js:
+        * test262/test/language/statements/generators/scope-param-rest-elem-var-close.js:
+        * test262/test/language/statements/generators/scope-param-rest-elem-var-open.js:
+        * test262/test262-Revision.txt:
+
 2020-01-03  Saam Barati  <sbarati@apple.com>
 
         B3::ReduceLoopStrength should not do range based iteration on a vector it's mutating
index 3ffcd7a..58bec3f 100644 (file)
@@ -618,6 +618,90 @@ test/annexB/language/global-code/switch-dflt-global-skip-early-err.js:
 test/annexB/language/statements/for-of/iterator-close-return-emulates-undefined-throws-when-called.js:
   default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/AggregateError/errors-iterabletolist-failures.js:
+  default: 'Test262Error: get Symbol.iterator Expected a Test262Error but got a ReferenceError'
+  strict mode: 'Test262Error: get Symbol.iterator Expected a Test262Error but got a ReferenceError'
+test/built-ins/AggregateError/errors-iterabletolist.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/length.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/message-method-prop-cast.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/message-method-prop.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/message-tostring-abrupt-symbol.js:
+  default: 'Test262Error: toPrimitive Expected a TypeError but got a ReferenceError'
+  strict mode: 'Test262Error: toPrimitive Expected a TypeError but got a ReferenceError'
+test/built-ins/AggregateError/message-tostring-abrupt.js:
+  default: 'Test262Error: toPrimitive Expected a Test262Error but got a ReferenceError'
+  strict mode: 'Test262Error: toPrimitive Expected a Test262Error but got a ReferenceError'
+test/built-ins/AggregateError/message-undefined-no-prop.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/name.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/newtarget-proto-custom.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/newtarget-proto-fallback.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/newtarget-proto.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prop-desc.js:
+  default: 'Test262Error: Expected SameValue(«undefined», «function») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«undefined», «function») to be true'
+test/built-ins/AggregateError/proto.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/constructor.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js:
+  default: 'Test262Error: Expected a TypeError but got a ReferenceError'
+  strict mode: 'Test262Error: Expected a TypeError but got a ReferenceError'
+test/built-ins/AggregateError/prototype/errors/invoked-as-func.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/length.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/name.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/prop-desc.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/errors/this-is-not-object.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/message.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/name.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/prop-desc.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
+test/built-ins/AggregateError/prototype/proto.js:
+  default: "ReferenceError: Can't find variable: AggregateError"
+  strict mode: "ReferenceError: Can't find variable: AggregateError"
 test/built-ins/Array/of/return-abrupt-from-data-property.js:
   default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
@@ -1035,6 +1119,21 @@ test/built-ins/Function/prototype/toString/unicode.js:
 test/built-ins/GeneratorFunction/proto-from-ctor-realm.js:
   default: 'Test262Error: Expected SameValue(«[object GeneratorFunction]», «[object GeneratorFunction]») to be true'
   strict mode: 'Test262Error: Expected SameValue(«[object GeneratorFunction]», «[object GeneratorFunction]») to be true'
+test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js:
+  default: 'Test262Error: Expected true but got false'
+  strict mode: 'Test262Error: Expected true but got false'
+test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js:
+  default: 'Test262Error: Expected SameValue(«22», «2») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«22», «2») to be true'
+test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js:
+  default: 'Test262Error: Expected true but got false'
+  strict mode: 'Test262Error: Expected true but got false'
+test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js:
+  default: 'Test262Error: Expected SameValue(«22», «2») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«22», «2») to be true'
+test/built-ins/JSON/parse/reviver-wrapper.js:
+  default: 'Test262Error: [[Set]] should not be called.'
+  strict mode: 'Test262Error: [[Set]] should not be called.'
 test/built-ins/Map/proto-from-ctor-realm.js:
   default: 'Test262Error: Expected SameValue(«[object Map]», «[object Map]») to be true'
   strict mode: 'Test262Error: Expected SameValue(«[object Map]», «[object Map]») to be true'
@@ -1062,6 +1161,24 @@ test/built-ins/Number/bigint-conversion.js:
 test/built-ins/Number/proto-from-ctor-realm.js:
   default: 'Test262Error: Expected SameValue(«0», «0») to be true'
   strict mode: 'Test262Error: Expected SameValue(«0», «0») to be true'
+test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
 test/built-ins/Object/internals/DefineOwnProperty/consistent-value-function-arguments.js:
   default: 'Test262Error: Expected SameValue(«null», «[object Arguments]») to be true'
 test/built-ins/Object/internals/DefineOwnProperty/consistent-value-function-caller.js:
@@ -1078,6 +1195,12 @@ test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-1.js:
 test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js:
   default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js:
+  default: "TypeError: Proxy handler's 'ownKeys' method returned a key that was not present in its non-extensible target"
+  strict mode: "TypeError: Proxy handler's 'ownKeys' method returned a key that was not present in its non-extensible target"
+test/built-ins/Object/preventExtensions/throws-when-false.js:
+  default: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a TypeError to be thrown but no exception was thrown at all'
 test/built-ins/Object/proto-from-ctor-realm.js:
   default: 'Test262Error: Expected SameValue(«[object Object]», «[object Object]») to be true'
   strict mode: 'Test262Error: Expected SameValue(«[object Object]», «[object Object]») to be true'
@@ -1564,6 +1687,9 @@ test/built-ins/Set/proto-from-ctor-realm.js:
 test/built-ins/String/proto-from-ctor-realm.js:
   default: 'Test262Error: Expected SameValue(«», «») to be true'
   strict mode: 'Test262Error: Expected SameValue(«», «») to be true'
+test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js:
+  default: "Test262Error: sample 11: 'abcba'.replaceAll(/(?<named>b)/g, '($<named>)') Expected SameValue(«a($<named>)c($<named>)a», «a(b)c(b)a») to be true"
+  strict mode: "Test262Error: sample 11: 'abcba'.replaceAll(/(?<named>b)/g, '($<named>)') Expected SameValue(«a($<named>)c($<named>)a», «a(b)c(b)a») to be true"
 test/built-ins/ThrowTypeError/extensible.js:
   default: 'Test262Error: Expected SameValue(«true», «false») to be true'
   strict mode: 'Test262Error: Expected SameValue(«true», «false») to be true'
@@ -1872,12 +1998,138 @@ test/intl402/DateTimeFormat/prototype/formatToParts/pattern-on-calendar.js:
 test/intl402/DateTimeFormat/prototype/formatToParts/related-year.js:
   default: 'Test262Error: Expected SameValue(«false», «true») to be true'
   strict mode: 'Test262Error: Expected SameValue(«false», «true») to be true'
+test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js:
+  default: 'Test262Error: Expected SameValue(«h24», «h23») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«h24», «h23») to be true'
 test/intl402/DateTimeFormat/prototype/resolvedOptions/order-dayPeriod.js:
   default: 'Test262Error: Expected [locale, calendar, numberingSystem, timeZone, hourCycle, hour12, hour, minute] and [locale, calendar, numberingSystem, timeZone, hourCycle, hour12, dayPeriod, hour, minute] to have the same contents. '
   strict mode: 'Test262Error: Expected [locale, calendar, numberingSystem, timeZone, hourCycle, hour12, hour, minute] and [locale, calendar, numberingSystem, timeZone, hourCycle, hour12, dayPeriod, hour, minute] to have the same contents. '
 test/intl402/DateTimeFormat/prototype/resolvedOptions/order-fractionalSecondDigits.js:
   default: 'Test262Error: Expected [locale, calendar, numberingSystem, timeZone, minute, second] and [locale, calendar, numberingSystem, timeZone, minute, second, fractionalSecondDigits] to have the same contents. '
   strict mode: 'Test262Error: Expected [locale, calendar, numberingSystem, timeZone, minute, second] and [locale, calendar, numberingSystem, timeZone, minute, second, fractionalSecondDigits] to have the same contents. '
+test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/ctor-custom-prototype.js:
+  default: 'TypeError: Reflect.construct requires the first argument be a constructor'
+  strict mode: 'TypeError: Reflect.construct requires the first argument be a constructor'
+test/intl402/DisplayNames/ctor-default-prototype.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames()')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames()')"
+test/intl402/DisplayNames/instance-extensible.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames()')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames()')"
+test/intl402/DisplayNames/length.js:
+  default: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+test/intl402/DisplayNames/locales-length-poison-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/locales-length-tolength-throws.js:
+  default: 'Test262Error: poisoned valueOf for ToNumber Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: poisoned valueOf for ToNumber Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/locales-symbol-length.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames(symbol)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames(symbol)')"
+test/intl402/DisplayNames/name.js:
+  default: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+test/intl402/DisplayNames/options-fallback-abrupt-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-fallback-invalid-throws.js:
+  default: 'Test262Error: err Expected a RangeError but got a TypeError'
+  strict mode: 'Test262Error: err Expected a RangeError but got a TypeError'
+test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js:
+  default: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-fallback-valid.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js:
+  default: 'Test262Error: bestfit Expected a RangeError but got a TypeError'
+  strict mode: 'Test262Error: bestfit Expected a RangeError but got a TypeError'
+test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js:
+  default: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-localeMatcher-valid.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+test/intl402/DisplayNames/options-random-properties-unchecked.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+test/intl402/DisplayNames/options-style-abrupt-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-style-invalid-throws.js:
+  default: 'Test262Error: small Expected a RangeError but got a TypeError'
+  strict mode: 'Test262Error: small Expected a RangeError but got a TypeError'
+test/intl402/DisplayNames/options-style-toString-abrupt-throws.js:
+  default: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-style-valid.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+test/intl402/DisplayNames/options-type-abrupt-throws.js:
+  default: 'Test262Error: Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-type-invalid-throws.js:
+  default: 'Test262Error: lang Expected a RangeError but got a TypeError'
+  strict mode: 'Test262Error: lang Expected a RangeError but got a TypeError'
+test/intl402/DisplayNames/options-type-toString-abrupt-throws.js:
+  default: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+  strict mode: 'Test262Error: from toString Expected a Test262Error but got a TypeError'
+test/intl402/DisplayNames/options-type-valid.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en', options)')"
+test/intl402/DisplayNames/prop-desc.js:
+  default: "Test262Error: `typeof Intl.DisplayNames` is `'function'` Expected SameValue(«undefined», «function») to be true"
+  strict mode: "Test262Error: `typeof Intl.DisplayNames` is `'function'` Expected SameValue(«undefined», «function») to be true"
+test/intl402/DisplayNames/proto-from-ctor-realm.js:
+  default: 'TypeError: Reflect.construct requires the first argument be a constructor'
+  strict mode: 'TypeError: Reflect.construct requires the first argument be a constructor'
+test/intl402/DisplayNames/proto.js:
+  default: "TypeError: undefined is not an object (evaluating 'Object.getPrototypeOf(Intl.DisplayNames)')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Object.getPrototypeOf(Intl.DisplayNames)')"
+test/intl402/DisplayNames/prototype/Symbol.toStringTag.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+test/intl402/DisplayNames/prototype/prop-desc.js:
+  default: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Object.getOwnPropertyDescriptor(obj, name)')"
+test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US')')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US')')"
+test/intl402/DisplayNames/prototype/resolvedOptions/length.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+test/intl402/DisplayNames/prototype/resolvedOptions/name.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { fallback })')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { fallback })')"
+test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { style })')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { style })')"
+test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { type })')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US', { type })')"
+test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js:
+  default: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US')')"
+  strict mode: "TypeError: undefined is not a constructor (evaluating 'new Intl.DisplayNames('en-US')')"
+test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js:
+  default: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
+  strict mode: "TypeError: undefined is not an object (evaluating 'Intl.DisplayNames.prototype')"
 test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js:
   default: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
   strict mode: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
@@ -2100,14 +2352,13 @@ test/language/eval-code/indirect/var-env-func-init-global-update-configurable.js
 test/language/eval-code/indirect/var-env-global-lex-non-strict.js:
   default: 'Test262Error: Expected SameValue(«function TypeError() {'
   strict mode: 'Test262Error: Expected SameValue(«function TypeError() {'
+test/language/expressions/arrow-function/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/arrow-function/scope-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/expressions/arrow-function/scope-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/arrow-function/scope-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
 test/language/expressions/assignment/S11.13.1_A5_T4.js:
   default: "ReferenceError: Can't find variable: x"
 test/language/expressions/assignment/S11.13.1_A5_T5.js:
@@ -2271,9 +2522,15 @@ test/language/expressions/assignment/fn-name-lhs-cover.js:
   strict mode: 'Test262Error: descriptor value should be '
 test/language/expressions/async-generator/early-errors-expression-yield-as-function-binding-identifier.js:
   default: 'Test262: This statement should not be evaluated.'
+test/language/expressions/async-generator/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/async-generator/generator-created-after-decl-inst.js:
   default: 'Test262Error: Expected SameValue(«[object AsyncGenerator]», «[object AsyncGenerator]») to be false'
   strict mode: 'Test262Error: Expected SameValue(«[object AsyncGenerator]», «[object AsyncGenerator]») to be false'
+test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/call/eval-realm-indirect.js:
   default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
 test/language/expressions/call/eval-spread-empty-leading.js:
@@ -2305,6 +2562,12 @@ test/language/expressions/call/tco-non-eval-global.js:
   default: 'RangeError: Maximum call stack size exceeded.'
 test/language/expressions/call/tco-non-eval-with.js:
   default: 'RangeError: Maximum call stack size exceeded.'
+test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/class/class-name-ident-await-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'aw\\u0061it'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'aw\\u0061it'"
@@ -2324,6 +2587,12 @@ test/language/expressions/class/elements/syntax/valid/grammar-static-ctor-async-
 test/language/expressions/class/elements/syntax/valid/grammar-static-ctor-gen-meth-valid.js:
   default: "SyntaxError: Cannot declare a generator function named 'constructor'."
   strict mode: "SyntaxError: Cannot declare a generator function named 'constructor'."
+test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/class/ident-name-method-def-break-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'bre\\u0061k'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'bre\\u0061k'"
@@ -2453,6 +2722,12 @@ test/language/expressions/class/ident-name-method-def-while-escaped.js:
 test/language/expressions/class/ident-name-method-def-with-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
+test/language/expressions/class/method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/expressions/class/method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/class/poisoned-underscore-proto.js:
   default: 'Test262Error: should not be called'
   strict mode: 'Test262Error: should not be called'
@@ -2613,25 +2888,23 @@ test/language/expressions/compound-assignment/S11.13.2_A7.9_T4.js:
 test/language/expressions/conditional/in-branch-1.js:
   default: "SyntaxError: Unexpected keyword 'in'. Expected ':' in ternary operator."
   strict mode: "SyntaxError: Unexpected keyword 'in'. Expected ':' in ternary operator."
+test/language/expressions/function/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/function/scope-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/expressions/function/scope-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/function/scope-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/function/scope-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/expressions/function/scope-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
+test/language/expressions/generators/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/generators/generator-created-after-decl-inst.js:
   default: 'Test262Error: Expected SameValue(«[object Generator]», «[object Generator]») to be false'
   strict mode: 'Test262Error: Expected SameValue(«[object Generator]», «[object Generator]») to be false'
 test/language/expressions/generators/scope-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/expressions/generators/scope-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/generators/scope-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/generators/scope-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/expressions/generators/scope-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
 test/language/expressions/import.meta/import-meta-is-an-ordinary-object.js:
   module: 'SyntaxError: Cannot use new with import.'
 test/language/expressions/import.meta/syntax/invalid-assignment-target-for-await-of-loop.js:
@@ -3018,30 +3291,31 @@ test/language/expressions/object/ident-name-prop-name-literal-while-escaped.js:
 test/language/expressions/object/ident-name-prop-name-literal-with-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
+test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/object/method-definition/escaped-get.js:
   default: 'Test262: This statement should not be evaluated.'
   strict mode: 'Test262: This statement should not be evaluated.'
 test/language/expressions/object/method-definition/escaped-set.js:
   default: 'Test262: This statement should not be evaluated.'
   strict mode: 'Test262: This statement should not be evaluated.'
+test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/object/scope-gen-meth-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/expressions/object/scope-gen-meth-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/object/scope-gen-meth-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
 test/language/expressions/object/scope-getter-body-lex-distinc.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/object/scope-meth-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/expressions/object/scope-meth-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/object/scope-meth-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/expressions/object/scope-meth-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/expressions/object/scope-meth-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
 test/language/expressions/object/scope-setter-body-lex-distinc.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/expressions/postfix-decrement/S11.3.2_A5_T1.js:
@@ -3128,10 +3402,6 @@ test/language/function-code/each-param-has-own-non-shared-eval-scope.js:
   default: 'Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all'
 test/language/function-code/each-param-has-own-scope.js:
   default: 'Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all'
-test/language/function-code/eval-param-env-with-computed-key.js:
-  default: 'Test262Error: Expected SameValue(«inner», «outer») to be true'
-test/language/function-code/eval-param-env-with-prop-initializer.js:
-  default: 'Test262Error: Expected SameValue(«inner», «outer») to be true'
 test/language/global-code/script-decl-func-err-non-configurable.js:
   default: 'Test262Error: writable, non-enumerable data property Expected a TypeError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: writable, non-enumerable data property Expected a TypeError to be thrown but no exception was thrown at all'
@@ -3260,9 +3530,18 @@ test/language/module-code/parse-err-hoist-lex-fun.js:
   module: 'Test262: This statement should not be evaluated.'
 test/language/module-code/parse-err-hoist-lex-gen.js:
   module: 'Test262: This statement should not be evaluated.'
+test/language/statements/async-generator/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/async-generator/generator-created-after-decl-inst.js:
   default: 'Test262Error: Expected SameValue(«[object AsyncGenerator]», «[object AsyncGenerator]») to be false'
   strict mode: 'Test262Error: Expected SameValue(«[object AsyncGenerator]», «[object AsyncGenerator]») to be false'
+test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/class/class-name-ident-await-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'aw\\u0061it'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'aw\\u0061it'"
@@ -3282,6 +3561,12 @@ test/language/statements/class/elements/syntax/valid/grammar-static-ctor-async-m
 test/language/statements/class/elements/syntax/valid/grammar-static-ctor-gen-meth-valid.js:
   default: "SyntaxError: Cannot declare a generator function named 'constructor'."
   strict mode: "SyntaxError: Cannot declare a generator function named 'constructor'."
+test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/statements/class/gen-method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/class/ident-name-method-def-break-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'bre\\u0061k'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'bre\\u0061k'"
@@ -3411,6 +3696,12 @@ test/language/statements/class/ident-name-method-def-while-escaped.js:
 test/language/statements/class/ident-name-method-def-with-escaped.js:
   default: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
   strict mode: "SyntaxError: Unexpected escaped characters in keyword token: 'w\\u0069th'"
+test/language/statements/class/method-static/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+test/language/statements/class/method/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/class/poisoned-underscore-proto.js:
   default: 'Test262Error: should not be called'
   strict mode: 'Test262Error: should not be called'
@@ -3511,6 +3802,9 @@ test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expressio
   default: "SyntaxError: Cannot use the keyword 'in' as a lexical variable name."
 test/language/statements/for-in/let-array-with-newline.js:
   default: 'Test262: This statement should not be evaluated.'
+test/language/statements/for-in/order-enumerable-shadowed.js:
+  default: 'Test262Error: Expected [p1, p2] and [p1] to have the same contents. '
+  strict mode: 'Test262Error: Expected [p1, p2] and [p1] to have the same contents. '
 test/language/statements/for-in/scope-body-lex-open.js:
   default: 'Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all'
   strict mode: 'Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all'
@@ -3671,25 +3965,23 @@ test/language/statements/for/let-array-with-newline.js:
 test/language/statements/for/scope-body-lex-open.js:
   default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
   strict mode: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/statements/function/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/function/scope-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/statements/function/scope-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/statements/function/scope-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/statements/function/scope-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/statements/function/scope-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
+test/language/statements/generators/eval-var-scope-syntax-err.js:
+  default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
+  strict mode: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
 test/language/statements/generators/generator-created-after-decl-inst.js:
   default: 'Test262Error: Expected SameValue(«[object Generator]», «[object Generator]») to be false'
   strict mode: 'Test262Error: Expected SameValue(«[object Generator]», «[object Generator]») to be false'
 test/language/statements/generators/scope-body-lex-distinct.js:
   default: 'Test262Error: Expected a SyntaxError to be thrown but no exception was thrown at all'
-test/language/statements/generators/scope-param-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/statements/generators/scope-param-elem-var-open.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
-test/language/statements/generators/scope-param-rest-elem-var-close.js:
-  default: 'Test262Error: Expected SameValue(«inside», «outside») to be true'
+test/language/statements/generators/scope-param-rest-elem-var-open.js:
+  default: 'Test262Error: Expected SameValue(«outside», «inside») to be true'
 test/language/statements/if/if-async-fun-else-async-fun.js:
   default: 'Test262: This statement should not be evaluated.'
 test/language/statements/if/if-async-fun-else-stmt.js:
index df0aadc..e5ca101 100644 (file)
-// Copyright 2019 Ron Buckton. All rights reserved.\r
-// This code is governed by the BSD license found in the LICENSE file.\r
-/*---\r
-description: >\r
-  Compare two values structurally\r
-defines: [assert.deepEqual]\r
----*/\r
-\r
-assert.deepEqual = function(actual, expected, message) {\r
-  var format = assert.deepEqual.format;\r
-  assert(\r
-    assert.deepEqual._compare(actual, expected),\r
-    `Expected ${format(actual)} to be structurally equal to ${format(expected)}. ${(message || '')}`\r
-  );\r
-};\r
-\r
-assert.deepEqual.format = function(value, seen) {\r
-  switch (typeof value) {\r
-    case 'string':\r
-      return typeof JSON !== "undefined" ? JSON.stringify(value) : `"${value}"`;\r
-    case 'number':\r
-    case 'boolean':\r
-    case 'symbol':\r
-    case 'bigint':\r
-      return value.toString();\r
-    case 'undefined':\r
-      return 'undefined';\r
-    case 'function':\r
-      return `[Function${value.name ? `: ${value.name}` : ''}]`;\r
-    case 'object':\r
-      if (value === null) return 'null';\r
-      if (value instanceof Date) return `Date "${value.toISOString()}"`;\r
-      if (value instanceof RegExp) return value.toString();\r
-      if (!seen) {\r
-        seen = {\r
-          counter: 0,\r
-          map: new Map()\r
-        };\r
-      }\r
-\r
-      let usage = seen.map.get(value);\r
-      if (usage) {\r
-        usage.used = true;\r
-        return `[Ref: #${usage.id}]`;\r
-      }\r
-\r
-      usage = { id: ++seen.counter, used: false };\r
-      seen.map.set(value, usage);\r
-\r
-      if (typeof Set !== "undefined" && value instanceof Set) {\r
-        return `Set {${Array.from(value).map(value => assert.deepEqual.format(value, seen)).join(', ')}}${usage.used ? ` as #${usage.id}` : ''}`;\r
-      }\r
-      if (typeof Map !== "undefined" && value instanceof Map) {\r
-        return `Map {${Array.from(value).map(pair => `${assert.deepEqual.format(pair[0], seen)} => ${assert.deepEqual.format(pair[1], seen)}}`).join(', ')}}${usage.used ? ` as #${usage.id}` : ''}`;\r
-      }\r
-      if (Array.isArray ? Array.isArray(value) : value instanceof Array) {\r
-        return `[${value.map(value => assert.deepEqual.format(value, seen)).join(', ')}]${usage.used ? ` as #${usage.id}` : ''}`;\r
-      }\r
-      let tag = Symbol.toStringTag in value ? value[Symbol.toStringTag] : 'Object';\r
-      if (tag === 'Object' && Object.getPrototypeOf(value) === null) {\r
-        tag = '[Object: null prototype]';\r
-      }\r
-      return `${tag ? `${tag} ` : ''}{ ${Object.keys(value).map(key => `${key.toString()}: ${assert.deepEqual.format(value[key], seen)}`).join(', ')} }${usage.used ? ` as #${usage.id}` : ''}`;\r
-    default:\r
-      return typeof value;\r
-  }\r
-};\r
-\r
-assert.deepEqual._compare = (function () {\r
-  var EQUAL = 1;\r
-  var NOT_EQUAL = -1;\r
-  var UNKNOWN = 0;\r
-\r
-  function deepEqual(a, b) {\r
-    return compareEquality(a, b) === EQUAL;\r
-  }\r
-\r
-  function compareEquality(a, b, cache) {\r
-    return compareIf(a, b, isOptional, compareOptionality)\r
-      || compareIf(a, b, isPrimitiveEquatable, comparePrimitiveEquality)\r
-      || compareIf(a, b, isObjectEquatable, compareObjectEquality, cache)\r
-      || NOT_EQUAL;\r
-  }\r
-\r
-  function compareIf(a, b, test, compare, cache) {\r
-    return !test(a)\r
-      ? !test(b) ? UNKNOWN : NOT_EQUAL\r
-      : !test(b) ? NOT_EQUAL : cacheComparison(a, b, compare, cache);\r
-  }\r
-\r
-  function tryCompareStrictEquality(a, b) {\r
-    return a === b ? EQUAL : UNKNOWN;\r
-  }\r
-\r
-  function tryCompareTypeOfEquality(a, b) {\r
-    return typeof a !== typeof b ? NOT_EQUAL : UNKNOWN;\r
-  }\r
-\r
-  function tryCompareToStringTagEquality(a, b) {\r
-    var aTag = Symbol.toStringTag in a ? a[Symbol.toStringTag] : undefined;\r
-    var bTag = Symbol.toStringTag in b ? b[Symbol.toStringTag] : undefined;\r
-    return aTag !== bTag ? NOT_EQUAL : UNKNOWN;\r
-  }\r
-\r
-  function isOptional(value) {\r
-    return value === undefined\r
-      || value === null;\r
-  }\r
-\r
-  function compareOptionality(a, b) {\r
-    return tryCompareStrictEquality(a, b)\r
-      || NOT_EQUAL;\r
-  }\r
-\r
-  function isPrimitiveEquatable(value) {\r
-    switch (typeof value) {\r
-      case 'string':\r
-      case 'number':\r
-      case 'bigint':\r
-      case 'boolean':\r
-      case 'symbol':\r
-        return true;\r
-      default:\r
-        return isBoxed(value);\r
-    }\r
-  }\r
-\r
-  function comparePrimitiveEquality(a, b) {\r
-    if (isBoxed(a)) a = a.valueOf();\r
-    if (isBoxed(b)) b = b.valueOf();\r
-    return tryCompareStrictEquality(a, b)\r
-      || tryCompareTypeOfEquality(a, b)\r
-      || compareIf(a, b, isNaNEquatable, compareNaNEquality)\r
-      || NOT_EQUAL;\r
-  }\r
-\r
-  function isNaNEquatable(value) {\r
-    return typeof value === 'number';\r
-  }\r
-\r
-  function compareNaNEquality(a, b) {\r
-    return isNaN(a) && isNaN(b) ? EQUAL : NOT_EQUAL;\r
-  }\r
-\r
-  function isObjectEquatable(value) {\r
-    return typeof value === 'object';\r
-  }\r
-\r
-  function compareObjectEquality(a, b, cache) {\r
-    if (!cache) cache = new Map();\r
-    return getCache(cache, a, b)\r
-      || setCache(cache, a, b, EQUAL) // consider equal for now\r
-      || cacheComparison(a, b, tryCompareStrictEquality, cache)\r
-      || cacheComparison(a, b, tryCompareToStringTagEquality, cache)\r
-      || compareIf(a, b, isValueOfEquatable, compareValueOfEquality)\r
-      || compareIf(a, b, isToStringEquatable, compareToStringEquality)\r
-      || compareIf(a, b, isArrayLikeEquatable, compareArrayLikeEquality, cache)\r
-      || compareIf(a, b, isStructurallyEquatable, compareStructuralEquality, cache)\r
-      || compareIf(a, b, isIterableEquatable, compareIterableEquality, cache)\r
-      || cacheComparison(a, b, fail, cache);\r
-  }\r
-\r
-  function isBoxed(value) {\r
-    return value instanceof String\r
-      || value instanceof Number\r
-      || value instanceof Boolean\r
-      || typeof Symbol === 'function' && value instanceof Symbol\r
-      || typeof BigInt === 'function' && value instanceof BigInt;\r
-  }\r
-\r
-  function isValueOfEquatable(value) {\r
-    return value instanceof Date;\r
-  }\r
-\r
-  function compareValueOfEquality(a, b) {\r
-    return compareIf(a.valueOf(), b.valueOf(), isPrimitiveEquatable, comparePrimitiveEquality)\r
-      || NOT_EQUAL;\r
-  }\r
-\r
-  function isToStringEquatable(value) {\r
-    return value instanceof RegExp;\r
-  }\r
-\r
-  function compareToStringEquality(a, b) {\r
-    return compareIf(a.toString(), b.toString(), isPrimitiveEquatable, comparePrimitiveEquality)\r
-      || NOT_EQUAL;\r
-  }\r
-\r
-  function isArrayLikeEquatable(value) {\r
-    return (Array.isArray ? Array.isArray(value) : value instanceof Array)\r
-      || (typeof Uint8Array === 'function' && value instanceof Uint8Array)\r
-      || (typeof Uint8ClampedArray === 'function' && value instanceof Uint8ClampedArray)\r
-      || (typeof Uint16Array === 'function' && value instanceof Uint16Array)\r
-      || (typeof Uint32Array === 'function' && value instanceof Uint32Array)\r
-      || (typeof Int8Array === 'function' && value instanceof Int8Array)\r
-      || (typeof Int16Array === 'function' && value instanceof Int16Array)\r
-      || (typeof Int32Array === 'function' && value instanceof Int32Array)\r
-      || (typeof Float32Array === 'function' && value instanceof Float32Array)\r
-      || (typeof Float64Array === 'function' && value instanceof Float64Array)\r
-      || (typeof BigUint64Array === 'function' && value instanceof BigUint64Array)\r
-      || (typeof BigInt64Array === 'function' && value instanceof BigInt64Array);\r
-  }\r
-\r
-  function compareArrayLikeEquality(a, b, cache) {\r
-    if (a.length !== b.length) return NOT_EQUAL;\r
-    for (var i = 0; i < a.length; i++) {\r
-      if (compareEquality(a[i], b[i], cache) === NOT_EQUAL) {\r
-        return NOT_EQUAL;\r
-      }\r
-    }\r
-    return EQUAL;\r
-  }\r
-\r
-  function isStructurallyEquatable(value) {\r
-    return !(typeof Promise === 'function' && value instanceof Promise // only comparable by reference\r
-      || typeof WeakMap === 'function' && value instanceof WeakMap // only comparable by reference\r
-      || typeof WeakSet === 'function' && value instanceof WeakSet // only comparable by reference\r
-      || typeof Map === 'function' && value instanceof Map // comparable via @@iterator\r
-      || typeof Set === 'function' && value instanceof Set); // comparable via @@iterator\r
-  }\r
-\r
-  function compareStructuralEquality(a, b, cache) {\r
-    var aKeys = [];\r
-    for (var key in a) aKeys.push(key);\r
-\r
-    var bKeys = [];\r
-    for (var key in b) bKeys.push(key);\r
-\r
-    if (aKeys.length !== bKeys.length) {\r
-      return NOT_EQUAL;\r
-    }\r
-\r
-    aKeys.sort();\r
-    bKeys.sort();\r
-\r
-    for (var i = 0; i < aKeys.length; i++) {\r
-      var aKey = aKeys[i];\r
-      var bKey = bKeys[i];\r
-      if (compareEquality(aKey, bKey, cache) === NOT_EQUAL) {\r
-        return NOT_EQUAL;\r
-      }\r
-      if (compareEquality(a[aKey], b[bKey], cache) === NOT_EQUAL) {\r
-        return NOT_EQUAL;\r
-      }\r
-    }\r
-\r
-    return compareIf(a, b, isIterableEquatable, compareIterableEquality, cache)\r
-      || EQUAL;\r
-  }\r
-\r
-  function isIterableEquatable(value) {\r
-    return typeof Symbol === 'function'\r
-      && typeof value[Symbol.iterator] === 'function';\r
-  }\r
-\r
-  function compareIteratorEquality(a, b, cache) {\r
-    if (typeof Map === 'function' && a instanceof Map && b instanceof Map ||\r
-      typeof Set === 'function' && a instanceof Set && b instanceof Set) {\r
-      if (a.size !== b.size) return NOT_EQUAL; // exit early if we detect a difference in size\r
-    }\r
-\r
-    var ar, br;\r
-    while (true) {\r
-      ar = a.next();\r
-      br = b.next();\r
-      if (ar.done) {\r
-        if (br.done) return EQUAL;\r
-        if (b.return) b.return();\r
-        return NOT_EQUAL;\r
-      }\r
-      if (br.done) {\r
-        if (a.return) a.return();\r
-        return NOT_EQUAL;\r
-      }\r
-      if (compareEquality(ar.value, br.value, cache) === NOT_EQUAL) {\r
-        if (a.return) a.return();\r
-        if (b.return) b.return();\r
-        return NOT_EQUAL;\r
-      }\r
-    }\r
-  }\r
-\r
-  function compareIterableEquality(a, b, cache) {\r
-    return compareIteratorEquality(a[Symbol.iterator](), b[Symbol.iterator](), cache);\r
-  }\r
-\r
-  function cacheComparison(a, b, compare, cache) {\r
-    var result = compare(a, b, cache);\r
-    if (cache && (result === EQUAL || result === NOT_EQUAL)) {\r
-      setCache(cache, a, b, /** @type {EQUAL | NOT_EQUAL} */(result));\r
-    }\r
-    return result;\r
-  }\r
-\r
-  function fail() {\r
-    return NOT_EQUAL;\r
-  }\r
-\r
-  function setCache(cache, left, right, result) {\r
-    var otherCache;\r
-\r
-    otherCache = cache.get(left);\r
-    if (!otherCache) cache.set(left, otherCache = new Map());\r
-    otherCache.set(right, result);\r
-\r
-    otherCache = cache.get(right);\r
-    if (!otherCache) cache.set(right, otherCache = new Map());\r
-    otherCache.set(left, result);\r
-  }\r
-\r
-  function getCache(cache, left, right) {\r
-    var otherCache;\r
-    var result;\r
-\r
-    otherCache = cache.get(left);\r
-    result = otherCache && otherCache.get(right);\r
-    if (result) return result;\r
-\r
-    otherCache = cache.get(right);\r
-    result = otherCache && otherCache.get(left);\r
-    if (result) return result;\r
-\r
-    return UNKNOWN;\r
-  }\r
-\r
-  return deepEqual;\r
-})();\r
+// Copyright 2019 Ron Buckton. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+description: >
+  Compare two values structurally
+defines: [assert.deepEqual]
+---*/
+
+assert.deepEqual = function(actual, expected, message) {
+  var format = assert.deepEqual.format;
+  assert(
+    assert.deepEqual._compare(actual, expected),
+    `Expected ${format(actual)} to be structurally equal to ${format(expected)}. ${(message || '')}`
+  );
+};
+
+assert.deepEqual.format = function(value, seen) {
+  switch (typeof value) {
+    case 'string':
+      return typeof JSON !== "undefined" ? JSON.stringify(value) : `"${value}"`;
+    case 'number':
+    case 'boolean':
+    case 'symbol':
+    case 'bigint':
+      return value.toString();
+    case 'undefined':
+      return 'undefined';
+    case 'function':
+      return `[Function${value.name ? `: ${value.name}` : ''}]`;
+    case 'object':
+      if (value === null) return 'null';
+      if (value instanceof Date) return `Date "${value.toISOString()}"`;
+      if (value instanceof RegExp) return value.toString();
+      if (!seen) {
+        seen = {
+          counter: 0,
+          map: new Map()
+        };
+      }
+
+      let usage = seen.map.get(value);
+      if (usage) {
+        usage.used = true;
+        return `[Ref: #${usage.id}]`;
+      }
+
+      usage = { id: ++seen.counter, used: false };
+      seen.map.set(value, usage);
+
+      if (typeof Set !== "undefined" && value instanceof Set) {
+        return `Set {${Array.from(value).map(value => assert.deepEqual.format(value, seen)).join(', ')}}${usage.used ? ` as #${usage.id}` : ''}`;
+      }
+      if (typeof Map !== "undefined" && value instanceof Map) {
+        return `Map {${Array.from(value).map(pair => `${assert.deepEqual.format(pair[0], seen)} => ${assert.deepEqual.format(pair[1], seen)}}`).join(', ')}}${usage.used ? ` as #${usage.id}` : ''}`;
+      }
+      if (Array.isArray ? Array.isArray(value) : value instanceof Array) {
+        return `[${value.map(value => assert.deepEqual.format(value, seen)).join(', ')}]${usage.used ? ` as #${usage.id}` : ''}`;
+      }
+      let tag = Symbol.toStringTag in value ? value[Symbol.toStringTag] : 'Object';
+      if (tag === 'Object' && Object.getPrototypeOf(value) === null) {
+        tag = '[Object: null prototype]';
+      }
+      return `${tag ? `${tag} ` : ''}{ ${Object.keys(value).map(key => `${key.toString()}: ${assert.deepEqual.format(value[key], seen)}`).join(', ')} }${usage.used ? ` as #${usage.id}` : ''}`;
+    default:
+      return typeof value;
+  }
+};
+
+assert.deepEqual._compare = (function () {
+  var EQUAL = 1;
+  var NOT_EQUAL = -1;
+  var UNKNOWN = 0;
+
+  function deepEqual(a, b) {
+    return compareEquality(a, b) === EQUAL;
+  }
+
+  function compareEquality(a, b, cache) {
+    return compareIf(a, b, isOptional, compareOptionality)
+      || compareIf(a, b, isPrimitiveEquatable, comparePrimitiveEquality)
+      || compareIf(a, b, isObjectEquatable, compareObjectEquality, cache)
+      || NOT_EQUAL;
+  }
+
+  function compareIf(a, b, test, compare, cache) {
+    return !test(a)
+      ? !test(b) ? UNKNOWN : NOT_EQUAL
+      : !test(b) ? NOT_EQUAL : cacheComparison(a, b, compare, cache);
+  }
+
+  function tryCompareStrictEquality(a, b) {
+    return a === b ? EQUAL : UNKNOWN;
+  }
+
+  function tryCompareTypeOfEquality(a, b) {
+    return typeof a !== typeof b ? NOT_EQUAL : UNKNOWN;
+  }
+
+  function tryCompareToStringTagEquality(a, b) {
+    var aTag = Symbol.toStringTag in a ? a[Symbol.toStringTag] : undefined;
+    var bTag = Symbol.toStringTag in b ? b[Symbol.toStringTag] : undefined;
+    return aTag !== bTag ? NOT_EQUAL : UNKNOWN;
+  }
+
+  function isOptional(value) {
+    return value === undefined
+      || value === null;
+  }
+
+  function compareOptionality(a, b) {
+    return tryCompareStrictEquality(a, b)
+      || NOT_EQUAL;
+  }
+
+  function isPrimitiveEquatable(value) {
+    switch (typeof value) {
+      case 'string':
+      case 'number':
+      case 'bigint':
+      case 'boolean':
+      case 'symbol':
+        return true;
+      default:
+        return isBoxed(value);
+    }
+  }
+
+  function comparePrimitiveEquality(a, b) {
+    if (isBoxed(a)) a = a.valueOf();
+    if (isBoxed(b)) b = b.valueOf();
+    return tryCompareStrictEquality(a, b)
+      || tryCompareTypeOfEquality(a, b)
+      || compareIf(a, b, isNaNEquatable, compareNaNEquality)
+      || NOT_EQUAL;
+  }
+
+  function isNaNEquatable(value) {
+    return typeof value === 'number';
+  }
+
+  function compareNaNEquality(a, b) {
+    return isNaN(a) && isNaN(b) ? EQUAL : NOT_EQUAL;
+  }
+
+  function isObjectEquatable(value) {
+    return typeof value === 'object';
+  }
+
+  function compareObjectEquality(a, b, cache) {
+    if (!cache) cache = new Map();
+    return getCache(cache, a, b)
+      || setCache(cache, a, b, EQUAL) // consider equal for now
+      || cacheComparison(a, b, tryCompareStrictEquality, cache)
+      || cacheComparison(a, b, tryCompareToStringTagEquality, cache)
+      || compareIf(a, b, isValueOfEquatable, compareValueOfEquality)
+      || compareIf(a, b, isToStringEquatable, compareToStringEquality)
+      || compareIf(a, b, isArrayLikeEquatable, compareArrayLikeEquality, cache)
+      || compareIf(a, b, isStructurallyEquatable, compareStructuralEquality, cache)
+      || compareIf(a, b, isIterableEquatable, compareIterableEquality, cache)
+      || cacheComparison(a, b, fail, cache);
+  }
+
+  function isBoxed(value) {
+    return value instanceof String
+      || value instanceof Number
+      || value instanceof Boolean
+      || typeof Symbol === 'function' && value instanceof Symbol
+      || typeof BigInt === 'function' && value instanceof BigInt;
+  }
+
+  function isValueOfEquatable(value) {
+    return value instanceof Date;
+  }
+
+  function compareValueOfEquality(a, b) {
+    return compareIf(a.valueOf(), b.valueOf(), isPrimitiveEquatable, comparePrimitiveEquality)
+      || NOT_EQUAL;
+  }
+
+  function isToStringEquatable(value) {
+    return value instanceof RegExp;
+  }
+
+  function compareToStringEquality(a, b) {
+    return compareIf(a.toString(), b.toString(), isPrimitiveEquatable, comparePrimitiveEquality)
+      || NOT_EQUAL;
+  }
+
+  function isArrayLikeEquatable(value) {
+    return (Array.isArray ? Array.isArray(value) : value instanceof Array)
+      || (typeof Uint8Array === 'function' && value instanceof Uint8Array)
+      || (typeof Uint8ClampedArray === 'function' && value instanceof Uint8ClampedArray)
+      || (typeof Uint16Array === 'function' && value instanceof Uint16Array)
+      || (typeof Uint32Array === 'function' && value instanceof Uint32Array)
+      || (typeof Int8Array === 'function' && value instanceof Int8Array)
+      || (typeof Int16Array === 'function' && value instanceof Int16Array)
+      || (typeof Int32Array === 'function' && value instanceof Int32Array)
+      || (typeof Float32Array === 'function' && value instanceof Float32Array)
+      || (typeof Float64Array === 'function' && value instanceof Float64Array)
+      || (typeof BigUint64Array === 'function' && value instanceof BigUint64Array)
+      || (typeof BigInt64Array === 'function' && value instanceof BigInt64Array);
+  }
+
+  function compareArrayLikeEquality(a, b, cache) {
+    if (a.length !== b.length) return NOT_EQUAL;
+    for (var i = 0; i < a.length; i++) {
+      if (compareEquality(a[i], b[i], cache) === NOT_EQUAL) {
+        return NOT_EQUAL;
+      }
+    }
+    return EQUAL;
+  }
+
+  function isStructurallyEquatable(value) {
+    return !(typeof Promise === 'function' && value instanceof Promise // only comparable by reference
+      || typeof WeakMap === 'function' && value instanceof WeakMap // only comparable by reference
+      || typeof WeakSet === 'function' && value instanceof WeakSet // only comparable by reference
+      || typeof Map === 'function' && value instanceof Map // comparable via @@iterator
+      || typeof Set === 'function' && value instanceof Set); // comparable via @@iterator
+  }
+
+  function compareStructuralEquality(a, b, cache) {
+    var aKeys = [];
+    for (var key in a) aKeys.push(key);
+
+    var bKeys = [];
+    for (var key in b) bKeys.push(key);
+
+    if (aKeys.length !== bKeys.length) {
+      return NOT_EQUAL;
+    }
+
+    aKeys.sort();
+    bKeys.sort();
+
+    for (var i = 0; i < aKeys.length; i++) {
+      var aKey = aKeys[i];
+      var bKey = bKeys[i];
+      if (compareEquality(aKey, bKey, cache) === NOT_EQUAL) {
+        return NOT_EQUAL;
+      }
+      if (compareEquality(a[aKey], b[bKey], cache) === NOT_EQUAL) {
+        return NOT_EQUAL;
+      }
+    }
+
+    return compareIf(a, b, isIterableEquatable, compareIterableEquality, cache)
+      || EQUAL;
+  }
+
+  function isIterableEquatable(value) {
+    return typeof Symbol === 'function'
+      && typeof value[Symbol.iterator] === 'function';
+  }
+
+  function compareIteratorEquality(a, b, cache) {
+    if (typeof Map === 'function' && a instanceof Map && b instanceof Map ||
+      typeof Set === 'function' && a instanceof Set && b instanceof Set) {
+      if (a.size !== b.size) return NOT_EQUAL; // exit early if we detect a difference in size
+    }
+
+    var ar, br;
+    while (true) {
+      ar = a.next();
+      br = b.next();
+      if (ar.done) {
+        if (br.done) return EQUAL;
+        if (b.return) b.return();
+        return NOT_EQUAL;
+      }
+      if (br.done) {
+        if (a.return) a.return();
+        return NOT_EQUAL;
+      }
+      if (compareEquality(ar.value, br.value, cache) === NOT_EQUAL) {
+        if (a.return) a.return();
+        if (b.return) b.return();
+        return NOT_EQUAL;
+      }
+    }
+  }
+
+  function compareIterableEquality(a, b, cache) {
+    return compareIteratorEquality(a[Symbol.iterator](), b[Symbol.iterator](), cache);
+  }
+
+  function cacheComparison(a, b, compare, cache) {
+    var result = compare(a, b, cache);
+    if (cache && (result === EQUAL || result === NOT_EQUAL)) {
+      setCache(cache, a, b, /** @type {EQUAL | NOT_EQUAL} */(result));
+    }
+    return result;
+  }
+
+  function fail() {
+    return NOT_EQUAL;
+  }
+
+  function setCache(cache, left, right, result) {
+    var otherCache;
+
+    otherCache = cache.get(left);
+    if (!otherCache) cache.set(left, otherCache = new Map());
+    otherCache.set(right, result);
+
+    otherCache = cache.get(right);
+    if (!otherCache) cache.set(right, otherCache = new Map());
+    otherCache.set(left, result);
+  }
+
+  function getCache(cache, left, right) {
+    var otherCache;
+    var result;
+
+    otherCache = cache.get(left);
+    result = otherCache && otherCache.get(right);
+    if (result) return result;
+
+    otherCache = cache.get(right);
+    result = otherCache && otherCache.get(left);
+    if (result) return result;
+
+    return UNKNOWN;
+  }
+
+  return deepEqual;
+})();
index 9078bb6..a4f9e56 100644 (file)
-M harness/assert.js
-M harness/compareArray.js
 M harness/deepEqual.js
-D harness/types.d.ts
-A test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-1.js
-A test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js
-M test/built-ins/Promise/executor-function-nonconstructor.js
-A test/built-ins/Proxy/has/call-in-prototype.js
-M test/built-ins/Proxy/set/call-parameters-prototype-dunder-proto.js
-M test/built-ins/Proxy/set/call-parameters-prototype.js
+A test/built-ins/AggregateError/errors-iterabletolist-failures.js
+A test/built-ins/AggregateError/errors-iterabletolist.js
+A test/built-ins/AggregateError/length.js
+A test/built-ins/AggregateError/message-method-prop-cast.js
+A test/built-ins/AggregateError/message-method-prop.js
+A test/built-ins/AggregateError/message-tostring-abrupt-symbol.js
+A test/built-ins/AggregateError/message-tostring-abrupt.js
+A test/built-ins/AggregateError/message-undefined-no-prop.js
+A test/built-ins/AggregateError/name.js
+A test/built-ins/AggregateError/newtarget-proto-custom.js
+A test/built-ins/AggregateError/newtarget-proto-fallback.js
+A test/built-ins/AggregateError/newtarget-proto.js
+A test/built-ins/AggregateError/prop-desc.js
+A test/built-ins/AggregateError/proto.js
+A test/built-ins/AggregateError/prototype/constructor.js
+A test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js
+A test/built-ins/AggregateError/prototype/errors/invoked-as-func.js
+A test/built-ins/AggregateError/prototype/errors/length.js
+A test/built-ins/AggregateError/prototype/errors/name.js
+A test/built-ins/AggregateError/prototype/errors/prop-desc.js
+A test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js
+A test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js
+A test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js
+A test/built-ins/AggregateError/prototype/errors/this-is-not-object.js
+A test/built-ins/AggregateError/prototype/message.js
+A test/built-ins/AggregateError/prototype/name.js
+A test/built-ins/AggregateError/prototype/prop-desc.js
+A test/built-ins/AggregateError/prototype/proto.js
+A test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js
+A test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js
+M test/built-ins/Array/prototype/flatMap/this-value-ctor-object-species-bad-throws.js
+M test/built-ins/Atomics/add/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/and/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/compareExchange/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/exchange/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/or/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/store/bigint/nonshared-int-views.js
+M test/built-ins/Atomics/sub/bigint/nonshared-int-views.js
+A test/built-ins/Error/prototype/toString/invalid-receiver.js
+A test/built-ins/Error/prototype/toString/undefined-props.js
+M test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-prevented-with-unregister.js
+A test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js
+D test/built-ins/FinalizationGroup/prototype/cleanupSome/iterator-dynamic.js
+M test/built-ins/FinalizationGroup/prototype/register/holdings-same-as-target.js
+M test/built-ins/FinalizationGroup/prototype/register/return-undefined-register-itself.js
+M test/built-ins/FinalizationGroup/prototype/register/unregisterToken-same-as-holdings-and-target.js
+A test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js
+M test/built-ins/FinalizationGroup/target-not-callable-throws.js
+M test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js
+A test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js
+A test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js
+A test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js
+A test/built-ins/JSON/parse/reviver-call-order.js
+A test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js
+A test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js
+A test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js
+A test/built-ins/JSON/parse/reviver-wrapper.js
+A test/built-ins/JSON/stringify/property-order.js
+A test/built-ins/Object/entries/return-order.js
+A test/built-ins/Object/freeze/throws-when-false.js
+A test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js
+A test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js
+A test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js
+A test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js
+M test/built-ins/Object/getOwnPropertySymbols/length.js
+M test/built-ins/Object/getOwnPropertySymbols/name.js
+M test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-with-description.js
+M test/built-ins/Object/getOwnPropertySymbols/object-contains-symbol-property-without-description.js
+A test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-absent-not-configurable-string-key.js
+A test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-duplicate-string-entry.js
+A test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-absent-string-key.js
+A test/built-ins/Object/getOwnPropertySymbols/proxy-invariant-not-extensible-extra-string-key.js
+M test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-2.js
+A test/built-ins/Object/keys/proxy-non-enumerable-prop-invariant-3.js
+A test/built-ins/Object/keys/return-order.js
+A test/built-ins/Object/preventExtensions/throws-when-false.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A1.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A10.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A11.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A12.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A13.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A6.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A7.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A8.js
+D test/built-ins/Object/prototype/isPrototypeOf/S15.2.4.6_A9.js
+A test/built-ins/Object/prototype/isPrototypeOf/arg-is-proxy.js
+A test/built-ins/Object/prototype/isPrototypeOf/builtin.js
+A test/built-ins/Object/prototype/isPrototypeOf/length.js
+M test/built-ins/Object/prototype/isPrototypeOf/name.js
+A test/built-ins/Object/prototype/isPrototypeOf/null-this-and-object-arg-throws.js
+A test/built-ins/Object/prototype/isPrototypeOf/null-this-and-primitive-arg-returns-false.js
+A test/built-ins/Object/prototype/isPrototypeOf/this-value-is-in-prototype-chain-of-arg.js
+A test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-object-arg-throws.js
+A test/built-ins/Object/prototype/isPrototypeOf/undefined-this-and-primitive-arg-returns-false.js
+A test/built-ins/Object/seal/throws-when-false.js
+A test/built-ins/Object/values/return-order.js
+A test/built-ins/Proxy/has/call-in-prototype-index.js
+M test/built-ins/Proxy/has/call-in-prototype.js
+M test/built-ins/Proxy/ownKeys/call-parameters-object-keys.js
+A test/built-ins/Proxy/set/call-parameters-prototype-index.js
+M test/built-ins/Reflect/preventExtensions/target-is-not-object-throws.js
 M test/built-ins/RegExp/match-indices/indices-array-element.js
 M test/built-ins/RegExp/match-indices/indices-array-matched.js
 M test/built-ins/RegExp/match-indices/indices-array-non-unicode-match.js
@@ -16,94 +108,356 @@ M test/built-ins/RegExp/match-indices/indices-array-unicode-match.js
 M test/built-ins/RegExp/match-indices/indices-array-unicode-property-names.js
 M test/built-ins/RegExp/match-indices/indices-array-unmatched.js
 M test/built-ins/RegExp/match-indices/indices-array.js
-M test/built-ins/RegExp/match-indices/indices-groups-object-undefined.js
 M test/built-ins/RegExp/match-indices/indices-groups-object-unmatched.js
 M test/built-ins/RegExp/match-indices/indices-groups-object.js
 M test/built-ins/RegExp/match-indices/indices-groups-properties.js
 M test/built-ins/RegExp/match-indices/indices-property.js
-M test/built-ins/String/prototype/matchAll/flags-undefined-throws.js
-M test/built-ins/String/prototype/matchAll/regexp-get-matchAll-throws.js
-M test/built-ins/String/prototype/matchAll/regexp-matchAll-is-undefined-or-null.js
-M test/built-ins/String/prototype/matchAll/regexp-matchAll-throws.js
-M test/built-ins/String/prototype/matchAll/regexp-prototype-get-matchAll-throws.js
-M test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-invocation.js
-M test/built-ins/String/prototype/matchAll/regexp-prototype-matchAll-throws.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0024.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0026.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0027.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x003C.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024-0x0060.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024N.js
+A test/built-ins/String/prototype/replaceAll/getSubstitution-0x0024NN.js
+A test/built-ins/String/prototype/replaceAll/length.js
+A test/built-ins/String/prototype/replaceAll/name.js
+A test/built-ins/String/prototype/replaceAll/replaceAll.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-call-abrupt.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-call-each-match-position.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-call-matching-empty.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-call-skip-no-match.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-call-tostring-abrupt.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-fn-skip-toString.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-tostring-abrupt.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-value-replaces-string.js
+A test/built-ins/String/prototype/replaceAll/replaceValue-value-tostring.js
+A test/built-ins/String/prototype/replaceAll/searchValue-empty-string-this-empty-string.js
+A test/built-ins/String/prototype/replaceAll/searchValue-empty-string.js
+A test/built-ins/String/prototype/replaceAll/searchValue-flags-no-g-throws.js
+A test/built-ins/String/prototype/replaceAll/searchValue-flags-null-undefined-throws.js
+A test/built-ins/String/prototype/replaceAll/searchValue-flags-toString-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-get-flags-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-isRegExp-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replace-method-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call-fn.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replacer-RegExp-call.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replacer-before-tostring.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replacer-call-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-replacer-call.js
+A test/built-ins/String/prototype/replaceAll/searchValue-tostring-abrupt.js
+A test/built-ins/String/prototype/replaceAll/searchValue-tostring-regexp.js
+A test/built-ins/String/prototype/replaceAll/this-is-null-throws.js
+A test/built-ins/String/prototype/replaceAll/this-is-undefined-throws.js
+A test/built-ins/String/prototype/replaceAll/this-tostring-abrupt.js
+A test/built-ins/String/prototype/replaceAll/this-tostring.js
+M test/built-ins/TypedArray/from/mapfn-is-not-callable.js
+M test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length-throws.js
+M test/built-ins/TypedArray/prototype/slice/BigInt/speciesctor-get-species-custom-ctor-length.js
+M test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length-throws.js
+M test/built-ins/TypedArray/prototype/slice/speciesctor-get-species-custom-ctor-length.js
+M test/built-ins/TypedArrayConstructors/from/nan-conversion.js
+M test/built-ins/TypedArrayConstructors/from/new-instance-from-zero.js
+M test/built-ins/TypedArrayConstructors/of/BigInt/inherited.js
+M test/built-ins/TypedArrayConstructors/of/inherited.js
+M test/built-ins/WeakRef/prototype-from-newtarget-abrupt.js
 M test/harness/deepEqual-array.js
 M test/harness/deepEqual-circular.js
 M test/harness/deepEqual-deep.js
 M test/harness/deepEqual-mapset.js
 M test/harness/deepEqual-object.js
-A test/intl402/DateTimeFormat/constructor-calendar-numberingSystem-order.js
-A test/intl402/DateTimeFormat/prototype/formatRangeToParts/pattern-on-calendar.js
-A test/intl402/DateTimeFormat/prototype/formatToParts/pattern-on-calendar.js
-A test/intl402/DateTimeFormat/prototype/formatToParts/related-year.js
-A test/intl402/ListFormat/constructor/constructor/proto-from-ctor-realm.js
-M test/intl402/ListFormat/prototype/format/branding.js
-M test/intl402/ListFormat/prototype/format/en-us-default.js
-M test/intl402/ListFormat/prototype/format/en-us-disjunction.js
-M test/intl402/ListFormat/prototype/format/en-us-narrow.js
-M test/intl402/ListFormat/prototype/format/en-us-short.js
-M test/intl402/ListFormat/prototype/format/en-us-unit.js
-M test/intl402/ListFormat/prototype/format/es-es-long.js
-M test/intl402/ListFormat/prototype/format/es-es-narrow.js
-M test/intl402/ListFormat/prototype/format/es-es-short.js
-A test/intl402/ListFormat/prototype/format/iterable-getiterator-throw.js
-A test/intl402/ListFormat/prototype/format/iterable-invalid.js
-A test/intl402/ListFormat/prototype/format/iterable-iteratorclose.js
-A test/intl402/ListFormat/prototype/format/iterable-iteratorstep-throw.js
-A test/intl402/ListFormat/prototype/format/iterable-iteratorvalue-throw.js
-A test/intl402/ListFormat/prototype/format/iterable-undefined.js
-A test/intl402/ListFormat/prototype/format/iterable.js
-M test/intl402/ListFormat/prototype/format/length.js
-M test/intl402/ListFormat/prototype/format/name.js
-M test/intl402/ListFormat/prototype/format/prop-desc.js
-M test/intl402/ListFormat/prototype/formatToParts/branding.js
-M test/intl402/ListFormat/prototype/formatToParts/en-us-default.js
-M test/intl402/ListFormat/prototype/formatToParts/en-us-disjunction.js
-M test/intl402/ListFormat/prototype/formatToParts/en-us-narrow.js
-M test/intl402/ListFormat/prototype/formatToParts/en-us-short.js
-M test/intl402/ListFormat/prototype/formatToParts/en-us-unit.js
-M test/intl402/ListFormat/prototype/formatToParts/es-es-long.js
-M test/intl402/ListFormat/prototype/formatToParts/es-es-narrow.js
-M test/intl402/ListFormat/prototype/formatToParts/es-es-short.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-getiterator-throw.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-invalid.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-iteratorclose.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-iteratorstep-throw.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-iteratorvalue-throw.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable-undefined.js
-A test/intl402/ListFormat/prototype/formatToParts/iterable.js
-M test/intl402/ListFormat/prototype/formatToParts/length.js
-M test/intl402/ListFormat/prototype/formatToParts/name.js
-M test/intl402/ListFormat/prototype/formatToParts/prop-desc.js
-A test/intl402/Locale/proto-from-ctor-realm.js
-A test/intl402/NumberFormat/constructor-numberingSystem-order.js
-M test/intl402/NumberFormat/constructor-options-throwing-getters.js
-A test/intl402/RelativeTimeFormat/constructor/constructor/proto-from-ctor-realm.js
-A test/intl402/Segmenter/constructor/constructor/proto-from-ctor-realm.js
-A test/language/expressions/coalesce/abrupt-is-a-short-circuit.js
-A test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js
-A test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js
-A test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js
-A test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js
-A test/language/expressions/coalesce/chainable-if-parenthesis-covered-logical-and.js
-A test/language/expressions/coalesce/chainable-if-parenthesis-covered-logical-or.js
-A test/language/expressions/coalesce/chainable-with-bitwise-and.js
-A test/language/expressions/coalesce/chainable-with-bitwise-or.js
-A test/language/expressions/coalesce/chainable-with-bitwise-xor.js
-A test/language/expressions/coalesce/chainable.js
-A test/language/expressions/coalesce/follows-null.js
-A test/language/expressions/coalesce/follows-undefined.js
-A test/language/expressions/coalesce/short-circuit-number-0.js
-A test/language/expressions/coalesce/short-circuit-number-42.js
-A test/language/expressions/coalesce/short-circuit-number-empty-string.js
-A test/language/expressions/coalesce/short-circuit-number-false.js
-A test/language/expressions/coalesce/short-circuit-number-object.js
-A test/language/expressions/coalesce/short-circuit-number-string.js
-A test/language/expressions/coalesce/short-circuit-number-symbol.js
-A test/language/expressions/coalesce/short-circuit-number-true.js
-A test/language/expressions/coalesce/short-circuit-prevents-evaluation.js
-A test/language/expressions/coalesce/tco-pos-null.js
-A test/language/expressions/coalesce/tco-pos-undefined.js
-A test/language/expressions/conditional/coalesce-expr-ternary.js
-M test/language/statements/class/elements/private-field-is-visible-in-computed-properties.js
\ No newline at end of file
+A test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-dateStyle.js
+A test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-default.js
+A test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle-timeStyle.js
+M test/intl402/DateTimeFormat/prototype/resolvedOptions/hourCycle.js
+A test/intl402/DisplayNames/ctor-custom-get-prototype-poison-throws.js
+A test/intl402/DisplayNames/ctor-custom-prototype.js
+A test/intl402/DisplayNames/ctor-default-prototype.js
+A test/intl402/DisplayNames/instance-extensible.js
+A test/intl402/DisplayNames/length.js
+A test/intl402/DisplayNames/locales-invalid-throws.js
+A test/intl402/DisplayNames/locales-length-poison-throws.js
+A test/intl402/DisplayNames/locales-length-tolength-throws.js
+A test/intl402/DisplayNames/locales-symbol-length.js
+A test/intl402/DisplayNames/name.js
+A test/intl402/DisplayNames/options-fallback-abrupt-throws.js
+A test/intl402/DisplayNames/options-fallback-invalid-throws.js
+A test/intl402/DisplayNames/options-fallback-toString-abrupt-throws.js
+A test/intl402/DisplayNames/options-fallback-valid.js
+A test/intl402/DisplayNames/options-localeMatcher-abrupt-throws.js
+A test/intl402/DisplayNames/options-localeMatcher-invalid-throws.js
+A test/intl402/DisplayNames/options-localeMatcher-toString-abrupt-throws.js
+A test/intl402/DisplayNames/options-localeMatcher-valid.js
+A test/intl402/DisplayNames/options-null-throws.js
+A test/intl402/DisplayNames/options-random-properties-unchecked.js
+A test/intl402/DisplayNames/options-style-abrupt-throws.js
+A test/intl402/DisplayNames/options-style-invalid-throws.js
+A test/intl402/DisplayNames/options-style-toString-abrupt-throws.js
+A test/intl402/DisplayNames/options-style-valid.js
+A test/intl402/DisplayNames/options-type-abrupt-throws.js
+A test/intl402/DisplayNames/options-type-invalid-throws.js
+A test/intl402/DisplayNames/options-type-toString-abrupt-throws.js
+A test/intl402/DisplayNames/options-type-valid.js
+A test/intl402/DisplayNames/prop-desc.js
+A test/intl402/DisplayNames/proto-from-ctor-realm.js
+A test/intl402/DisplayNames/proto.js
+A test/intl402/DisplayNames/prototype/Symbol.toStringTag.js
+A test/intl402/DisplayNames/prototype/prop-desc.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/default-option-values.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/length.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/name.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/option-fallback.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/option-style.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/option-type.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/prop-desc.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/return-object.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/this-not-object-throws.js
+A test/intl402/DisplayNames/prototype/resolvedOptions/this-object-lacks-internal-throws.js
+A test/intl402/DisplayNames/undefined-newtarget-throws.js
+M test/language/destructuring/binding/syntax/property-list-single-name-bindings.js
+M test/language/expressions/addition/bigint-and-number.js
+M test/language/expressions/addition/bigint-arithmetic.js
+M test/language/expressions/addition/bigint-errors.js
+M test/language/expressions/addition/bigint-toprimitive.js
+M test/language/expressions/addition/bigint-wrapped-values.js
+A test/language/expressions/arrow-function/eval-var-scope-syntax-err.js
+M test/language/expressions/arrow-function/scope-param-elem-var-close.js
+M test/language/expressions/arrow-function/scope-param-elem-var-open.js
+M test/language/expressions/arrow-function/scope-param-rest-elem-var-close.js
+M test/language/expressions/arrow-function/scope-param-rest-elem-var-open.js
+D test/language/expressions/assignment/dstr/array-elem-nested-memberexpr-optchain-prop-ref.js
+D test/language/expressions/assignment/dstr/array-elem-put-obj-literal-optchain-prop-ref.js
+D test/language/expressions/assignment/dstr/obj-prop-elem-target-memberexpr-optchain-prop-ref.js
+D test/language/expressions/assignment/dstr/obj-prop-elem-target-obj-literal-optchain-prop-ref.js
+A test/language/expressions/async-arrow-function/eval-var-scope-syntax-err.js
+A test/language/expressions/async-function/named-eval-var-scope-syntax-err.js
+A test/language/expressions/async-function/nameless-eval-var-scope-syntax-err.js
+A test/language/expressions/async-generator/eval-var-scope-syntax-err.js
+A test/language/expressions/async-generator/named-eval-var-scope-syntax-err.js
+M test/language/expressions/bitwise-and/bigint-and-number.js
+M test/language/expressions/bitwise-and/bigint-errors.js
+M test/language/expressions/bitwise-and/bigint-non-primitive.js
+M test/language/expressions/bitwise-and/bigint-toprimitive.js
+M test/language/expressions/bitwise-and/bigint-wrapped-values.js
+M test/language/expressions/bitwise-not/bigint-non-primitive.js
+M test/language/expressions/bitwise-or/bigint-and-number.js
+M test/language/expressions/bitwise-or/bigint-errors.js
+M test/language/expressions/bitwise-or/bigint-non-primitive.js
+M test/language/expressions/bitwise-or/bigint-toprimitive.js
+M test/language/expressions/bitwise-or/bigint-wrapped-values.js
+M test/language/expressions/bitwise-xor/bigint-and-number.js
+M test/language/expressions/bitwise-xor/bigint-errors.js
+M test/language/expressions/bitwise-xor/bigint-non-primitive.js
+M test/language/expressions/bitwise-xor/bigint-toprimitive.js
+M test/language/expressions/bitwise-xor/bigint-wrapped-values.js
+A test/language/expressions/class/async-gen-method/eval-var-scope-syntax-err.js
+A test/language/expressions/class/async-gen-method-static/eval-var-scope-syntax-err.js
+A test/language/expressions/class/async-method/eval-var-scope-syntax-err.js
+A test/language/expressions/class/async-method-static/eval-var-scope-syntax-err.js
+A test/language/expressions/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js
+A test/language/expressions/class/gen-method/eval-var-scope-syntax-err.js
+A test/language/expressions/class/gen-method-static/eval-var-scope-syntax-err.js
+A test/language/expressions/class/method/eval-var-scope-syntax-err.js
+A test/language/expressions/class/method-static/eval-var-scope-syntax-err.js
+M test/language/expressions/coalesce/cannot-chain-head-with-logical-and.js
+M test/language/expressions/coalesce/cannot-chain-head-with-logical-or.js
+M test/language/expressions/coalesce/cannot-chain-tail-with-logical-and.js
+M test/language/expressions/coalesce/cannot-chain-tail-with-logical-or.js
+M test/language/expressions/delete/super-property.js
+M test/language/expressions/division/bigint-and-number.js
+M test/language/expressions/division/bigint-arithmetic.js
+M test/language/expressions/division/bigint-complex-infinity.js
+M test/language/expressions/division/bigint-errors.js
+M test/language/expressions/division/bigint-toprimitive.js
+M test/language/expressions/division/bigint-wrapped-values.js
+M test/language/expressions/does-not-equals/bigint-and-bigint.js
+M test/language/expressions/does-not-equals/bigint-and-boolean.js
+M test/language/expressions/does-not-equals/bigint-and-incomparable-primitive.js
+M test/language/expressions/does-not-equals/bigint-and-non-finite.js
+M test/language/expressions/does-not-equals/bigint-and-number-extremes.js
+M test/language/expressions/does-not-equals/bigint-and-number.js
+M test/language/expressions/does-not-equals/bigint-and-object.js
+M test/language/expressions/does-not-equals/bigint-and-string.js
+M test/language/expressions/equals/bigint-and-bigint.js
+M test/language/expressions/equals/bigint-and-boolean.js
+M test/language/expressions/equals/bigint-and-incomparable-primitive.js
+M test/language/expressions/equals/bigint-and-non-finite.js
+M test/language/expressions/equals/bigint-and-number-extremes.js
+M test/language/expressions/equals/bigint-and-number.js
+M test/language/expressions/equals/bigint-and-object.js
+M test/language/expressions/equals/bigint-and-string.js
+M test/language/expressions/exponentiation/bigint-and-number.js
+M test/language/expressions/exponentiation/bigint-arithmetic.js
+M test/language/expressions/exponentiation/bigint-errors.js
+M test/language/expressions/exponentiation/bigint-negative-exponent-throws.js
+M test/language/expressions/exponentiation/bigint-toprimitive.js
+M test/language/expressions/exponentiation/bigint-wrapped-values.js
+M test/language/expressions/exponentiation/bigint-zero-base-zero-exponent.js
+A test/language/expressions/function/eval-var-scope-syntax-err.js
+M test/language/expressions/function/scope-param-elem-var-close.js
+M test/language/expressions/function/scope-param-elem-var-open.js
+M test/language/expressions/function/scope-param-rest-elem-var-close.js
+M test/language/expressions/function/scope-param-rest-elem-var-open.js
+A test/language/expressions/generators/eval-var-scope-syntax-err.js
+M test/language/expressions/generators/scope-param-elem-var-close.js
+M test/language/expressions/generators/scope-param-elem-var-open.js
+M test/language/expressions/generators/scope-param-rest-elem-var-close.js
+M test/language/expressions/generators/scope-param-rest-elem-var-open.js
+M test/language/expressions/greater-than/bigint-and-bigint.js
+M test/language/expressions/greater-than/bigint-and-boolean.js
+M test/language/expressions/greater-than/bigint-and-incomparable-string.js
+M test/language/expressions/greater-than/bigint-and-non-finite.js
+M test/language/expressions/greater-than/bigint-and-number-extremes.js
+M test/language/expressions/greater-than/bigint-and-number.js
+M test/language/expressions/greater-than/bigint-and-symbol.js
+M test/language/expressions/greater-than-or-equal/bigint-and-bigint.js
+M test/language/expressions/greater-than-or-equal/bigint-and-incomparable-string.js
+M test/language/expressions/greater-than-or-equal/bigint-and-non-finite.js
+M test/language/expressions/greater-than-or-equal/bigint-and-number-extremes.js
+M test/language/expressions/greater-than-or-equal/bigint-and-number.js
+M test/language/expressions/greater-than-or-equal/bigint-and-string.js
+M test/language/expressions/left-shift/bigint-and-number.js
+M test/language/expressions/left-shift/bigint-errors.js
+M test/language/expressions/left-shift/bigint-non-primitive.js
+M test/language/expressions/left-shift/bigint-toprimitive.js
+M test/language/expressions/left-shift/bigint-wrapped-values.js
+M test/language/expressions/less-than/bigint-and-bigint.js
+M test/language/expressions/less-than/bigint-and-boolean.js
+M test/language/expressions/less-than/bigint-and-incomparable-string.js
+M test/language/expressions/less-than/bigint-and-non-finite.js
+M test/language/expressions/less-than/bigint-and-number-extremes.js
+M test/language/expressions/less-than/bigint-and-number.js
+M test/language/expressions/less-than-or-equal/bigint-and-bigint.js
+M test/language/expressions/less-than-or-equal/bigint-and-incomparable-string.js
+M test/language/expressions/less-than-or-equal/bigint-and-non-finite.js
+M test/language/expressions/less-than-or-equal/bigint-and-number-extremes.js
+M test/language/expressions/less-than-or-equal/bigint-and-number.js
+M test/language/expressions/less-than-or-equal/bigint-and-string.js
+M test/language/expressions/modulus/bigint-and-number.js
+M test/language/expressions/modulus/bigint-arithmetic.js
+M test/language/expressions/modulus/bigint-errors.js
+M test/language/expressions/modulus/bigint-modulo-zero.js
+M test/language/expressions/modulus/bigint-toprimitive.js
+M test/language/expressions/modulus/bigint-wrapped-values.js
+M test/language/expressions/multiplication/bigint-and-number.js
+M test/language/expressions/multiplication/bigint-arithmetic.js
+M test/language/expressions/multiplication/bigint-errors.js
+M test/language/expressions/multiplication/bigint-toprimitive.js
+M test/language/expressions/multiplication/bigint-wrapped-values.js
+A test/language/expressions/object/method-definition/async-gen-meth-eval-var-scope-syntax-err.js
+A test/language/expressions/object/method-definition/async-meth-eval-var-scope-syntax-err.js
+A test/language/expressions/object/method-definition/gen-meth-eval-var-scope-syntax-err.js
+A test/language/expressions/object/method-definition/meth-eval-var-scope-syntax-err.js
+M test/language/expressions/object/scope-gen-meth-param-elem-var-close.js
+M test/language/expressions/object/scope-gen-meth-param-elem-var-open.js
+M test/language/expressions/object/scope-gen-meth-param-rest-elem-var-close.js
+M test/language/expressions/object/scope-gen-meth-param-rest-elem-var-open.js
+M test/language/expressions/object/scope-meth-param-elem-var-close.js
+M test/language/expressions/object/scope-meth-param-elem-var-open.js
+M test/language/expressions/object/scope-meth-param-rest-elem-var-close.js
+M test/language/expressions/object/scope-meth-param-rest-elem-var-open.js
+A test/language/expressions/optional-chaining/iteration-statement-do.js
+A test/language/expressions/optional-chaining/iteration-statement-for-await-of.js
+A test/language/expressions/optional-chaining/iteration-statement-for-in.js
+A test/language/expressions/optional-chaining/iteration-statement-for-of-type-error.js
+A test/language/expressions/optional-chaining/iteration-statement-for.js
+A test/language/expressions/optional-chaining/iteration-statement-while.js
+A test/language/expressions/optional-chaining/new-target-optional-call.js
+A test/language/expressions/optional-chaining/optional-call-preserves-this.js
+A test/language/expressions/optional-chaining/super-property-optional-call.js
+M test/language/expressions/right-shift/bigint-and-number.js
+M test/language/expressions/right-shift/bigint-errors.js
+M test/language/expressions/right-shift/bigint-non-primitive.js
+M test/language/expressions/right-shift/bigint-toprimitive.js
+M test/language/expressions/right-shift/bigint-wrapped-values.js
+M test/language/expressions/strict-does-not-equals/bigint-and-bigint.js
+M test/language/expressions/strict-does-not-equals/bigint-and-boolean.js
+M test/language/expressions/strict-does-not-equals/bigint-and-incomparable-primitive.js
+M test/language/expressions/strict-does-not-equals/bigint-and-non-finite.js
+M test/language/expressions/strict-does-not-equals/bigint-and-number-extremes.js
+M test/language/expressions/strict-does-not-equals/bigint-and-number.js
+M test/language/expressions/strict-does-not-equals/bigint-and-object.js
+M test/language/expressions/strict-does-not-equals/bigint-and-string.js
+M test/language/expressions/strict-equals/bigint-and-bigint.js
+M test/language/expressions/strict-equals/bigint-and-boolean.js
+M test/language/expressions/strict-equals/bigint-and-incomparable-primitive.js
+M test/language/expressions/strict-equals/bigint-and-non-finite.js
+M test/language/expressions/strict-equals/bigint-and-number-extremes.js
+M test/language/expressions/strict-equals/bigint-and-number.js
+M test/language/expressions/strict-equals/bigint-and-object.js
+M test/language/expressions/strict-equals/bigint-and-string.js
+M test/language/expressions/subtraction/bigint-and-number.js
+M test/language/expressions/subtraction/bigint-arithmetic.js
+M test/language/expressions/subtraction/bigint-errors.js
+M test/language/expressions/subtraction/bigint-toprimitive.js
+M test/language/expressions/subtraction/bigint-wrapped-values.js
+A test/language/expressions/typeof/proxy.js
+M test/language/expressions/unary-minus/bigint-non-primitive.js
+M test/language/expressions/unary-plus/bigint-throws.js
+M test/language/expressions/unsigned-right-shift/bigint-and-number.js
+M test/language/expressions/unsigned-right-shift/bigint-errors.js
+M test/language/expressions/unsigned-right-shift/bigint-non-primitive.js
+M test/language/expressions/unsigned-right-shift/bigint-toprimitive.js
+M test/language/expressions/unsigned-right-shift/bigint-wrapped-values.js
+D test/language/function-code/each-param-has-own-non-shared-eval-scope.js
+D test/language/function-code/each-param-has-own-scope.js
+M test/language/function-code/eval-param-env-with-computed-key.js
+M test/language/function-code/eval-param-env-with-prop-initializer.js
+A test/language/statements/async-function/eval-var-scope-syntax-err.js
+A test/language/statements/async-generator/eval-var-scope-syntax-err.js
+A test/language/statements/class/async-gen-method/eval-var-scope-syntax-err.js
+A test/language/statements/class/async-gen-method-static/eval-var-scope-syntax-err.js
+A test/language/statements/class/async-method/eval-var-scope-syntax-err.js
+A test/language/statements/class/async-method-static/eval-var-scope-syntax-err.js
+M test/language/statements/class/definition/constructable-but-no-prototype.js
+M test/language/statements/class/definition/constructor-strict-by-default.js
+M test/language/statements/class/definition/getters-restricted-ids.js
+M test/language/statements/class/definition/implicit-constructor.js
+M test/language/statements/class/definition/invalid-extends.js
+M test/language/statements/class/definition/methods-named-eval-arguments.js
+M test/language/statements/class/definition/prototype-getter.js
+M test/language/statements/class/definition/prototype-property.js
+M test/language/statements/class/definition/setters-restricted-ids.js
+M test/language/statements/class/definition/side-effects-in-extends.js
+M test/language/statements/class/definition/side-effects-in-property-define.js
+M test/language/statements/class/definition/this-access-restriction-2.js
+M test/language/statements/class/definition/this-access-restriction.js
+M test/language/statements/class/definition/this-check-ordering.js
+A test/language/statements/class/elements/syntax/early-errors/grammar-private-field-optional-chaining.js
+A test/language/statements/class/gen-method/eval-var-scope-syntax-err.js
+A test/language/statements/class/gen-method-static/eval-var-scope-syntax-err.js
+A test/language/statements/class/method/eval-var-scope-syntax-err.js
+A test/language/statements/class/method-static/eval-var-scope-syntax-err.js
+M test/language/statements/class/name-binding/basic.js
+M test/language/statements/class/subclass/binding.js
+M test/language/statements/class/subclass/builtin-objects/RegExp/lastIndex.js
+M test/language/statements/class/subclass/builtin-objects/String/length.js
+M test/language/statements/class/subclass/builtin-objects/WeakMap/regular-subclassing.js
+M test/language/statements/class/subclass/builtin-objects/WeakMap/super-must-be-called.js
+M test/language/statements/class/subclass/builtin-objects/WeakSet/regular-subclassing.js
+M test/language/statements/class/subclass/builtin-objects/WeakSet/super-must-be-called.js
+M test/language/statements/class/subclass/builtins.js
+M test/language/statements/class/subclass/default-constructor-spread-override.js
+D test/language/statements/for-in/dstr/array-elem-nested-memberexpr-optchain-prop-ref.js
+D test/language/statements/for-in/dstr/array-elem-put-obj-literal-optchain-prop-ref.js
+D test/language/statements/for-in/dstr/obj-prop-elem-target-memberexpr-optchain-prop-ref.js
+D test/language/statements/for-in/dstr/obj-prop-elem-target-obj-literal-optchain-prop-ref.js
+M test/language/statements/for-in/identifier-let-allowed-as-lefthandside-expression-not-strict.js
+A test/language/statements/for-in/order-enumerable-shadowed.js
+A test/language/statements/for-in/order-property-added.js
+A test/language/statements/for-in/order-property-on-prototype.js
+A test/language/statements/for-in/order-simple-object.js
+D test/language/statements/for-of/dstr/array-elem-nested-memberexpr-optchain-prop-ref.js
+D test/language/statements/for-of/dstr/array-elem-put-obj-literal-optchain-prop-ref.js
+D test/language/statements/for-of/dstr/obj-prop-elem-target-memberexpr-optchain-prop-ref.js
+D test/language/statements/for-of/dstr/obj-prop-elem-target-obj-literal-optchain-prop-ref.js
+A test/language/statements/function/eval-var-scope-syntax-err.js
+M test/language/statements/function/scope-param-elem-var-close.js
+M test/language/statements/function/scope-param-elem-var-open.js
+M test/language/statements/function/scope-param-rest-elem-var-close.js
+M test/language/statements/function/scope-param-rest-elem-var-open.js
+A test/language/statements/generators/eval-var-scope-syntax-err.js
+M test/language/statements/generators/scope-param-elem-var-close.js
+M test/language/statements/generators/scope-param-elem-var-open.js
+M test/language/statements/generators/scope-param-rest-elem-var-close.js
+M test/language/statements/generators/scope-param-rest-elem-var-open.js
\ No newline at end of file
diff --git a/JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js b/JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist-failures.js
new file mode 100644 (file)
index 0000000..e1b44b4
--- /dev/null
@@ -0,0 +1,183 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Return abrupt completion from IterableToList(errors)
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  3. Let errorsList be ? IterableToList(errors).
+  4. Set O.[[AggregateErrors]] to errorsList.
+  ...
+  6. Return O.
+
+  Runtime Semantics: IterableToList ( items [ , method ] )
+
+  1. If method is present, then
+    ...
+  2. Else,
+    b. Let iteratorRecord be ? GetIterator(items, sync).
+  3. Let values be a new empty List.
+  4. Let next be true.
+  5. Repeat, while next is not false
+    a. Set next to ? IteratorStep(iteratorRecord).
+    b. If next is not false, then
+      i. Let nextValue be ? IteratorValue(next).
+      ii. Append nextValue to the end of the List values.
+  6. Return values.
+
+  GetIterator ( obj [ , hint [ , method ] ] )
+
+  ...
+  3. If method is not present, then
+    a. If hint is async, then
+      ...
+    b. Otherwise, set method to ? GetMethod(obj, @@iterator).
+  4. Let iterator be ? Call(method, obj).
+  5. If Type(iterator) is not Object, throw a TypeError exception.
+  6. Let nextMethod be ? GetV(iterator, "next").
+  ...
+  8. Return iteratorRecord.
+features: [AggregateError, Symbol.iterator]
+---*/
+
+var case1 = {
+  get [Symbol.iterator]() {
+    throw new Test262Error();
+  }
+};
+
+assert.throws(Test262Error, () => {
+  var obj = new AggregateError(case1);
+}, 'get Symbol.iterator');
+
+var case2 = {
+  get [Symbol.iterator]() {
+    return {};
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case2);
+}, 'GetMethod(obj, @@iterator) abrupts from non callable');
+
+var case3 = {
+  [Symbol.iterator]() {
+    throw new Test262Error();
+  }
+};
+
+assert.throws(Test262Error, () => {
+  var obj = new AggregateError(case3);
+}, 'Abrupt from @@iterator call');
+
+var case4 = {
+  [Symbol.iterator]() {
+    return 'a string';
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case4);
+}, '@@iterator call returns a string');
+
+var case5 = {
+  [Symbol.iterator]() {
+    return undefined;
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case5);
+}, '@@iterator call returns undefined');
+
+var case6 = {
+  [Symbol.iterator]() {
+    return {
+      get next() {
+        throw new Test262Error();
+      }
+    }
+  }
+};
+
+assert.throws(Test262Error, () => {
+  var obj = new AggregateError(case6);
+}, 'GetV(iterator, next) returns abrupt');
+
+var case7 = {
+  [Symbol.iterator]() {
+    return {
+      get next() {
+        return {};
+      }
+    }
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case7);
+}, 'GetV(iterator, next) returns a non callable');
+
+var case8 = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        throw new Test262Error();
+      }
+    }
+  }
+};
+
+assert.throws(Test262Error, () => {
+  var obj = new AggregateError(case8);
+}, 'abrupt from iterator.next()');
+
+var case9 = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        return undefined;
+      }
+    }
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case9);
+}, 'iterator.next() returns undefined');
+
+var case10 = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        return 'a string';
+      }
+    }
+  }
+};
+
+assert.throws(TypeError, () => {
+  var obj = new AggregateError(case10);
+}, 'iterator.next() returns a string');
+
+var case11 = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        return {
+          get done() {
+            throw new Test262Error();
+          }
+        };
+      }
+    }
+  }
+};
+
+assert.throws(Test262Error, () => {
+  var obj = new AggregateError(case11);
+}, 'IteratorCompete abrupts getting the done property');
diff --git a/JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist.js b/JSTests/test262/test/built-ins/AggregateError/errors-iterabletolist.js
new file mode 100644 (file)
index 0000000..8cd4543
--- /dev/null
@@ -0,0 +1,69 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Iteration of errors
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  3. Let errorsList be ? IterableToList(errors).
+  4. Set O.[[AggregateErrors]] to errorsList.
+  ...
+  6. Return O.
+
+  Runtime Semantics: IterableToList ( items [ , method ] )
+
+  1. If method is present, then
+    ...
+  2. Else,
+    b. Let iteratorRecord be ? GetIterator(items, sync).
+  3. Let values be a new empty List.
+  4. Let next be true.
+  5. Repeat, while next is not false
+    a. Set next to ? IteratorStep(iteratorRecord).
+    b. If next is not false, then
+      i. Let nextValue be ? IteratorValue(next).
+      ii. Append nextValue to the end of the List values.
+  6. Return values.
+
+  GetIterator ( obj [ , hint [ , method ] ] )
+
+  ...
+  3. If method is not present, then
+    a. If hint is async, then
+      ...
+    b. Otherwise, set method to ? GetMethod(obj, @@iterator).
+  4. Let iterator be ? Call(method, obj).
+  5. If Type(iterator) is not Object, throw a TypeError exception.
+  6. Let nextMethod be ? GetV(iterator, "next").
+  ...
+  8. Return iteratorRecord.
+features: [AggregateError, Symbol.iterator]
+includes: [compareArray.js]
+---*/
+
+var count = 0;
+var values = [];
+var case1 = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        count += 1;
+        return {
+          done: count === 3,
+          get value() {
+            values.push(count)
+          }
+        };
+      }
+    };
+  }
+};
+
+new AggregateError(case1);
+
+assert.sameValue(count, 3);
+assert.compareArray(values, [1, 2]);
diff --git a/JSTests/test262/test/built-ins/AggregateError/length.js b/JSTests/test262/test/built-ins/AggregateError/length.js
new file mode 100644 (file)
index 0000000..d17d715
--- /dev/null
@@ -0,0 +1,32 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: AggregateError.length property descriptor
+info: |
+  AggregateError ( errors, message )
+
+  17 ECMAScript Standard Built-in Objects
+
+  Every built-in function object, including constructors, has a length
+  property whose value is an integer. Unless otherwise specified, this
+  value is equal to the largest number of named arguments shown in the
+  subclause headings for the function description. Optional parameters
+  (which are indicated with brackets: [ ]) or rest parameters (which
+  are shown using the form «...name») are not included in the default
+  argument count.
+
+  Unless otherwise specified, the length property of a built-in
+  function object has the attributes { [[Writable]]: false,
+  [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+verifyProperty(AggregateError, 'length', {
+  value: 2,
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/message-method-prop-cast.js b/JSTests/test262/test/built-ins/AggregateError/message-method-prop-cast.js
new file mode 100644 (file)
index 0000000..2561839
--- /dev/null
@@ -0,0 +1,69 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Cast ToString values of message in the created method property
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  5. If message is not undefined, then
+    a. Let msg be ? ToString(message).
+    b. Perform ! CreateMethodProperty(O, "message", msg).
+  6. Return O.
+
+  CreateMethodProperty ( O, P, V )
+
+  ...
+  3. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
+  4. Return ? O.[[DefineOwnProperty]](P, newDesc).
+features: [AggregateError]
+includes: [propertyHelper.js]
+---*/
+
+var case1 = new AggregateError([], 42);
+
+verifyProperty(case1, 'message', {
+  value: '42',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
+
+var case2 = new AggregateError([], false);
+
+verifyProperty(case2, 'message', {
+  value: 'false',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
+
+var case3 = new AggregateError([], true);
+
+verifyProperty(case3, 'message', {
+  value: 'true',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
+
+var case4 = new AggregateError([], { toString() { return 'string'; }});
+
+verifyProperty(case4, 'message', {
+  value: 'string',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
+
+var case5 = new AggregateError([], null);
+
+verifyProperty(case5, 'message', {
+  value: 'null',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/message-method-prop.js b/JSTests/test262/test/built-ins/AggregateError/message-method-prop.js
new file mode 100644 (file)
index 0000000..14759ab
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Creates a method property for message
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  5. If message is not undefined, then
+    a. Let msg be ? ToString(message).
+    b. Perform ! CreateMethodProperty(O, "message", msg).
+  6. Return O.
+
+  CreateMethodProperty ( O, P, V )
+
+  ...
+  3. Let newDesc be the PropertyDescriptor { [[Value]]: V, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true }.
+  4. Return ? O.[[DefineOwnProperty]](P, newDesc).
+features: [AggregateError]
+includes: [propertyHelper.js]
+---*/
+
+var obj = new AggregateError([], '42');
+
+verifyProperty(obj, 'message', {
+  value: '42',
+  writable: true,
+  enumerable: false,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js b/JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt-symbol.js
new file mode 100644 (file)
index 0000000..e2c1323
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Abrupt completions of ToString(Symbol message)
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  5. If message is not undefined, then
+    a. Let msg be ? ToString(message).
+    b. Perform ! CreateMethodProperty(O, "message", msg).
+  6. Return O.
+features: [AggregateError, Symbol, Symbol.toPrimitive]
+---*/
+
+var case1 = Symbol();
+
+assert.throws(TypeError, () => {
+  new AggregateError([], case1);
+}, 'toPrimitive');
+
+var case2 = {
+  [Symbol.toPrimitive]() {
+    return Symbol();
+  },
+  toString() {
+    throw new Test262Error();
+  },
+  valueOf() {
+    throw new Test262Error();
+  }
+};
+
+assert.throws(TypeError, () => {
+  new AggregateError([], case2);
+}, 'from ToPrimitive');
diff --git a/JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt.js b/JSTests/test262/test/built-ins/AggregateError/message-tostring-abrupt.js
new file mode 100644 (file)
index 0000000..d018d28
--- /dev/null
@@ -0,0 +1,59 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Abrupt completions of ToString(message)
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  5. If message is not undefined, then
+    a. Let msg be ? ToString(message).
+    b. Perform ! CreateMethodProperty(O, "message", msg).
+  6. Return O.
+features: [AggregateError, Symbol.toPrimitive]
+---*/
+
+var case1 = {
+  [Symbol.toPrimitive]() {
+    throw new Test262Error();
+  },
+  toString() {
+    throw 'toString called';
+  },
+  valueOf() {
+    throw 'valueOf called';
+  }
+};
+
+assert.throws(Test262Error, () => {
+  new AggregateError([], case1);
+}, 'toPrimitive');
+
+var case2 = {
+  [Symbol.toPrimitive]: undefined,
+  toString() {
+    throw new Test262Error();
+  },
+  valueOf() {
+    throw 'valueOf called';
+  }
+};
+
+assert.throws(Test262Error, () => {
+  new AggregateError([], case2);
+}, 'toString');
+
+var case3 = {
+  [Symbol.toPrimitive]: undefined,
+  toString: undefined,
+  valueOf() {
+    throw new Test262Error();
+  }
+};
+
+assert.throws(Test262Error, () => {
+  new AggregateError([], case3);
+}, 'valueOf');
diff --git a/JSTests/test262/test/built-ins/AggregateError/message-undefined-no-prop.js b/JSTests/test262/test/built-ins/AggregateError/message-undefined-no-prop.js
new file mode 100644 (file)
index 0000000..6d56ac6
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  If message is undefined, no property will be set to the new instance
+info: |
+  AggregateError ( errors, message )
+
+  ...
+  5. If message is not undefined, then
+    a. Let msg be ? ToString(message).
+    b. Perform ! CreateMethodProperty(O, "message", msg).
+  6. Return O.
+features: [AggregateError]
+---*/
+
+var case1 = new AggregateError([], undefined);
+
+assert.sameValue(
+  Object.prototype.hasOwnProperty.call(case1, 'message'),
+  false,
+  'explicit'
+);
+
+var case2 = new AggregateError([]);
+
+assert.sameValue(
+  Object.prototype.hasOwnProperty.call(case2, 'message'),
+  false,
+  'implicit'
+);
diff --git a/JSTests/test262/test/built-ins/AggregateError/name.js b/JSTests/test262/test/built-ins/AggregateError/name.js
new file mode 100644 (file)
index 0000000..9ee3af0
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: AggregateError.name property descriptor
+info: |
+  Properties of the AggregateError Constructor
+
+  - has a name property whose value is the String value "AggregateError".
+
+  17 ECMAScript Standard Built-in Objects
+
+  Every built-in function object, including constructors, that is not
+  identified as an anonymous function has a name property whose value
+  is a String. Unless otherwise specified, this value is the name that
+  is given to the function in this specification. For functions that
+  are specified as properties of objects, the name value is the
+  property name string used to access the function. [...]
+
+  Unless otherwise specified, the name property of a built-in function
+  object, if it exists, has the attributes { [[Writable]]: false,
+  [[Enumerable]]: false, [[Configurable]]: true }.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+verifyProperty(AggregateError, 'name', {
+  value: 'AggregateError',
+  writable: false,
+  enumerable: false,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/newtarget-proto-custom.js b/JSTests/test262/test/built-ins/AggregateError/newtarget-proto-custom.js
new file mode 100644 (file)
index 0000000..ddd365f
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Use a custom NewTarget prototype
+info: |
+  AggregateError ( errors, message )
+
+  1. If NewTarget is undefined, let newTarget be the active function object, else let newTarget be NewTarget.
+  2. Let O be ? OrdinaryCreateFromConstructor(newTarget, "%AggregateError.prototype%", « [[ErrorData]], [[AggregateErrors]] »).
+  ...
+  6. Return O.
+
+  OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )
+
+  ...
+  2. Let proto be ? GetPrototypeFromConstructor(constructor, intrinsicDefaultProto).
+  3. Return ObjectCreate(proto, internalSlotsList).
+
+  GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )
+
+  ...
+  3. Let proto be ? Get(constructor, "prototype").
+  4. If Type(proto) is not Object, then
+    a. Let realm be ? GetFunctionRealm(constructor).
+    b. Set proto to realm's intrinsic object named intrinsicDefaultProto.
+  Return proto.
+features: [AggregateError]
+---*/
+
+var custom = { x: 42 };
+var newt = new Proxy(function() {}, {
+  get(t, p) {
+    if (p === 'prototype') {
+      return custom;
+    }
+
+    return t[p];
+  }
+});
+
+var obj = Reflect.construct(AggregateError, [[]], newt);
+
+assert.sameValue(Object.getPrototypeOf(obj), custom);
+assert.sameValue(obj.x, 42);
diff --git a/JSTests/test262/test/built-ins/AggregateError/newtarget-proto-fallback.js b/JSTests/test262/test/built-ins/AggregateError/newtarget-proto-fallback.js
new file mode 100644 (file)
index 0000000..9f921ab
--- /dev/null
@@ -0,0 +1,62 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Fallback to the NewTarget's [[Prototype]] if the prototype property is not an object
+info: |
+  AggregateError ( errors, message )
+
+  1. If NewTarget is undefined, let newTarget be the active function object, else let newTarget be NewTarget.
+  2. Let O be ? OrdinaryCreateFromConstructor(newTarget, "%AggregateError.prototype%", « [[ErrorData]], [[AggregateErrors]] »).
+  ...
+  6. Return O.
+
+  OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )
+
+  ...
+  2. Let proto be ? GetPrototypeFromConstructor(constructor, intrinsicDefaultProto).
+  3. Return ObjectCreate(proto, internalSlotsList).
+
+  GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )
+
+  ...
+  3. Let proto be ? Get(constructor, "prototype").
+  4. If Type(proto) is not Object, then
+    a. Let realm be ? GetFunctionRealm(constructor).
+    b. Set proto to realm's intrinsic object named intrinsicDefaultProto.
+  Return proto.
+features: [AggregateError, Symbol]
+---*/
+
+var custom = { x: 42 };
+var ctor = function() {};
+Object.setPrototypeOf(ctor, custom);
+
+var values = [
+  undefined,
+  null,
+  42,
+  false,
+  true,
+  Symbol(),
+  'string'
+];
+
+for (const value of values) {
+  const newt = new Proxy(ctor, {
+    get(t, p) {
+      if (p === 'prototype') {
+        return value;
+      }
+
+      return t[p];
+    }
+  });
+
+  const obj = Reflect.construct(AggregateError, [[]], newt);
+
+  assert.sameValue(Object.getPrototypeOf(obj), custom);
+  assert.sameValue(obj.x, 42);
+}
diff --git a/JSTests/test262/test/built-ins/AggregateError/newtarget-proto.js b/JSTests/test262/test/built-ins/AggregateError/newtarget-proto.js
new file mode 100644 (file)
index 0000000..1e24e93
--- /dev/null
@@ -0,0 +1,35 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Default prototype is the %AggregateError.prototype%"
+info: |
+  AggregateError ( errors, message )
+
+  1. If NewTarget is undefined, let newTarget be the active function object, else let newTarget be NewTarget.
+  2. Let O be ? OrdinaryCreateFromConstructor(newTarget, "%AggregateError.prototype%", « [[ErrorData]], [[AggregateErrors]] »).
+  ...
+  6. Return O.
+
+  OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )
+
+  ...
+  2. Let proto be ? GetPrototypeFromConstructor(constructor, intrinsicDefaultProto).
+  3. Return ObjectCreate(proto, internalSlotsList).
+
+  GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )
+
+  ...
+  3. Let proto be ? Get(constructor, "prototype").
+  4. If Type(proto) is not Object, then
+    a. Let realm be ? GetFunctionRealm(constructor).
+    b. Set proto to realm's intrinsic object named intrinsicDefaultProto.
+  Return proto.
+features: [AggregateError]
+---*/
+
+var obj = new AggregateError([]);
+
+assert.sameValue(Object.getPrototypeOf(obj), AggregateError.prototype);
diff --git a/JSTests/test262/test/built-ins/AggregateError/prop-desc.js b/JSTests/test262/test/built-ins/AggregateError/prop-desc.js
new file mode 100644 (file)
index 0000000..6637e63
--- /dev/null
@@ -0,0 +1,26 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error
+description: >
+  Property descriptor of AggregateError
+info: |
+  The AggregateError Object
+
+  ECMAScript Standard Built-in Objects:
+
+  Every other data property described in clauses 18 through 26 and in Annex B.2
+  has the attributes { [[Writable]]: true, [[Enumerable]]: false,
+  [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+assert.sameValue(typeof AggregateError, 'function');
+
+verifyProperty(this, 'AggregateError', {
+  enumerable: false,
+  writable: true,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/proto.js b/JSTests/test262/test/built-ins/AggregateError/proto.js
new file mode 100644 (file)
index 0000000..81bb99a
--- /dev/null
@@ -0,0 +1,16 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: The prototype of AggregateError constructor is Error
+esid: sec-aggregate-error
+info: |
+  Properties of the AggregateError Constructor
+
+  - has a [[Prototype]] internal slot whose value is the intrinsic object %Error%.
+features: [AggregateError]
+---*/
+
+var proto = Object.getPrototypeOf(AggregateError);
+
+assert.sameValue(proto, Error);
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/constructor.js b/JSTests/test262/test/built-ins/AggregateError/prototype/constructor.js
new file mode 100644 (file)
index 0000000..69aa8ab
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error.prototype.constructor
+description: >
+  The `AggregateError.prototype.constructor` property descriptor.
+info: |
+  The initial value of AggregateError.prototype.constructor is the intrinsic
+  object %AggregateError%.
+
+  17 ECMAScript Standard Built-in Objects:
+
+  Every other data property described (...) has the attributes { [[Writable]]: true,
+    [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+verifyProperty(AggregateError.prototype, 'constructor', {
+  value: AggregateError,
+  enumerable: false,
+  writable: true,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-accessor.js
new file mode 100644 (file)
index 0000000..6c2cd1f
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Requires this value to have a [[AggregateErrorData]] internal slot
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  2. If Type(E) is not Object, throw a TypeError exception.
+  3. If E does not have an [[ErrorData]] internal slot, throw a TypeError exception.
+  4. If E does not have an [[AggregateErrors]] internal slot, throw a TypeError exception.
+  5. Return ! CreateArrayFromList(E.[[AggregateErrors]]).
+features: [AggregateError]
+---*/
+
+assert.throws(TypeError, function() {
+  AggregateError.prototype.errors;
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/invoked-as-func.js
new file mode 100644 (file)
index 0000000..625b7e4
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Throws a TypeError exception when invoked as a function
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  2. If Type(E) is not Object, throw a TypeError exception.
+  3. If E does not have an [[ErrorData]] internal slot, throw a TypeError exception.
+  4. If E does not have an [[AggregateErrors]] internal slot, throw a TypeError exception.
+  5. Return ! CreateArrayFromList(E.[[AggregateErrors]]).
+features: [AggregateError]
+---*/
+
+var getter = Object.getOwnPropertyDescriptor(
+  AggregateError.prototype, 'errors'
+).get;
+
+assert.throws(TypeError, function() {
+  getter();
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/length.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/length.js
new file mode 100644 (file)
index 0000000..9d603b4
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Property descriptor of (get AggregateError.prototype.errors).length
+info: |
+  get AggregateError.prototype.errors
+
+  17 ECMAScript Standard Built-in Objects:
+    Every built-in Function object, including constructors, has a length
+    property whose value is an integer. Unless otherwise specified, this
+    value is equal to the largest number of named arguments shown in the
+    subclause headings for the function description, including optional
+    parameters. However, rest parameters shown using the form “...name”
+    are not included in the default argument count.
+
+    Unless otherwise specified, the length property of a built-in Function
+    object has the attributes { [[Writable]]: false, [[Enumerable]]: false,
+    [[Configurable]]: true }.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(AggregateError.prototype, 'errors');
+
+verifyProperty(desc.get, 'length', {
+  value: 0,
+  enumerable: false,
+  writable: false,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/name.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/name.js
new file mode 100644 (file)
index 0000000..8a2ee17
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Property descriptor of (get AggregateError.prototype.errors).name
+info: |
+  get AggregateError.prototype.errors
+
+  17 ECMAScript Standard Built-in Objects
+
+  Functions that are specified as get or set accessor functions of built-in
+  properties have "get " or "set " prepended to the property name string.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(
+  AggregateError.prototype, 'errors'
+);
+
+verifyProperty(desc.get, 'name', {
+  value: 'get errors',
+  enumerable: false,
+  writable: false,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/prop-desc.js
new file mode 100644 (file)
index 0000000..d4334b9
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  "errors" property of AggregateError.prototype
+info: |
+  AggregateError.prototype.errors is an accessor property whose set accessor
+  function is undefined.
+
+  Section 17: Every accessor property described in clauses 18 through 26 and in
+  Annex B.2 has the attributes {[[Enumerable]]: false, [[Configurable]]: true }
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+var desc = Object.getOwnPropertyDescriptor(AggregateError.prototype, 'errors');
+
+assert.sameValue(desc.set, undefined);
+assert.sameValue(typeof desc.get, 'function');
+
+verifyProperty(AggregateError.prototype, 'errors', {
+  enumerable: false,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-from-iterable-errors.js
new file mode 100644 (file)
index 0000000..56c4af1
--- /dev/null
@@ -0,0 +1,51 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Return a new array from the [[AggregateErrors]] list, after an iterable errors arg.
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  ...
+  5. Return ! CreateArrayFromList(E.[[AggregateErrors]]).
+includes: [compareArray.js]
+features: [AggregateError, Symbol.iterator]
+---*/
+
+var count = 0;
+var errors = {
+  [Symbol.iterator]() {
+    return {
+      next() {
+        count += 1;
+        return {
+          done: count === 3,
+          get value() {
+            return count * 3;
+          }
+        };
+      }
+    };
+  }
+};
+
+var case1 = new AggregateError(errors);
+
+assert.sameValue(count, 3);
+
+var get1 = case1.errors;
+var get2 = case1.errors;
+
+assert.sameValue(Array.isArray(get1), true);
+assert.sameValue(Array.isArray(get2), true);
+
+assert.notSameValue(get1, errors, 'creates a new array #1');
+assert.notSameValue(get2, errors, 'creates a new array #2');
+assert.notSameValue(get1, get2, 'creates a new array everytime it gets the values');
+
+assert.compareArray(get1, [3, 6], 'get accessor does not trigger a new iteration #1');
+assert.compareArray(get2, [3, 6], 'get accessor does not trigger a new iteration #2');
+
+assert.sameValue(count, 3, 'count is preserved');
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/return-new-array-from-list.js
new file mode 100644 (file)
index 0000000..e44115e
--- /dev/null
@@ -0,0 +1,76 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Return a new array from the [[AggregateErrors]] list.
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  ...
+  5. Return ! CreateArrayFromList(E.[[AggregateErrors]]).
+includes: [compareArray.js]
+features: [AggregateError, Symbol]
+---*/
+
+var errors = [];
+var case1 = new AggregateError(errors);
+var case1get1 = case1.errors;
+var case1get2 = case1.errors;
+
+assert.sameValue(Array.isArray(case1get1), true);
+assert.sameValue(Array.isArray(case1get2), true);
+
+assert.notSameValue(case1get1, errors, 'case1 - creates a new array #1');
+assert.notSameValue(case1get2, errors, 'case1 - creates a new array #2');
+assert.notSameValue(case1get1, case1get2, 'creates a new array everytime it gets the values');
+
+assert.compareArray(case1get1, errors);
+assert.compareArray(case1get2, errors);
+
+/////
+
+errors = [undefined, null, 1, 0, '', {}, Symbol()];
+var case2 = new AggregateError(errors);
+var case2get1 = case2.errors;
+var case2get2 = case2.errors;
+
+assert.sameValue(Array.isArray(case2get1), true);
+assert.sameValue(Array.isArray(case2get2), true);
+
+assert.notSameValue(case2get1, errors, 'case2 - creates a new array #1');
+assert.notSameValue(case2get2, errors, 'case2 - creates a new array #2');
+assert.notSameValue(case2get1, case2get2, 'creates a new array everytime it gets the values');
+
+assert.compareArray(case2get1, errors);
+assert.compareArray(case2get2, errors);
+
+/////
+
+errors = [undefined,,,,undefined];
+var case3 = new AggregateError(errors);
+var case3get1 = case3.errors;
+var case3get2 = case3.errors;
+
+assert.sameValue(Array.isArray(case3get1), true);
+assert.sameValue(Array.isArray(case3get2), true);
+
+assert.notSameValue(case3get1, errors, 'case3 - creates a new array #1');
+assert.notSameValue(case3get2, errors, 'case3 - creates a new array #2');
+assert.notSameValue(case3get1, case3get2, 'creates a new array everytime it gets the values');
+
+assert.compareArray(case3get1, errors);
+assert.compareArray(case3get2, errors);
+
+assert(Object.prototype.hasOwnProperty.call(case3get1, 0), 'filled array from a sparse origin - case3get1, 0');
+assert(Object.prototype.hasOwnProperty.call(case3get1, 1), 'filled array from a sparse origin - case3get1, 1');
+assert(Object.prototype.hasOwnProperty.call(case3get1, 2), 'filled array from a sparse origin - case3get1, 2');
+assert(Object.prototype.hasOwnProperty.call(case3get1, 3), 'filled array from a sparse origin - case3get1, 3');
+assert(Object.prototype.hasOwnProperty.call(case3get1, 4), 'filled array from a sparse origin - case3get1, 4');
+
+assert(Object.prototype.hasOwnProperty.call(case3get2, 0), 'filled array from a sparse origin - case3get2, 0');
+assert(Object.prototype.hasOwnProperty.call(case3get2, 1), 'filled array from a sparse origin - case3get2, 1');
+assert(Object.prototype.hasOwnProperty.call(case3get2, 2), 'filled array from a sparse origin - case3get2, 2');
+assert(Object.prototype.hasOwnProperty.call(case3get2, 3), 'filled array from a sparse origin - case3get2, 3');
+assert(Object.prototype.hasOwnProperty.call(case3get2, 4), 'filled array from a sparse origin - case3get2, 4');
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-has-no-typedarrayname-internal.js
new file mode 100644 (file)
index 0000000..c9b6ebc
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: >
+  Throws a TypeError exception when `this` does not have a [[AggregateErrorData]]
+  internal slot
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  2. If Type(E) is not Object, throw a TypeError exception.
+  3. If E does not have an [[ErrorData]] internal slot, throw a TypeError exception.
+  4. If E does not have an [[AggregateErrors]] internal slot, throw a TypeError exception.
+  5. Return ! CreateArrayFromList(E.[[AggregateErrors]]).
+features: [AggregateError]
+---*/
+
+var getter = Object.getOwnPropertyDescriptor(
+  AggregateError.prototype, 'errors'
+).get;
+
+assert.throws(TypeError, function() {
+  getter.call(new Error());
+}, 'this is an instance of Error, no [[AggregateErrors]]');
+
+assert.throws(TypeError, function() {
+  getter.call(AggregateError);
+}, 'AggregateError does not have an [[AggregateErrors]] internal');
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js b/JSTests/test262/test/built-ins/AggregateError/prototype/errors/this-is-not-object.js
new file mode 100644 (file)
index 0000000..7813021
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-get-aggregate-error.prototype.errors
+description: Throws a TypeError exception when `this` is not Object
+info: |
+  get AggregateError.prototype.errors
+
+  1. Let E be the this value.
+  2. If Type(E) is not Object, throw a TypeError exception.
+  ...
+features: [AggregateError, Symbol]
+---*/
+
+var getter = Object.getOwnPropertyDescriptor(
+  AggregateError.prototype, 'errors'
+).get;
+
+assert.throws(TypeError, function() {
+  getter.call(undefined);
+}, 'this is undefined');
+
+assert.throws(TypeError, function() {
+  getter.call(null);
+}, 'this is null');
+
+assert.throws(TypeError, function() {
+  getter.call(42);
+}, 'this is 42');
+
+assert.throws(TypeError, function() {
+  getter.call('1');
+}, 'this is a string');
+
+assert.throws(TypeError, function() {
+  getter.call(true);
+}, 'this is true');
+
+assert.throws(TypeError, function() {
+  getter.call(false);
+}, 'this is false');
+
+var s = Symbol('s');
+assert.throws(TypeError, function() {
+  getter.call(s);
+}, 'this is a Symbol');
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/message.js b/JSTests/test262/test/built-ins/AggregateError/prototype/message.js
new file mode 100644 (file)
index 0000000..c37a838
--- /dev/null
@@ -0,0 +1,25 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error.prototype.message
+description: >
+  The `AggregateError.prototype.message` property descriptor.
+info: |
+  The initial value of the message property of the prototype for a given AggregateError
+  constructor is the empty String.
+
+  17 ECMAScript Standard Built-in Objects:
+
+  Every other data property described (...) has the attributes { [[Writable]]: true,
+    [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+verifyProperty(AggregateError.prototype, 'message', {
+  value: '',
+  enumerable: false,
+  writable: true,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/name.js b/JSTests/test262/test/built-ins/AggregateError/prototype/name.js
new file mode 100644 (file)
index 0000000..b15a19e
--- /dev/null
@@ -0,0 +1,24 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error.prototype.name
+description: >
+  The `AggregateError.prototype.name` property descriptor.
+info: |
+  The initial value of AggregateError.prototype.name is "AggregateError".
+
+  17 ECMAScript Standard Built-in Objects:
+
+  Every other data property described (...) has the attributes { [[Writable]]: true,
+    [[Enumerable]]: false, [[Configurable]]: true } unless otherwise specified.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+verifyProperty(AggregateError.prototype, 'name', {
+  value: 'AggregateError',
+  enumerable: false,
+  writable: true,
+  configurable: true
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/prop-desc.js b/JSTests/test262/test/built-ins/AggregateError/prototype/prop-desc.js
new file mode 100644 (file)
index 0000000..29ceda9
--- /dev/null
@@ -0,0 +1,24 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-aggregate-error.prototype
+description: >
+  Property descriptor of AggregateError.prototype
+info: |
+  AggregateError.prototype
+
+  The initial value of AggregateError.prototype is the intrinsic object %AggregateErrorPrototype%.
+
+  This property has the attributes { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }.
+includes: [propertyHelper.js]
+features: [AggregateError]
+---*/
+
+assert.sameValue(typeof AggregateError.prototype, 'object');
+
+verifyProperty(AggregateError, 'prototype', {
+  enumerable: false,
+  writable: false,
+  configurable: false
+});
diff --git a/JSTests/test262/test/built-ins/AggregateError/prototype/proto.js b/JSTests/test262/test/built-ins/AggregateError/prototype/proto.js
new file mode 100644 (file)
index 0000000..2283c6c
--- /dev/null
@@ -0,0 +1,16 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-properties-of-the-aggregate-error-prototype-objects
+description: The prototype of AggregateError.prototype constructor is Error.prototype
+info: |
+  Properties of the AggregateError Prototype Object
+
+  - has a [[Prototype]] internal slot whose value is the intrinsic object %Error.prototype%.
+features: [AggregateError]
+---*/
+
+var proto = Object.getPrototypeOf(AggregateError.prototype);
+
+assert.sameValue(proto, Error.prototype);
diff --git a/JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js b/JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-start.js
new file mode 100644 (file)
index 0000000..0f0d82c
--- /dev/null
@@ -0,0 +1,59 @@
+// Copyright (C) 2019 Google. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-array.prototype.copywithin
+description: >
+  SECURITY: start argument is coerced to an integer value
+  and side effects change the length of the array so that
+  the start is out of bounds
+info: |
+  22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
+
+  ...
+  8. Let relativeStart be ToInteger(start).
+  ...
+includes: [compareArray.js]
+---*/
+
+
+// make a long integer Array
+function longDenseArray(){
+       var a = [0];
+       for(var i = 0; i < 1024; i++){
+               a[i] = i;
+       }
+       return a;
+}
+
+function shorten(){
+       currArray.length = 20;
+       return 1000;
+}
+
+var array = [];
+array.length = 20;
+
+var currArray = longDenseArray();
+
+assert(
+  compareArray(
+    currArray.copyWithin(0, {valueOf: shorten}), array
+  ),
+  'coercion side-effect makes start out of bounds'
+);
+
+currArray = longDenseArray();
+Object.setPrototypeOf(currArray, longDenseArray());
+
+var array2 = longDenseArray();
+array2.length = 20;
+for(var i = 0; i < 24; i++){
+       array2[i] = Object.getPrototypeOf(currArray)[i+1000];
+}
+
+assert(
+  compareArray(
+    currArray.copyWithin(0, {valueOf: shorten}), array2
+  ),
+  'coercion side-effect makes start out of bounds with prototype'
+);
diff --git a/JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js b/JSTests/test262/test/built-ins/Array/prototype/copyWithin/coerced-values-start-change-target.js
new file mode 100644 (file)
index 0000000..d12f03f
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2019 Google. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-array.prototype.copywithin
+description: >
+  SECURITY: start argument is coerced to an integer value
+  and side effects change the length of the array so that
+  the target is out of bounds
+info: |
+  22.1.3.3 Array.prototype.copyWithin (target, start [ , end ] )
+
+  ...
+  8. Let relativeStart be ToInteger(start).
+  ...
+includes: [compareArray.js]
+---*/
+
+
+// make a long integer Array
+function longDenseArray(){
+       var a = [0];
+       for(var i = 0; i < 1024; i++){
+               a[i] = i;
+       }
+       return a;
+}
+
+function shorten(){
+       currArray.length = 20;
+       return 1;
+}
+
+var array = longDenseArray();
+array.length = 20;
+for(var i = 0; i < 19; i++){
+       array[i+1000] = array[i+1];
+}
+
+var currArray = longDenseArray();
+
+assert(
+  compareArray(
+    currArray.copyWithin(1000, {valueOf: shorten}), array
+  ),
+  'coercion side-effect makes target out of bounds'
+);
index 64fdb6e..9ea5f2a 100644 (file)
@@ -126,4 +126,4 @@ arr.constructor = {
 assert.throws(Test262Error, function() {
   arr.flatMap(mapperFn);
 }, 'Return abrupt completion from getting the @@species');
-assert.sameValue(called, 1, 'got species once');
\ No newline at end of file
+assert.sameValue(called, 1, 'got species once');
index 1231021..919a01d 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.add(new TA(ab), 0, 0n);
   }, '`Atomics.add(new TA(ab), 0, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index e4d86fb..d412968 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.and(new TA(buffer), 0, 0n);
   }, '`Atomics.and(new TA(buffer), 0, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index ad4cb89..21d676b 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.compareExchange(new TA(buffer), 0, 0n, 0n);
   }, '`Atomics.compareExchange(new TA(buffer), 0, 0n, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index c5fc821..0d8e607 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.exchange(new TA(buffer), 0n, 0n);
   }, '`Atomics.exchange(new TA(buffer), 0n, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index 1dea6f2..1767ea4 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.or(new TA(buffer), 0, 0n);
   }, '`Atomics.or(new TA(buffer), 0, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index b1999d5..b89c809 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.store(new TA(buffer), 0, 0n);
   }, '`Atomics.store(new TA(buffer), 0, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
index 5827479..7185801 100644 (file)
@@ -13,4 +13,4 @@ testWithBigIntTypedArrayConstructors(function(TA) {
   assert.throws(TypeError, function() {
     Atomics.sub(new TA(buffer), 0, 0n);
   }, '`Atomics.sub(new TA(buffer), 0, 0n)` throws TypeError');
-});
\ No newline at end of file
+});
diff --git a/JSTests/test262/test/built-ins/Error/prototype/toString/invalid-receiver.js b/JSTests/test262/test/built-ins/Error/prototype/toString/invalid-receiver.js
new file mode 100644 (file)
index 0000000..3be2ecf
--- /dev/null
@@ -0,0 +1,18 @@
+// Copyright (C) 2019 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-error.prototype.tostring
+description: >
+  Error.prototype.toString throws if its receiver is not an object.
+info: |
+  Error.prototype.toString ( )
+  1. Let O be this value.
+  2. If Type(O) is not Object, throw a TypeError exception.
+---*/
+
+[undefined, null, 1, true, 'string', Symbol()].forEach((v) => {
+  assert.throws(TypeError, () => {
+    Error.prototype.toString.call(v);
+  }, `Error.prototype.toString.call(${String(v)})`);
+});
diff --git a/JSTests/test262/test/built-ins/Error/prototype/toString/undefined-props.js b/JSTests/test262/test/built-ins/Error/prototype/toString/undefined-props.js
new file mode 100644 (file)
index 0000000..61fc981
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright (C) 2019 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-error.prototype.tostring
+description: >
+  Error.prototype.toString handles this.name and this.message being undefined.
+info: |
+  Error.prototype.toString ( )
+  ...
+  3. Let name be ? Get(O, "name").
+  4. If name is undefined, set name to "Error"; otherwise set name to ? ToString(name).
+  5. Let msg be ? Get(O, "message").
+  6. If msg is undefined, set msg to the empty String; otherwise set msg to ? ToString(msg).
+---*/
+
+assert.sameValue(Error.prototype.toString.call({}), 'Error');
+assert.sameValue(Error.prototype.toString.call({ message: '42' }), 'Error: 42');
+assert.sameValue(Error.prototype.toString.call({ name: '24' }), '24');
+assert.sameValue(Error.prototype.toString.call({ name: '24', message: '42' }), '24: 42');
index c9acc95..1f13875 100644 (file)
@@ -27,24 +27,25 @@ includes: [async-gc.js]
 flags: [async, non-deterministic]
 ---*/
 
-var called = 0;
+var token = {};
 var fg = new FinalizationGroup(function() {});
 
 function emptyCells() {
   var target = {};
-  var token = {};
   fg.register(target, 'target!', token);
 
   var prom = asyncGC(target);
   target = null;
 
-  var res = fg.unregister(token);
-  assert.sameValue(res, true, 'unregister target before iterating over it in cleanup');
-
   return prom;
 }
 
 emptyCells().then(function() {
+  var called = 0;
+
+  var res = fg.unregister(token);
+  assert.sameValue(res, true, 'unregister target before iterating over it in cleanup');
+
   fg.cleanupSome(function cb(iterator) {
     called += 1;
   });
diff --git a/JSTests/test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js b/JSTests/test262/test/built-ins/FinalizationGroup/prototype/cleanupSome/cleanup-throws-in-callback.js
new file mode 100644 (file)
index 0000000..4d588ec
--- /dev/null
@@ -0,0 +1,55 @@
+// Copyright (C) 2019 Leo Balter. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-properties-of-the-finalization-group-constructor
+description: >
+  The cleanupSome() method throws if cleanup is currently in progress. 
+info: |
+  FinalizationGroup.prototype.cleanupSome ( [ callback ] )
+
+  1. Let finalizationGroup be the this value.
+  ...
+  4. If finalizationGroup.[[IsFinalizationGroupCleanupJobActive]] is true, 
+     throw a TypeError exception.
+
+features: [FinalizationGroup, host-gc-required]
+includes: [async-gc.js]
+flags: [async, non-deterministic]
+---*/
+
+var called = 0;
+var endOfCall = 0;
+var fg = new FinalizationGroup(function() {});
+
+function callback(iterator) {
+  called += 1;
+
+  if (called === 1) {
+    // Atempt to re-enter the callback.
+    var nestedCallbackRan = false;
+    assert.throws(TypeError, () => {
+      fg.cleanupSome(() => { nestedCallbackRan = true });
+    });
+    assert.sameValue(nestedCallbackRan, false);
+  }
+
+  endOfCall += 1;
+}
+
+function emptyCells() {
+  var o1 = {};
+  fg.register(o1, 'holdings 1');
+
+  var prom = asyncGC(o1);
+  o1 = null;
+
+  return prom;
+}
+
+emptyCells().then(function() {
+  fg.cleanupSome(callback);
+
+  assert.sameValue(called, 1, 'callback was called');
+  assert.sameValue(endOfCall, 1, 'callback finished');
+}).then($DONE, resolveAsyncGC);
index d38d888..7c6fa2b 100644 (file)
@@ -9,18 +9,13 @@ info: |
 
   1. Let finalizationGroup be the this value.
   2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
-  3. If Type(target) is not Object, throw a TypeError exception.
-  4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
-  5. If Type(unregisterToken) is not Object,
-    a. If unregisterToken is not undefined, throw a TypeError exception.
-    b. Set unregisterToken to empty.
-  6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
-  7. Append cell to finalizationGroup.[[Cells]].
-  8. Return undefined.
+  3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
+  4. If Type(target) is not Object, throw a TypeError exception.
+  5. If SameValue(target, holdings), throw a TypeError exception.
 features: [FinalizationGroup]
 ---*/
 
 var fg = new FinalizationGroup(function() {});
 
 var target = {};
-assert.sameValue(fg.register(target, target), undefined);
+assert.throws(TypeError, () => fg.register(target, target));
index a507f6e..aafdc05 100644 (file)
@@ -9,20 +9,22 @@ info: |
 
   1. Let finalizationGroup be the this value.
   2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
-  3. If Type(target) is not Object, throw a TypeError exception.
-  4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
-  5. If Type(unregisterToken) is not Object,
+  3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
+  4. If Type(target) is not Object, throw a TypeError exception.
+  5. If SameValue(target, holdings), throw a TypeError exception.
+  6. If Type(unregisterToken) is not Object,
     a. If unregisterToken is not undefined, throw a TypeError exception.
     b. Set unregisterToken to empty.
-  6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
-  7. Append cell to finalizationGroup.[[Cells]].
-  8. Return undefined.
+  7. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
+  8. Append cell to finalizationGroup.[[Cells]].
+  9. Return undefined.
 features: [FinalizationGroup]
 ---*/
 
 var fn = function() {};
 var fg = new FinalizationGroup(fn);
+var holdings = {};
 
 assert.sameValue(fg.register(fg), undefined, 'Register itself');
-assert.sameValue(fg.register(fg, fg), undefined, 'Register itself with holdings');
-assert.sameValue(fg.register(fg, fg, fg), undefined, 'Register itself with holdings and unregisterToken');
+assert.sameValue(fg.register(fg, holdings), undefined, 'Register itself with holdings');
+assert.sameValue(fg.register(fg, holdings, fg), undefined, 'Register itself with holdings and unregisterToken');
index f1dc302..bd19feb 100644 (file)
@@ -9,18 +9,19 @@ info: |
 
   1. Let finalizationGroup be the this value.
   2. If Type(finalizationGroup) is not Object, throw a TypeError exception.
-  3. If Type(target) is not Object, throw a TypeError exception.
-  4. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
-  5. If Type(unregisterToken) is not Object,
+  3. If finalizationGroup does not have a [[Cells]] internal slot, throw a TypeError exception.
+  4. If Type(target) is not Object, throw a TypeError exception.
+  5. If SameValue(target, holdings), throw a TypeError exception.
+  6. If Type(unregisterToken) is not Object,
     a. If unregisterToken is not undefined, throw a TypeError exception.
     b. Set unregisterToken to empty.
-  6. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
-  7. Append cell to finalizationGroup.[[Cells]].
-  8. Return undefined.
+  7. Let cell be the Record { [[Target]] : target, [[Holdings]]: holdings, [[UnregisterToken]]: unregisterToken }.
+  8. Append cell to finalizationGroup.[[Cells]].
+  9. Return undefined.
 features: [FinalizationGroup]
 ---*/
 
 var fg = new FinalizationGroup(function() {});
 
 var target = {};
-assert.sameValue(fg.register(target, target, target), undefined);
+assert.throws(TypeError, () => fg.register(target, target, target));
diff --git a/JSTests/test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js b/JSTests/test262/test/built-ins/FinalizationGroup/prototype/unregister/unregister-cleaned-up-cell.js
new file mode 100644 (file)
index 0000000..e6be046
--- /dev/null
@@ -0,0 +1,72 @@
+// Copyright (C) 2019 Mathieu Hofman. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-finalization-group.prototype.unregister
+description: Cannot unregister a cell that has been cleaned up
+info: |
+  FinalizationGroup.prototype.cleanupSome ( [ callback ] )
+
+  1. Let finalizationGroup be the this value.
+  ...
+  5. Perform ! CleanupFinalizationGroup(finalizationGroup, callback).
+  ...
+
+  CleanupFinalizationGroup ( finalizationGroup [ , callback ] )
+
+  ...
+  3. Let iterator be ! CreateFinalizationGroupCleanupIterator(finalizationGroup).
+  ...
+  6. Let result be Call(callback, undefined, « iterator »).
+  ...
+
+  %FinalizationGroupCleanupIteratorPrototype%.next ( )
+
+  8. If finalizationGroup.[[Cells]] contains a Record cell such that cell.[[Target]] is empty,
+    a. Choose any such cell.
+    b. Remove cell from finalizationGroup.[[Cells]].
+    c. Return CreateIterResultObject(cell.[[Holdings]], false).
+  9. Otherwise, return CreateIterResultObject(undefined, true).
+
+  FinalizationGroup.prototype.unregister ( unregisterToken )
+
+  1. Let removed be false.
+  2. For each Record { [[Target]], [[Holdings]], [[UnregisterToken]] } cell that is an element of finalizationGroup.[[Cells]], do
+    a. If SameValue(cell.[[UnregisterToken]], unregisterToken) is true, then
+      i. Remove cell from finalizationGroup.[[Cells]].
+      ii. Set removed to true.
+  3. Return removed.
+features: [FinalizationGroup, host-gc-required]
+includes: [async-gc.js]
+flags: [async, non-deterministic]
+---*/
+
+var value = 'target!';
+var token = {};
+var fg = new FinalizationGroup(function() {});
+
+function emptyCells() {
+  var target = {};
+  fg.register(target, value, token);
+
+  var prom = asyncGC(target);
+  target = null;
+
+  return prom;
+}
+
+emptyCells().then(function() {
+  var called = 0;
+  var holdings;
+  fg.cleanupSome(function cb(iterator) {
+    called += 1;
+    holdings = [...iterator];
+  });
+
+  assert.sameValue(called, 1);
+  assert.sameValue(holdings.length, 1);
+  assert.sameValue(holdings[0], value);
+
+  var res = fg.unregister(token);
+  assert.sameValue(res, false, 'unregister after iterating over it in cleanup');
+}).then($DONE, resolveAsyncGC);
index d71fbe5..7b1ed4b 100644 (file)
@@ -11,7 +11,7 @@ info: |
   1. If NewTarget is undefined, throw a TypeError exception.
   2. If IsCallable(cleanupCallback) is false, throw a TypeError exception.
   ...
-features: [FinalizationGroup]
+features: [FinalizationGroup, WeakRef]
 ---*/
 
 assert.sameValue(
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-array-get-prop-from-prototype.js
new file mode 100644 (file)
index 0000000..d5f6c01
--- /dev/null
@@ -0,0 +1,44 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  `name` property is obtained with [[Get]] from prototype chain.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+      iii. Repeat, while I < len,
+        1. Let newElement be ? InternalizeJSONProperty(val, ! ToString(I)).
+        2. If newElement is undefined, then
+          [...]
+        3. Else,
+          a. Perform ? CreateDataProperty(val, ! ToString(I), newElement).
+---*/
+
+Array.prototype[1] = 3;
+
+var json = '[1, 2]';
+var arr = JSON.parse(json, function(key, value) {
+  if (key === '0') {
+    assert(delete this[1]);
+  }
+
+  return value;
+});
+
+assert(delete Array.prototype[1]);
+assert.sameValue(arr[0], 1);
+assert(arr.hasOwnProperty('1'));
+assert.sameValue(arr[1], 3);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-create.js
new file mode 100644 (file)
index 0000000..349a6a7
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  [[DefineOwnProperty]] validates property descriptor before applying.
+  If [[DefineOwnProperty]] is unsuccessful, no exception is thrown.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+      iii. Repeat, while I < len,
+        1. Let newElement be ? InternalizeJSONProperty(val, ! ToString(I)).
+        2. If newElement is undefined, then
+          [...]
+        3. Else,
+          a. Perform ? CreateDataProperty(val, ! ToString(I), newElement).
+
+  CreateDataProperty ( O, P, V )
+
+  [...]
+  4. Return ? O.[[DefineOwnProperty]](P, newDesc).
+---*/
+
+var json = '[1, 2]';
+var arr = JSON.parse(json, function(key, value) {
+  if (key === '0') {
+    Object.defineProperty(this, '1', {configurable: false});
+  }
+  if (key === '1') return 22;
+
+  return value;
+});
+
+assert.sameValue(arr[0], 1);
+assert.sameValue(arr[1], 2);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-array-non-configurable-prop-delete.js
new file mode 100644 (file)
index 0000000..a8609ac
--- /dev/null
@@ -0,0 +1,47 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  [[Delete]] does not remove non-configurable properties.
+  If [[Delete]] is unsuccessful, no exception is thrown.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+      iii. Repeat, while I < len,
+        1. Let newElement be ? InternalizeJSONProperty(val, ! ToString(I)).
+        2. If newElement is undefined, then
+          a. Perform ? val.[[Delete]](! ToString(I)).
+
+  OrdinaryDelete ( O, P )
+
+  [...]
+  4. If desc.[[Configurable]] is true, then
+    a. Remove the own property with name P from O.
+---*/
+
+var json = '[1, 2]';
+var arr = JSON.parse(json, function(key, value) {
+  if (key === '0') {
+    Object.defineProperty(this, '1', {configurable: false});
+  }
+  if (key === '1') return;
+
+  return value;
+});
+
+assert.sameValue(arr[0], 1);
+assert(arr.hasOwnProperty('1'));
+assert.sameValue(arr[1], 2);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-call-order.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-call-order.js
new file mode 100644 (file)
index 0000000..8d8b1a2
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2019 Kevin Gibbons. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-internalizejsonproperty
+description: JSON.parse reviver call order
+features: [for-in-order]
+includes: [compareArray.js]
+---*/
+
+var calls = [];
+function reviver(name, val) {
+  calls.push(name);
+  return val;
+}
+
+JSON.parse('{"p1":0,"p2":0,"p1":0,"2":0,"1":0}', reviver);
+
+// The empty string is the _rootName_ in JSON.parse
+assert.compareArray(calls, ['1', '2', 'p1', 'p2', '']);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-object-get-prop-from-prototype.js
new file mode 100644 (file)
index 0000000..f69839c
--- /dev/null
@@ -0,0 +1,46 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  `name` property is obtained with [[Get]] from prototype chain.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+    c. Else,
+      i. Let keys be ? EnumerableOwnPropertyNames(val, "key").
+      ii. For each String P in keys, do
+        1. Let newElement be ? InternalizeJSONProperty(val, P).
+        2. If newElement is undefined, then
+          [...]
+        3. Else,
+          a. Perform ? CreateDataProperty(val, P, newElement).
+---*/
+
+Object.prototype.b = 3;
+
+var json = '{"a": 1, "b": 2}';
+var obj = JSON.parse(json, function(key, value) {
+  if (key === 'a') {
+    assert(delete this.b);
+  }
+
+  return value;
+});
+
+assert(delete Object.prototype.b);
+assert.sameValue(obj.a, 1);
+assert(obj.hasOwnProperty('b'));
+assert.sameValue(obj.b, 3);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-create.js
new file mode 100644 (file)
index 0000000..95f803d
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  [[DefineOwnProperty]] validates property descriptor before applying.
+  If [[DefineOwnProperty]] is unsuccessful, no exception is thrown.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+    c. Else,
+      i. Let keys be ? EnumerableOwnPropertyNames(val, "key").
+      ii. For each String P in keys, do
+        1. Let newElement be ? InternalizeJSONProperty(val, P).
+        2. If newElement is undefined, then
+          [...]
+        3. Else,
+          a. Perform ? CreateDataProperty(val, P, newElement).
+
+  CreateDataProperty ( O, P, V )
+
+  [...]
+  4. Return ? O.[[DefineOwnProperty]](P, newDesc).
+---*/
+
+var json = '{"a": 1, "b": 2}';
+var obj = JSON.parse(json, function(key, value) {
+  if (key === 'a') {
+    Object.defineProperty(this, 'b', {configurable: false});
+  }
+  if (key === 'b') return 22;
+
+  return value;
+});
+
+assert.sameValue(obj.a, 1);
+assert.sameValue(obj.b, 2);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-object-non-configurable-prop-delete.js
new file mode 100644 (file)
index 0000000..cde956c
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-internalizejsonproperty
+description: >
+  [[Delete]] does not remove non-configurable properties.
+  If [[Delete]] is unsuccessful, no exception is thrown.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    [...]
+    d. Return ? InternalizeJSONProperty(root, rootName).
+
+  InternalizeJSONProperty ( holder, name )
+
+  1. Let val be ? Get(holder, name).
+  2. If Type(val) is Object, then
+    a. Let isArray be ? IsArray(val).
+    b. If isArray is true, then
+      [...]
+    c. Else,
+      i. Let keys be ? EnumerableOwnPropertyNames(val, "key").
+      ii. For each String P in keys, do
+        1. Let newElement be ? InternalizeJSONProperty(val, P).
+        2. If newElement is undefined, then
+          a. Perform ? val.[[Delete]](P).
+
+  OrdinaryDelete ( O, P )
+
+  [...]
+  4. If desc.[[Configurable]] is true, then
+    a. Remove the own property with name P from O.
+---*/
+
+var json = '{"a": 1, "b": 2}';
+var obj = JSON.parse(json, function(key, value) {
+  if (key === 'a') {
+    Object.defineProperty(this, 'b', {configurable: false});
+  }
+  if (key === 'b') return;
+
+  return value;
+});
+
+assert.sameValue(obj.a, 1);
+assert(obj.hasOwnProperty('b'));
+assert.sameValue(obj.b, 2);
diff --git a/JSTests/test262/test/built-ins/JSON/parse/reviver-wrapper.js b/JSTests/test262/test/built-ins/JSON/parse/reviver-wrapper.js
new file mode 100644 (file)
index 0000000..2cbd679
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-json.parse
+description: >
+  Wrapper is plain extensible object with single data property.
+info: |
+  JSON.parse ( text [ , reviver ] )
+
+  [...]
+  7. If IsCallable(reviver) is true, then
+    a. Let root be ObjectCreate(%Object.prototype%).
+    b. Let rootName be the empty String.
+    c. Perform ! CreateDataPropertyOrThrow(root, rootName, unfiltered).
+includes: [propertyHelper.js]
+---*/
+
+Object.defineProperty(Object.prototype, '', {
+  set: function() {
+    throw new Test262Error('[[Set]] should not be called.');
+  },
+});
+
+var wrapper;
+JSON.parse('2', function() {
+  wrapper = this;
+});
+
+assert.sameValue(typeof wrapper, 'object');
+assert.sameValue(Object.getPrototypeOf(wrapper), Object.prototype);
+assert.sameValue(Object.getOwnPropertyNames(wrapper).length, 1);
+assert(Object.isExtensible(wrapper));
+
+verifyProperty(wrapper, '', {
+  value: 2,
+  writable: true,
+  enumerable: true,
+  configurable: true,
+});
diff --git a/JSTests/test262/test/built-ins/JSON/stringify/property-order.js b/JSTests/test262/test/built-ins/JSON/stringify/property-order.js
new file mode 100644 (file)
index 0000000..9ada1ab
--- /dev/null
@@ -0,0 +1,39 @@
+// Copyright 2019 Kevin Gibbons. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-serializejsonobject
+description: JSON.stringify property enumeration order
+features: [for-in-order]
+---*/
+
+var o = {
+  p1: 'p1',
+  p2: 'p2',
+  p3: 'p3',
+};
+
+// This getter will be triggered during enumeration, but the property it adds should not be enumerated.
+Object.defineProperty(o, 'add', {
+  enumerable: true,
+  get: function () {
+    o.extra = 'extra';
+    return 'add';
+  }
+});
+
+o.p4 = 'p4';
+
+o[2] = '2';
+o[0] = '0';
+o[1] = '1';
+
+delete o.p1;
+delete o.p3;
+o.p1 = 'p1';
+
+var actual = JSON.stringify(o);
+
+var expected = '{"0":"0","1":"1","2":"2","p2":"p2","add":"add","p4":"p4","p1":"p1"}';
+
+assert.sameValue(actual, expected);
diff --git a/JSTests/test262/test/built-ins/Object/entries/return-order.js b/JSTests/test262/test/built-ins/Object/entries/return-order.js
new file mode 100644 (file)
index 0000000..4680036
--- /dev/null
@@ -0,0 +1,41 @@
+// Copyright 2019 Kevin Gibbons. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.entries
+description: Object.entries enumeration order
+features: [for-in-order]
+includes: [compareArray.js]
+---*/
+
+var o = {
+  p1: 'p1',
+  p2: 'p2',
+  p3: 'p3',
+};
+
+// This getter will be triggered during enumeration, but the property it adds should not be enumerated.
+Object.defineProperty(o, 'add', {
+  enumerable: true,
+  get: function () {
+    o.extra = 'extra';
+    return 'add';
+  }
+});
+
+o.p4 = 'p4';
+
+o[2] = '2';
+o[0] = '0';
+o[1] = '1';
+
+delete o.p1;
+delete o.p3;
+o.p1 = 'p1';
+
+
+var actual = Object.entries(o).map(function(e) { return e[0]; });
+
+var expected = ['0', '1', '2', 'p2', 'add', 'p4', 'p1'];
+
+assert.compareArray(actual, expected);
diff --git a/JSTests/test262/test/built-ins/Object/freeze/throws-when-false.js b/JSTests/test262/test/built-ins/Object/freeze/throws-when-false.js
new file mode 100644 (file)
index 0000000..9d07efa
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (C) 2019 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.freeze
+description: >
+  Object.freeze throws if SetIntegrityLevel(O, frozen) returns false.
+info: |
+  Object.freeze ( O )
+  ...
+  2. Let status be ? SetIntegrityLevel(O, frozen).
+  3. If status is false, throw a TypeError exception.
+
+  SetIntegrityLevel ( O, level )
+  ...
+  3. Let status be ? O.[[PreventExtensions]]().
+  4. If status is false, return false.
+---*/
+
+const p = new Proxy({}, {
+  preventExtensions() {
+    return false;
+  },
+});
+
+assert.throws(TypeError, () => {
+  Object.freeze(p);
+});
diff --git a/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js b/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-absent-not-configurable-symbol-key.js
new file mode 100644 (file)
index 0000000..e8b5b59
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.getownpropertynames
+description: >
+  Proxy [[OwnPropertyKeys]] trap does not skip symbol keys when validating invariant:
+  * The result List must contain the keys of all non-configurable own properties of
+    the target object.
+info: |
+  Object.getOwnPropertyNames ( O )
+
+  1. Return ? GetOwnPropertyKeys(O, String).
+
+  GetOwnPropertyKeys ( O, type )
+
+  ...
+  2. Let keys be ? obj.[[OwnPropertyKeys]]().
+
+  [[OwnPropertyKeys]] ( )
+
+  ...
+  11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
+  ...
+  15. Let targetNonconfigurableKeys be a new empty List.
+  16. For each element key of targetKeys, do
+    a. Let desc be ? target.[[GetOwnProperty]](key).
+    b. If desc is not undefined and desc.[[Configurable]] is false, then
+      i. Append key as an element of targetNonconfigurableKeys.
+  ...
+  18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
+  19. For each key that is an element of targetNonconfigurableKeys, do
+    a. If key is not an element of uncheckedResultKeys, throw a TypeError exception.
+features: [Proxy, Symbol]
+---*/
+
+var target = {};
+var symbol = Symbol();
+Object.defineProperty(target, symbol, {
+  value: 1,
+  writable: true,
+  enumerable: true,
+  configurable: false,
+});
+
+var proxy = new Proxy(target, {
+  ownKeys: function() {
+    return [];
+  },
+});
+
+assert.throws(TypeError, function() {
+  Object.getOwnPropertyNames(proxy);
+});
diff --git a/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js b/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-duplicate-symbol-entry.js
new file mode 100644 (file)
index 0000000..bc2977c
--- /dev/null
@@ -0,0 +1,36 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.getownpropertynames
+description: >
+  Proxy [[OwnPropertyKeys]] trap does not skip symbol keys when validating invariant:
+  * The returned List contains no duplicate entries.
+info: |
+  Object.getOwnPropertyNames ( O )
+
+  1. Return ? GetOwnPropertyKeys(O, String).
+
+  GetOwnPropertyKeys ( O, type )
+
+  ...
+  2. Let keys be ? obj.[[OwnPropertyKeys]]().
+
+  [[OwnPropertyKeys]] ( )
+
+  ...
+  8. Let trapResult be ? CreateListFromArrayLike(trapResultArray, « String, Symbol »).
+  9. If trapResult contains any duplicate entries, throw a TypeError exception.
+features: [Proxy, Symbol]
+---*/
+
+var symbol = Symbol();
+var proxy = new Proxy({}, {
+  ownKeys: function() {
+    return [symbol, symbol];
+  },
+});
+
+assert.throws(TypeError, function() {
+  Object.getOwnPropertyNames(proxy);
+});
diff --git a/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js b/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-absent-symbol-key.js
new file mode 100644 (file)
index 0000000..f4ae927
--- /dev/null
@@ -0,0 +1,52 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.getownpropertynames
+description: >
+  Proxy [[OwnPropertyKeys]] trap does not skip symbol keys when validating invariant:
+  * If the target object is not extensible, then the result List must contain all the keys of
+    the own properties of the target object and no other values.
+info: |
+  Object.getOwnPropertyNames ( O )
+
+  1. Return ? GetOwnPropertyKeys(O, String).
+
+  GetOwnPropertyKeys ( O, type )
+
+  ...
+  2. Let keys be ? obj.[[OwnPropertyKeys]]().
+
+  [[OwnPropertyKeys]] ( )
+
+  ...
+  11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
+  16. For each element key of targetKeys, do
+    a. Let desc be ? target.[[GetOwnProperty]](key).
+    b. If desc is not undefined and desc.[[Configurable]] is false, then
+      ...
+    c. Else,
+      i. Append key as an element of targetConfigurableKeys.
+  ...
+  18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
+  ...
+  21. For each key that is an element of targetConfigurableKeys, do
+    a. If key is not an element of uncheckedResultKeys, throw a TypeError exception.
+features: [Proxy, Symbol]
+---*/
+
+var target = {};
+var symbol = Symbol();
+target[symbol] = 2;
+
+var proxy = new Proxy(target, {
+  ownKeys: function() {
+    return [];
+  },
+});
+
+Object.preventExtensions(target);
+
+assert.throws(TypeError, function() {
+  Object.getOwnPropertyNames(proxy);
+});
diff --git a/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js b/JSTests/test262/test/built-ins/Object/getOwnPropertyNames/proxy-invariant-not-extensible-extra-symbol-key.js
new file mode 100644 (file)
index 0000000..cafcc77
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (C) 2019 Alexey Shvayka. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-object.getownpropertynames
+description: >
+  Proxy [[OwnPropertyKeys]] trap does not skip symbol keys when validating invariant:
+  * If the target object is not extensible, then the result List must contain all the keys of
+    the own properties of the target object and no other values.
+info: |
+  Object.getOwnPropertyNames ( O )
+
+  1. Return ? GetOwnPropertyKeys(O, String).
+
+  GetOwnPropertyKeys ( O, type )
+
+  ...
+  2. Let keys be ? obj.[[OwnPropertyKeys]]().
+
+  [[OwnPropertyKeys]] ( )
+
+  ...
+  11. Let targetKeys be ? target.[[OwnPropertyKeys]]().
+  16. For each element key of targetKeys, do
+    a. Let desc be ? target.[[GetOwnProperty]](key).
+    b. If desc is not undefined and desc.[[Configurable]] is false, then
+      ...
+    c. Else,
+      i. Append key as an element of targetConfigurableKeys.
+  ...
+  18. Let uncheckedResultKeys be a new List which is a copy of trapResult.
+  ...
+  22. If uncheckedResultKeys is not empty, throw a TypeError exception.
+features: [Proxy, Symbol]
+---*/
+
+var target = {};
+var symbol = Symbol();
+var proxy = new Proxy(target, {
+  ownKeys: function() {
+    return [symbol];
+  },
+});
+
+Object.preventExtensions(target);
+
+assert.throws(TypeError, function() {
+  Object.getOwnPropertyNames(proxy);
+});
index cfa74d3..9d82e17 100644 (file)
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 19.1.2.8
+esid: sec-object.getownpropertysymbols
 description: >
   Object.getOwnPropertySymbols.length is 1.
 info: |
index e4e99c5..1967261 100644 (file)
@@ -2,7 +2,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 
 /*---
-es6id: 19.1.2.8
+esid: sec-object.getownpropertysymbols
 description: >
   Object.getOwnPropertySymbols.name is "getOwnPropertySymbols".
 info: |
index 28bb663..820cd96 100644 (file)
@@ -1,7 +1,7 @@
 // Copyright (C) 2013 the V8 project authors. All rights reserved.
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
-es6id: 19.1.2.8
+esid: sec-object.getownpropertysymbols
 description: >
     Object.getOwnPropertySymbols returns all symbol properties that have descriptions
 features: [Symbo