Title: [271225] trunk/JSTests
Revision
271225
Author
[email protected]
Date
2021-01-06 22:28:36 -0800 (Wed, 06 Jan 2021)

Log Message

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

Reviewed by Mark Lam.

* test262/expectations.yaml:
* test262/harness/testIntl.js:
* test262/latest-changes-summary.txt:
* test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js: Removed.
* test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js:
(let.obj.toString):
(testWithBigIntTypedArrayConstructors):
(obj.toString): Deleted.
* test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js:
(let.obj.toString):
(testWithTypedArrayConstructors):
(obj.toString): Deleted.
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
(testWithTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js:
(testWithBigIntTypedArrayConstructors):
* test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:
(testWithTypedArrayConstructors):
* test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js: Added.
* test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js: Added.
(zip):
(compare):
* test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js:
* test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js:
* test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js:
* test262/test/intl402/Locale/extensions-grandfathered.js:
* test262/test/intl402/Locale/likely-subtags-grandfathered.js:
(of.regularGrandfathered.const.extra.of.extras.i.test):
* test262/test262-Revision.txt:

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/JSTests/ChangeLog (271224 => 271225)


--- trunk/JSTests/ChangeLog	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/ChangeLog	2021-01-07 06:28:36 UTC (rev 271225)
@@ -1,5 +1,68 @@
 2021-01-06  Yusuke Suzuki  <[email protected]>
 
+        [JSC] Update test262
+        https://bugs.webkit.org/show_bug.cgi?id=220398
+
+        Reviewed by Mark Lam.
+
+        * test262/expectations.yaml:
+        * test262/harness/testIntl.js:
+        * test262/latest-changes-summary.txt:
+        * test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js: Removed.
+        * test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js:
+        (let.obj.toString):
+        (testWithBigIntTypedArrayConstructors):
+        (obj.toString): Deleted.
+        * test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js:
+        (let.obj.toString):
+        (testWithTypedArrayConstructors):
+        (obj.toString): Deleted.
+        * test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js: Added.
+        (testWithTypedArrayConstructors):
+        * test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js:
+        (testWithBigIntTypedArrayConstructors):
+        * test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js:
+        (testWithTypedArrayConstructors):
+        * test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js: Added.
+        * test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js: Added.
+        (zip):
+        (compare):
+        * test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js:
+        * test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js:
+        * test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js:
+        * test262/test/intl402/Locale/extensions-grandfathered.js:
+        * test262/test/intl402/Locale/likely-subtags-grandfathered.js:
+        (of.regularGrandfathered.const.extra.of.extras.i.test):
+        * test262/test262-Revision.txt:
+
+2021-01-06  Yusuke Suzuki  <[email protected]>
+
         [JSC] DateTimeFormat#formatRange should generate the same output to DateTimeFormat#format if startDate and endDate are "practically-equal"
         https://bugs.webkit.org/show_bug.cgi?id=220395
 

Modified: trunk/JSTests/test262/expectations.yaml (271224 => 271225)


--- trunk/JSTests/test262/expectations.yaml	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/expectations.yaml	2021-01-07 06:28:36 UTC (rev 271225)
@@ -848,11 +848,8 @@
   default: 'Test262Error: The value of Intl.getCanonicalLocales(tag)[0] equals the value of `canonical` Expected SameValue(«en-US-u-va-posix», «posix») to be true'
   strict mode: 'Test262Error: The value of Intl.getCanonicalLocales(tag)[0] equals the value of `canonical` Expected SameValue(«en-US-u-va-posix», «posix») to be true'
 test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js:
-  default: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
-  strict mode: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
-test/intl402/Intl/getCanonicalLocales/preferred-variant.js:
-  default: 'Test262Error: Expected SameValue(«ja-Latn-alalc97», «ja-Latn-alalc97-hepburn») to be true'
-  strict mode: 'Test262Error: Expected SameValue(«ja-Latn-alalc97», «ja-Latn-alalc97-hepburn») to be true'
+  default: 'Test262Error: Expected SameValue(«xtg-x-cel-gaulish», «xtg») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«xtg-x-cel-gaulish», «xtg») to be true'
 test/intl402/Intl/getCanonicalLocales/transformed-ext-canonical.js:
   default: 'Test262Error: Expected SameValue(«sl-t-sl-rozaj-biske-1994», «sl-t-sl-1994-biske-rozaj») to be true'
   strict mode: 'Test262Error: Expected SameValue(«sl-t-sl-rozaj-biske-1994», «sl-t-sl-1994-biske-rozaj») to be true'
@@ -877,9 +874,12 @@
 test/intl402/Locale/constructor-tag.js:
   default: 'Test262Error: new Intl.Locale("sl-ROZAJ-BISKE-1994").toString() returns "sl-1994-biske-rozaj" Expected SameValue(«sl-rozaj-biske-1994», «sl-1994-biske-rozaj») to be true'
   strict mode: 'Test262Error: new Intl.Locale("sl-ROZAJ-BISKE-1994").toString() returns "sl-1994-biske-rozaj" Expected SameValue(«sl-rozaj-biske-1994», «sl-1994-biske-rozaj») to be true'
+test/intl402/Locale/extensions-grandfathered.js:
+  default: 'Test262Error: Expected SameValue(«fr-Cyrl-FR-u-nu-latn-x-cel-gaulish», «fr-Cyrl-FR-u-nu-latn») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«fr-Cyrl-FR-u-nu-latn-x-cel-gaulish», «fr-Cyrl-FR-u-nu-latn») to be true'
 test/intl402/Locale/likely-subtags-grandfathered.js:
-  default: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
-  strict mode: 'Test262Error: Expected SameValue(«cmn», «zh») to be true'
+  default: 'Test262Error: Expected SameValue(«xtg-x-cel-gaulish», «xtg») to be true'
+  strict mode: 'Test262Error: Expected SameValue(«xtg-x-cel-gaulish», «xtg») to be true'
 test/intl402/Locale/likely-subtags.js:
   default: 'Test262Error: "en-u-co".maximize() should be "en-Latn-US-u-co" Expected SameValue(«en-Latn-US-u-co-yes», «en-Latn-US-u-co») to be true'
   strict mode: 'Test262Error: "en-u-co".maximize() should be "en-Latn-US-u-co" Expected SameValue(«en-Latn-US-u-co-yes», «en-Latn-US-u-co») to be true'

Modified: trunk/JSTests/test262/harness/testIntl.js (271224 => 271225)


--- trunk/JSTests/test262/harness/testIntl.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/harness/testIntl.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -328,7 +328,7 @@
     // property names must be in lower case; values in canonical form
 
     "art-lojban": "jbo",
-    "cel-gaulish": "xtg-x-cel-gaulish",
+    "cel-gaulish": "xtg",
     "zh-guoyu": "zh",
     "zh-hakka": "hak",
     "zh-xiang": "hsn",

Modified: trunk/JSTests/test262/latest-changes-summary.txt (271224 => 271225)


--- trunk/JSTests/test262/latest-changes-summary.txt	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/latest-changes-summary.txt	2021-01-07 06:28:36 UTC (rev 271225)
@@ -1,104 +1,27 @@
-A test/built-ins/Array/prototype/reverse/array-has-one-entry.js
-M test/built-ins/Array/prototype/sort/bug_596_1.js
-A test/built-ins/Math/max/Math.max_each-element-coerced.js
-A test/built-ins/Math/min/Math.min_each-element-coerced.js
-M test/built-ins/String/prototype/at/prop-desc.js
-M test/built-ins/TypedArray/prototype/at/prop-desc.js
-M test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric-throw.js
-M test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-non-numeric.js
-M test/built-ins/TypedArray/prototype/fill/BigInt/fill-values-symbol-throws.js
-M test/built-ins/TypedArray/prototype/fill/BigInt/return-abrupt-from-set-value.js
-M test/built-ins/TypedArray/prototype/fill/fill-values-non-numeric.js
-M test/built-ins/TypedArray/prototype/fill/fill-values-symbol-throws.js
-M test/built-ins/TypedArray/prototype/fill/return-abrupt-from-set-value.js
-M test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js
-M test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation-consistent-nan.js
-M test/built-ins/TypedArray/prototype/map/return-new-typedarray-conversion-operation.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation-consistent-nan.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/conversion-operation.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive-typeerror.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-to-primitive.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-tostring.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof-typeerror.js
-M test/built-ins/TypedArrayConstructors/ctors/object-arg/throws-setting-obj-valueof.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobigint64.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/bigint-tobiguint64.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/boolean-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/null-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/number-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-nan-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/string-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/symbol-tobigint.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive-typeerror.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-to-primitive.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-tostring.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof-typeerror.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/throws-setting-obj-valueof.js
-M test/built-ins/TypedArrayConstructors/ctors-bigint/object-arg/undefined-tobigint.js
-M test/built-ins/TypedArrayConstructors/from/BigInt/source-value-is-symbol-throws.js
-M test/built-ins/TypedArrayConstructors/from/nan-conversion.js
-M test/built-ins/TypedArrayConstructors/from/source-value-is-symbol-throws.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/desc-value-throws.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer-realm.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/set-value.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/BigInt/tonumber-value-detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/conversion-operation.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/desc-value-throws.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer-realm.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/set-value.js
-M test/built-ins/TypedArrayConstructors/internals/DefineOwnProperty/tonumber-value-detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/detached-buffer-realm.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/indexed-value.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-minus-zero.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-not-integer.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/key-is-out-of-bounds.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/Set/BigInt/tonumber-value-throws.js
-M test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation-consistent-nan.js
-M test/built-ins/TypedArrayConstructors/internals/Set/conversion-operation.js
-M test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer-realm.js
-M test/built-ins/TypedArrayConstructors/internals/Set/indexed-value.js
-M test/built-ins/TypedArrayConstructors/internals/Set/key-is-minus-zero.js
-M test/built-ins/TypedArrayConstructors/internals/Set/key-is-not-integer.js
-M test/built-ins/TypedArrayConstructors/internals/Set/key-is-out-of-bounds.js
-M test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-detached-buffer.js
-M test/built-ins/TypedArrayConstructors/internals/Set/tonumber-value-throws.js
-M test/built-ins/TypedArrayConstructors/of/BigInt/argument-is-symbol-throws.js
-M test/built-ins/TypedArrayConstructors/of/BigInt/new-instance.js
-M test/built-ins/TypedArrayConstructors/of/argument-is-symbol-throws.js
-M test/built-ins/TypedArrayConstructors/of/nan-conversion.js
-M test/built-ins/TypedArrayConstructors/of/new-instance.js
-M test/built-ins/parseInt/S15.1.2.2_A2_T2.js
-M test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js
-M test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js
-A test/language/arguments-object/mapped/enumerable-configurable-accessor-descriptor.js
-A test/language/arguments-object/mapped/nonconfigurable-descriptors-define-failure.js
-A test/language/arguments-object/mapped/writable-enumerable-configurable-descriptor.js
-A test/language/destructuring/binding/syntax/destructuring-array-parameters-function-arguments-length.js
-A test/language/destructuring/binding/syntax/destructuring-object-parameters-function-arguments-length.js
-A test/language/expressions/async-function/named-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/async-function/named-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/async-function/named-reassign-fn-name-in-body.js
-A test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/async-function/named-strict-error-reassign-fn-name-in-body.js
-A test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/async-generator/named-no-strict-reassign-fn-name-in-body.js
-A test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/async-generator/named-strict-error-reassign-fn-name-in-body.js
-A test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/function/named-no-strict-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/function/named-no-strict-reassign-fn-name-in-body.js
-A test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/function/named-strict-error-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/function/named-strict-error-reassign-fn-name-in-body.js
-A test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/generators/named-no-strict-reassign-fn-name-in-body.js
-A test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-arrow.js
-A test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body-in-eval.js
-A test/language/expressions/generators/named-strict-error-reassign-fn-name-in-body.js
\ No newline at end of file
+M harness/testIntl.js
+A test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js
+A test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js
+A test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js
+A test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js
+D test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js
+A test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+A test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+A test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+A test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+A test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js
+M test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js
+A test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js
+M test/built-ins/TypedArray/prototype/join/detached-buffer.js
+A test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+A test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+A test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js
+A test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js
+M test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js
+M test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js
+A test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js
+A test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js
+M test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js
+M test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js
+M test/intl402/Intl/getCanonicalLocales/preferred-variant.js
+M test/intl402/Locale/extensions-grandfathered.js
+M test/intl402/Locale/likely-subtags-grandfathered.js
\ No newline at end of file

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-false-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.includes
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.includes are the same as for Array.prototype.includes as defined in 22.1.3.13.
+
+  When the includes method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return false.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return false.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+    If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let elementK be the result of ! Get(O, ! ToString(F(k))).
+    If SameValueZero(searchElement, elementK) is true, return true.
+    Set k to k + 1.
+  Return false.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.includes(0n, fromIndex), false);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/BigInt/detached-buffer-during-fromIndex-returns-true-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,47 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.includes
+description: >
+  Returns false if buffer is detached after ValidateTypedArray and searchElement is a value
+info: |
+  %TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.includes are the same as for Array.prototype.includes as defined in 22.1.3.13.
+
+  When the includes method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return false.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return false.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+    If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let elementK be the result of ! Get(O, ! ToString(F(k))).
+    If SameValueZero(searchElement, elementK) is true, return true.
+    Set k to k + 1.
+  Return false.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.includes(undefined, fromIndex), true);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-false-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,47 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.includes
+description: >
+  Returns false if buffer is detached after ValidateTypedArray and searchElement is a value
+info: |
+  %TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.includes are the same as for Array.prototype.includes as defined in 22.1.3.13.
+
+  When the includes method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return false.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return false.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+    If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let elementK be the result of ! Get(O, ! ToString(F(k))).
+    If SameValueZero(searchElement, elementK) is true, return true.
+    Set k to k + 1.
+  Return false.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.includes(0, fromIndex), false);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-during-fromIndex-returns-true-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,47 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.includes
+description: >
+  Returns true if buffer is detached after ValidateTypedArray and searchElement is undefined
+info: |
+  %TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.includes are the same as for Array.prototype.includes as defined in 22.1.3.13.
+
+  When the includes method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return false.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return false.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+    If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let elementK be the result of ! Get(O, ! ToString(F(k))).
+    If SameValueZero(searchElement, elementK) is true, return true.
+    Set k to k + 1.
+  Return false.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.includes(undefined, fromIndex), true);
+});

Deleted: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js (271224 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/includes/detached-buffer-tointeger.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -1,37 +0,0 @@
-// Copyright (C) 2020 Google. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-esid: sec-%typedarray%.prototype.includes
-description: >
-  Does not throw a TypeError if this has a detached buffer after index coercion,
-  because ValidateTypedArray has already successfully completed.
-
-info: |
-  22.2.3.14 %TypedArray%.prototype.includes ( searchElement [ , fromIndex ] )
-
-  The interpretation and use of the arguments of %TypedArray%.prototype.includes are the same as for Array.prototype.includes as defined in 22.1.3.13.
-
-  When the includes method is called with one or two arguments, the following steps are taken:
-
-  Let O be the this value.
-  Perform ? ValidateTypedArray(O).
-  Let len be O.[[ArrayLength]].
-  If len is 0, return false.
-  Let n be ? ToIntegerOrInfinity(fromIndex).
-  ...
-
-includes: [testTypedArray.js, detachArrayBuffer.js]
-features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
----*/
-
-testWithTypedArrayConstructors(function(TA) {
-  const sample = new TA(10);
-  let isDetached = false;
-  function valueOf(){
-    $DETACHBUFFER(sample.buffer);
-    isDetached = true;
-    return 0;
-  }
-  assert.sameValue(sample.includes(0, {valueOf}), false);
-  assert.sameValue(isDetached, true);
-});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,49 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.indexof
+description: Throws a TypeError if this has a detached buffer
+info: |
+  %TypedArray%.prototype.indexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.indexOf are the same as for Array.prototype.indexOf as defined in 22.1.3.14.
+
+  When the indexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return -1F.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+  If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k + 1.
+  Return -1F.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.indexOf(undefined, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,49 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.indexof
+description: Throws a TypeError if this has a detached buffer
+info: |
+  %TypedArray%.prototype.indexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.indexOf are the same as for Array.prototype.indexOf as defined in 22.1.3.14.
+
+  When the indexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return -1F.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+  If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k + 1.
+  Return -1F.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.indexOf(0n, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,49 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.indexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.indexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.indexOf are the same as for Array.prototype.indexOf as defined in 22.1.3.14.
+
+  When the indexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return -1F.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+  If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k + 1.
+  Return -1F.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.indexOf(undefined, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/indexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,49 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.indexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.indexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.indexOf are the same as for Array.prototype.indexOf as defined in 22.1.3.14.
+
+  When the indexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  Let n be ? ToIntegerOrInfinity(fromIndex).
+  Assert: If fromIndex is undefined, then n is 0.
+  If n is +∞, return -1F.
+  Else if n is -∞, set n to 0.
+  If n ≥ 0, then
+    Let k be n.
+  Else,
+    Let k be len + n.
+  If k < 0, set k to 0.
+  Repeat, while k < len,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k + 1.
+  Return -1F.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.indexOf(0, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer-during-fromIndex-returns-single-comma.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,42 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.join
+description: Returns single separator if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.join ( separator )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.join are the same as for Array.prototype.join as defined in 22.1.3.15.
+
+  When the join method is called with one argument separator, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If separator is undefined, let sep be the single-element String ",".
+  Else, let sep be ? ToString(separator).
+  Let R be the empty String.
+  Let k be 0.
+  Repeat, while k < len,
+    If k > 0, set R to the string-concatenation of R and sep.
+    Let element be ! Get(O, ! ToString(𝔽(k))).
+    If element is undefined or null, let next be the empty String; otherwise, let next be ! ToString(element).
+    Set R to the string-concatenation of R and next.
+    Set k to k + 1.
+  Return R.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA([1n,2n,3n]);
+  const separator = {
+    toString() {
+      $DETACHBUFFER(sample.buffer);
+      return ',';
+    }
+  };
+
+  assert.sameValue(sample.join(separator), ',,');
+});

Modified: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js (271224 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/BigInt/detached-buffer.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -4,31 +4,30 @@
 esid: sec-%typedarray%.prototype.join
 description: Throws a TypeError if this has a detached buffer
 info: |
-  22.2.3.15 %TypedArray%.prototype.join ( separator )
+  %TypedArray%.prototype.join ( separator )
 
-  This function is not generic. ValidateTypedArray is applied to the this value
-  prior to evaluating the algorithm. If its result is an abrupt completion that
-  exception is thrown instead of evaluating the algorithm.
+  The interpretation and use of the arguments of %TypedArray%.prototype.join are the same as for Array.prototype.join as defined in 22.1.3.15.
 
-  22.2.3.5.1 Runtime Semantics: ValidateTypedArray ( O )
+  When the join method is called with one argument separator, the following steps are taken:
 
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
   ...
-  5. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
-  ...
+
 includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
 features: [BigInt, TypedArray]
 ---*/
 
-var obj = {
-  toString: function() {
+let obj = {
+  toString() {
     throw new Test262Error();
   }
 };
 
 testWithBigIntTypedArrayConstructors(function(TA) {
-  var sample = new TA(1);
+  let sample = new TA(1);
   $DETACHBUFFER(sample.buffer);
-  assert.throws(TypeError, function() {
+  assert.throws(TypeError, () => {
     sample.join(obj);
   });
 });

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer-during-fromIndex-returns-single-comma.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,42 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.join
+description: Returns single separator if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.join ( separator )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.join are the same as for Array.prototype.join as defined in 22.1.3.15.
+
+  When the join method is called with one argument separator, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If separator is undefined, let sep be the single-element String ",".
+  Else, let sep be ? ToString(separator).
+  Let R be the empty String.
+  Let k be 0.
+  Repeat, while k < len,
+    If k > 0, set R to the string-concatenation of R and sep.
+    Let element be ! Get(O, ! ToString(𝔽(k))).
+    If element is undefined or null, let next be the empty String; otherwise, let next be ! ToString(element).
+    Set R to the string-concatenation of R and next.
+    Set k to k + 1.
+  Return R.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA([1,2,3]);
+  const separator = {
+    toString() {
+      $DETACHBUFFER(sample.buffer);
+      return ',';
+    }
+  };
+
+  assert.sameValue(sample.join(separator), ',,');
+});

Modified: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js (271224 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/join/detached-buffer.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -4,31 +4,30 @@
 esid: sec-%typedarray%.prototype.join
 description: Throws a TypeError if this has a detached buffer
 info: |
-  22.2.3.15 %TypedArray%.prototype.join ( separator )
+  %TypedArray%.prototype.join ( separator )
 
-  This function is not generic. ValidateTypedArray is applied to the this value
-  prior to evaluating the algorithm. If its result is an abrupt completion that
-  exception is thrown instead of evaluating the algorithm.
+  The interpretation and use of the arguments of %TypedArray%.prototype.join are the same as for Array.prototype.join as defined in 22.1.3.15.
 
-  22.2.3.5.1 Runtime Semantics: ValidateTypedArray ( O )
+  When the join method is called with one argument separator, the following steps are taken:
 
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
   ...
-  5. If IsDetachedBuffer(buffer) is true, throw a TypeError exception.
-  ...
+
 includes: [testTypedArray.js, detachArrayBuffer.js]
 features: [TypedArray]
 ---*/
 
-var obj = {
-  toString: function() {
+let obj = {
+  toString() {
     throw new Test262Error();
   }
 };
 
 testWithTypedArrayConstructors(function(TA) {
-  var sample = new TA(1);
+  let sample = new TA(1);
   $DETACHBUFFER(sample.buffer);
-  assert.throws(TypeError, function() {
+  assert.throws(TypeError, () => {
     sample.join(obj);
   });
 });

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.lastindexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.lastIndexOf are the same as for Array.prototype.lastIndexOf as defined in 22.1.3.17.
+
+  When the lastIndexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  If fromIndex is present, let n be ? ToIntegerOrInfinity(fromIndex); else let n be len - 1.
+  If n is -∞, return -1F.
+  If n ≥ 0, then
+    Let k be min(n, len - 1).
+  Else,
+    Let k be len + n.
+  Repeat, while k ≥ 0,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k - 1.
+  Return -1F.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.lastIndexOf(undefined, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/BigInt/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.lastindexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.lastIndexOf are the same as for Array.prototype.lastIndexOf as defined in 22.1.3.17.
+
+  When the lastIndexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  If fromIndex is present, let n be ? ToIntegerOrInfinity(fromIndex); else let n be len - 1.
+  If n is -∞, return -1F.
+  If n ≥ 0, then
+    Let k be min(n, len - 1).
+  Else,
+    Let k be len + n.
+  Repeat, while k ≥ 0,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k - 1.
+  Return -1F.
+
+includes: [testBigIntTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, BigInt, TypedArray]
+---*/
+
+testWithBigIntTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.lastIndexOf(0n, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-undefined.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.lastindexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.lastIndexOf are the same as for Array.prototype.lastIndexOf as defined in 22.1.3.17.
+
+  When the lastIndexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  If fromIndex is present, let n be ? ToIntegerOrInfinity(fromIndex); else let n be len - 1.
+  If n is -∞, return -1F.
+  If n ≥ 0, then
+    Let k be min(n, len - 1).
+  Else,
+    Let k be len + n.
+  Repeat, while k ≥ 0,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k - 1.
+  Return -1F.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.lastIndexOf(undefined, fromIndex), -1);
+});

Added: trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js (0 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	                        (rev 0)
+++ trunk/JSTests/test262/test/built-ins/TypedArray/prototype/lastIndexOf/detached-buffer-during-fromIndex-returns-minus-one-for-zero.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,46 @@
+// Copyright (C) 2020 Rick Waldron. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+/*---
+esid: sec-%typedarray%.prototype.lastindexof
+description: Returns -1 if buffer is detached after ValidateTypedArray
+info: |
+  %TypedArray%.prototype.lastIndexOf ( searchElement [ , fromIndex ] )
+
+  The interpretation and use of the arguments of %TypedArray%.prototype.lastIndexOf are the same as for Array.prototype.lastIndexOf as defined in 22.1.3.17.
+
+  When the lastIndexOf method is called with one or two arguments, the following steps are taken:
+
+  Let O be the this value.
+  Perform ? ValidateTypedArray(O).
+  Let len be O.[[ArrayLength]].
+  If len is 0, return -1F.
+  If fromIndex is present, let n be ? ToIntegerOrInfinity(fromIndex); else let n be len - 1.
+  If n is -∞, return -1F.
+  If n ≥ 0, then
+    Let k be min(n, len - 1).
+  Else,
+    Let k be len + n.
+  Repeat, while k ≥ 0,
+    Let kPresent be ! HasProperty(O, ! ToString(F(k))).
+    If kPresent is true, then
+      Let elementK be ! Get(O, ! ToString(F(k))).
+      Let same be the result of performing Strict Equality Comparison searchElement === elementK.
+      If same is true, return F(k).
+    Set k to k - 1.
+  Return -1F.
+
+includes: [testTypedArray.js, detachArrayBuffer.js]
+features: [align-detached-buffer-semantics-with-web-reality, TypedArray]
+---*/
+
+testWithTypedArrayConstructors(function(TA) {
+  const sample = new TA(1);
+  const fromIndex = {
+    valueOf() {
+      $DETACHBUFFER(sample.buffer);
+      return 0;
+    }
+  };
+
+  assert.sameValue(sample.lastIndexOf(0, fromIndex), -1);
+});

Modified: trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js (271224 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/GetOwnProperty/BigInt/index-prop-desc.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -29,7 +29,7 @@
   assert.sameValue(descriptor0.enumerable, true);
   assert.sameValue(descriptor0.writable, true);
 
-  assert.sameValue(descriptor1.value, 42n);
+  assert.sameValue(descriptor1.value, 43n);
   assert.sameValue(descriptor1.configurable, true);
   assert.sameValue(descriptor1.enumerable, true);
   assert.sameValue(descriptor1.writable, true);

Modified: trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js (271224 => 271225)


--- trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/built-ins/TypedArrayConstructors/internals/Set/detached-buffer.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -30,6 +30,7 @@
   let sample = new TA([42]);
   $DETACHBUFFER(sample.buffer);
   sample[0] = 1;
+
   assert.sameValue(sample[0], undefined, '`sample[0] = 1` is undefined');
   sample['1.1'] = 1;
   assert.sameValue(sample['1.1'], undefined, '`sample[\'1.1\'] = 1` is undefined');

Added: trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js (0 => 271225)


--- trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js	                        (rev 0)
+++ trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRange/date-same-returns-single-date.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,42 @@
+// Copyright 2021 Google Inc. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-partitiondatetimerangepattern
+description: >
+  When startDate is equal to endDate, the output should be a string equal
+  to the output of Intl.DateTimeFormat.prototype.format.
+info: |
+  Intl.DateTimeFormat.prototype.formatRange ( startDate , endDate )
+  
+  4. Let x be ? ToNumber(startDate).
+  5. Let y be ? ToNumber(endDate).
+  6. Return ? FormatDateTimeRange(dtf, x, y).
+
+  PartitionDateTimeRangePattern ( dateTimeFormat, x, y )
+
+  13. If dateFieldsPracticallyEqual is true, then
+    a. Let pattern be dateTimeFormat.[[Pattern]].
+    b. Let patternParts be PartitionPattern(pattern).
+    c. Let result be ? FormatDateTimePattern(dateTimeFormat, patternParts, tm1).
+    d. For each r in result do
+      i. Set r.[[Source]] to "shared".
+    e. Return result.
+
+features: [Intl.DateTimeFormat-formatRange]
+locale: [en-US]
+---*/
+
+const date = new Date(2019, 7, 10,  1, 2, 3, 234);
+
+let dtf = new Intl.DateTimeFormat("en", { year: "numeric", month: "short", day: "numeric" });
+assert.sameValue(dtf.formatRange(date, date), dtf.format(date), "same output with date options");
+
+dtf = new Intl.DateTimeFormat("en", { minute: "numeric", second: "numeric" });
+assert.sameValue(dtf.formatRange(date, date), dtf.format(date), "same output with time options");
+
+dtf = new Intl.DateTimeFormat("en", { month: "short", day: "numeric", minute: "numeric" });
+assert.sameValue(dtf.formatRange(date, date), dtf.format(date), "same output with date-time options");
+
+dtf = new Intl.DateTimeFormat("en", { dateStyle: "long", timeStyle: "short" });
+assert.sameValue(dtf.formatRange(date, date), dtf.format(date), "same output with dateStyle/timeStyle");

Added: trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js (0 => 271225)


--- trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js	                        (rev 0)
+++ trunk/JSTests/test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-same-returns-single-date.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -0,0 +1,57 @@
+// Copyright 2021 Google Inc. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-partitiondatetimerangepattern
+description: >
+  When startDate is equal to endDate, the output should be an Array of objects with the
+  same value for the `type` and `value` fields as in the Array returned by
+  Intl.DateTimeFormat.prototype.formatToParts.
+info: |
+  Intl.DateTimeFormat.prototype.formatRangeToParts ( startDate , endDate )
+  
+  4. Let x be ? ToNumber(startDate).
+  5. Let y be ? ToNumber(endDate).
+  6. Return ? FormatDateTimeRange(dtf, x, y).
+
+  PartitionDateTimeRangePattern ( dateTimeFormat, x, y )
+
+  13. If dateFieldsPracticallyEqual is true, then
+    a. Let pattern be dateTimeFormat.[[Pattern]].
+    b. Let patternParts be PartitionPattern(pattern).
+    c. Let result be ? FormatDateTimePattern(dateTimeFormat, patternParts, tm1).
+    d. For each r in result do
+      i. Set r.[[Source]] to "shared".
+    e. Return result.
+
+features: [Intl.DateTimeFormat-formatRange]
+locale: [en-US]
+---*/
+
+function* zip(a, b) {
+  assert.sameValue(a.length, b.length);
+  for (let i = 0; i < a.length; ++i) {
+    yield [i, a[i], b[i]];
+  }
+}
+
+function compare(actual, expected) {
+  for (const [i, actualEntry, expectedEntry] of zip(actual, expected)) {
+    assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
+    assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
+  }
+}
+
+const date = new Date(2019, 7, 10,  1, 2, 3, 234);
+
+let dtf = new Intl.DateTimeFormat("en", { year: "numeric", month: "short", day: "numeric" });
+compare(dtf.formatRange(date, date), dtf.format(date), "same output with date options");
+
+dtf = new Intl.DateTimeFormat("en", { minute: "numeric", second: "numeric" });
+compare(dtf.formatRange(date, date), dtf.format(date), "same output with time options");
+
+dtf = new Intl.DateTimeFormat("en", { month: "short", day: "numeric", minute: "numeric" });
+compare(dtf.formatRange(date, date), dtf.format(date), "same output with date-time options");
+
+dtf = new Intl.DateTimeFormat("en", { dateStyle: "long", timeStyle: "short" });
+compare(dtf.formatRange(date, date), dtf.format(date), "same output with dateStyle/timeStyle");

Modified: trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js (271224 => 271225)


--- trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/canonicalized-tags.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -37,7 +37,7 @@
   "es-419-u-nu-latn": "es-419-u-nu-latn",
   "cmn-hans-cn-u-ca-t-ca-x-t-u": "zh-Hans-CN-t-ca-u-ca-x-t-u",
   "de-gregory-u-ca-gregory": "de-gregory-u-ca-gregory",
-  "sgn-GR": "sgn-GR",
+  "sgn-GR": "gss",
   "ji": "yi",
   "de-DD": "de-DE",
   "in": "id",

Modified: trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js (271224 => 271225)


--- trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-grandfathered.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -62,7 +62,7 @@
 
 var regularGrandfatheredUTS35 = {
   "art-lojban": "jbo",
-  "cel-gaulish": "xtg-x-cel-gaulish",
+  "cel-gaulish": "xtg",
   "zh-guoyu": "zh",
   "zh-hakka": "hak",
   "zh-xiang": "hsn",

Modified: trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js (271224 => 271225)


--- trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/intl402/Intl/getCanonicalLocales/preferred-variant.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -36,10 +36,10 @@
 includes: [testIntl.js]
 ---*/
 
-// Generated from https://github.com/unicode-org/cldr/blob/master/common/supplemental/supplementalMetadata.xml
-// File-Date: 2020-03-30
+// https://github.com/unicode-org/cldr/blame/master/common/supplemental/supplementalMetadata.xml#L531
+// http://unicode.org/reports/tr35/#LocaleId_Canonicalization
 var canonicalizedTags = {
-  "ja-latn-hepburn-heploc": "ja-Latn-alalc97-hepburn",
+  "ja-latn-hepburn-heploc": "ja-Latn-alalc97",
 };
 
 // make sure the data above is correct

Modified: trunk/JSTests/test262/test/intl402/Locale/extensions-grandfathered.js (271224 => 271225)


--- trunk/JSTests/test262/test/intl402/Locale/extensions-grandfathered.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/intl402/Locale/extensions-grandfathered.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -31,7 +31,7 @@
             region: "FR",
             numberingSystem: "latn",
         },
-        canonical: "fr-Cyrl-FR-u-nu-latn-x-cel-gaulish",
+        canonical: "fr-Cyrl-FR-u-nu-latn",
     },
 
     // Regular grandfathered with modern replacement.

Modified: trunk/JSTests/test262/test/intl402/Locale/likely-subtags-grandfathered.js (271224 => 271225)


--- trunk/JSTests/test262/test/intl402/Locale/likely-subtags-grandfathered.js	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test/intl402/Locale/likely-subtags-grandfathered.js	2021-01-07 06:28:36 UTC (rev 271225)
@@ -68,7 +68,7 @@
     },
     {
         tag: "cel-gaulish",
-        canonical: "xtg-x-cel-gaulish",
+        canonical: "xtg",
     },
     {
         tag: "zh-guoyu",
@@ -123,15 +123,15 @@
     "x-private",
 ];
 
-for (const {tag} of regularGrandfathered) {
+for (const {tag, canonical} of regularGrandfathered) {
     const priv = "-x-0";
-    const tagMax = new Intl.Locale(tag + priv).maximize().toString().slice(0, -priv.length);
-    const tagMin = new Intl.Locale(tag + priv).minimize().toString().slice(0, -priv.length);
+    const tagMax = new Intl.Locale(canonical + priv).maximize().toString().slice(0, -priv.length);
+    const tagMin = new Intl.Locale(canonical + priv).minimize().toString().slice(0, -priv.length);
 
     for (const extra of extras) {
         const loc = new Intl.Locale(tag + "-" + extra);
 
-        let canonical = tag + "-" + extra;
+        let canonicalWithExtra = canonical + "-" + extra;
         let canonicalMax = tagMax + "-" + extra;
         let canonicalMin = tagMin + "-" + extra;
 
@@ -139,7 +139,7 @@
         if (/^[a-z0-9]{5,8}|[0-9][a-z0-9]{3}$/i.test(extra)) {
             const sorted = s => s.replace(/(-([a-z0-9]{5,8}|[0-9][a-z0-9]{3}))+$/i,
                                           m => m.split("-").sort().join("-"));
-            canonical = sorted(canonical);
+            canonicalWithExtra = sorted(canonicalWithExtra);
             canonicalMax = sorted(canonicalMax);
             canonicalMin = sorted(canonicalMin);
         }
@@ -156,21 +156,18 @@
         // what needs to happen next.
         //
         // From <http://unicode.org/reports/tr35/#Language_Tag_to_Locale_Identifier>:
+        // 
+        // > A valid [BCP47] language tag can be converted to a valid Unicode BCP 47 locale 
+        // > identifier according to Annex C. LocaleId Canonicalization
+        // 
+        // From <http://unicode.org/reports/tr35/#LocaleId_Canonicalization>
+        // > The languageAlias, scriptAlias, territoryAlias, and variantAlias elements are used
+        // > as rules to transform an input source localeId. The first step is to transform the
+        // > languageId portion of the localeId.
         //
-        // > If the BCP 47 primary language subtag matches the type attribute of a languageAlias
-        // > element in Supplemental Data, replace the language subtag with the replacement value.
-        // >  1. ...
-        // >  2. Five special deprecated grandfathered codes (such as i-default) are in type
-        //       attributes, and are also replaced.
-        // >  3. ...
+        // For regular grandfathered tags, "lojban", "gaulish", "guoyu", "hakka", and "xiang" will
+        // therefore be considered as the "variant" subtag and be replaced by rules in languageAlias.
         //
-        // So let's assume grandfathered tags are treated as 'primary language subtag' if and only
-        // if no additional subtags are present. Because in all other cases, we don't really have a
-        // grandfathered tag, but only some arbitrary combination of random subtags.
-        //
-        // Basically what we expect here is that only grandfathered without any additional subtags
-        // are canonicalised to their modern form and in all other cases they're left as is.
-        //
         // Not all language tag processor will pass this test, for example because they don't order
         // variant subtags in alphabetical order or they're too eager when detecting grandfathered
         // tags. For example "zh-hakka-hakka" is accepted in some language tag processors, because
@@ -187,7 +184,7 @@
         //
         // So, if your implementation fails this assertion, but you still like to test the rest of
         // this file, a pull request to split this file seems the way to go!
-        assert.sameValue(loc.toString(), canonical);
+        assert.sameValue(loc.toString(), canonicalWithExtra);
 
         assert.sameValue(loc.maximize().toString(), canonicalMax);
         assert.sameValue(loc.maximize().maximize().toString(), canonicalMax);

Modified: trunk/JSTests/test262/test262-Revision.txt (271224 => 271225)


--- trunk/JSTests/test262/test262-Revision.txt	2021-01-07 06:11:42 UTC (rev 271224)
+++ trunk/JSTests/test262/test262-Revision.txt	2021-01-07 06:28:36 UTC (rev 271225)
@@ -1,2 +1,2 @@
 test262 remote url: [email protected]:tc39/test262.git
-test262 revision: 51666c5315ee674d3157544497d933310e2cd6b8
+test262 revision: 6cf3433cf8f44c471a7e4f47e5ba36d32ebb7b69
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to