diff --git a/polyfill/test/Calendar/constructor/constructor/builtin.js b/polyfill/test/Calendar/constructor/constructor/builtin.js
deleted file mode 100644
index f77ec2bfd5..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: Tests that Temporal.Calendar meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.Calendar.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/Calendar/constructor/constructor/constructor.js b/polyfill/test/Calendar/constructor/constructor/constructor.js
deleted file mode 100644
index 461b9ece2c..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: Temporal.Calendar constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.Calendar());
diff --git a/polyfill/test/Calendar/constructor/constructor/length.js b/polyfill/test/Calendar/constructor/constructor/length.js
deleted file mode 100644
index 0c3c834213..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: Temporal.Calendar.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/constructor/missing-arguments.js b/polyfill/test/Calendar/constructor/constructor/missing-arguments.js
deleted file mode 100644
index ce0dd2fdbd..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: RangeError thrown when constructor invoked with no argument
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.Calendar());
-assert.throws(RangeError, () => new Temporal.Calendar(undefined));
diff --git a/polyfill/test/Calendar/constructor/constructor/name.js b/polyfill/test/Calendar/constructor/constructor/name.js
deleted file mode 100644
index 9ea1492e0d..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: Temporal.Calendar.name is "Calendar"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar, "name", {
- value: "Calendar",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/constructor/prop-desc.js b/polyfill/test/Calendar/constructor/constructor/prop-desc.js
deleted file mode 100644
index fbb298626a..0000000000
--- a/polyfill/test/Calendar/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar
-description: The "Calendar" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar,
- "function",
- "`typeof Calendar` is `function`"
-);
-
-verifyProperty(Temporal, "Calendar", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/from/builtin.js b/polyfill/test/Calendar/constructor/from/builtin.js
deleted file mode 100644
index 4345b708d6..0000000000
--- a/polyfill/test/Calendar/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Tests that Temporal.Calendar.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/constructor/from/calendar-object-invalid.js b/polyfill/test/Calendar/constructor/from/calendar-object-invalid.js
deleted file mode 100644
index fe70acdc98..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-object-invalid.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Converting objects to Temporal.Calendar
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => Temporal.Calendar.from({ calendar: "local" }));
-assert.throws(RangeError, () => Temporal.Calendar.from({ calendar: { calendar: "iso8601" } }));
diff --git a/polyfill/test/Calendar/constructor/from/calendar-object-operations.js b/polyfill/test/Calendar/constructor/from/calendar-object-operations.js
deleted file mode 100644
index a11df98aa1..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-object-operations.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Converting objects to Temporal.Calendar
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "has outer.calendar",
- "get outer.calendar",
- "has inner.calendar",
- "get inner.toString",
- "call inner.toString",
-];
-const actual = [];
-const calendar = new Proxy({}, {
- has(t, p) {
- actual.push(`has outer.${p}`);
- return true;
- },
- get(t, p) {
- actual.push(`get outer.${p}`);
- return new Proxy(TemporalHelpers.toPrimitiveObserver(actual, "iso8601", "inner"), {
- has(t, p) {
- actual.push(`has inner.${p}`);
- return true;
- },
- get(t, p) {
- return t[p];
- },
- });
- },
-});
-const result = Temporal.Calendar.from(calendar);
-assert.sameValue(result.id, "iso8601");
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Calendar/constructor/from/calendar-object.js b/polyfill/test/Calendar/constructor/from/calendar-object.js
deleted file mode 100644
index cb680a26d8..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Converting objects to Temporal.Calendar
-features: [Temporal]
----*/
-
-const cal = new Temporal.Calendar("iso8601");
-const calFromObject = Temporal.Calendar.from({ calendar: cal });
-assert(calFromObject instanceof Temporal.Calendar);
-assert.sameValue(calFromObject.id, "iso8601");
-
-const calFromString = Temporal.Calendar.from({ calendar: "iso8601" });
-assert(calFromString instanceof Temporal.Calendar);
-assert.sameValue(calFromString.id, "iso8601");
-
-const custom = { id: "custom-calendar" };
-assert.sameValue(Temporal.Calendar.from({ calendar: custom }), custom);
-assert.sameValue(Temporal.Calendar.from(custom), custom);
diff --git a/polyfill/test/Calendar/constructor/from/calendar-string-builtin.js b/polyfill/test/Calendar/constructor/from/calendar-string-builtin.js
deleted file mode 100644
index f830c814fd..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-string-builtin.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Calendar.from should support iso8601.
-features: [Temporal]
----*/
-
-const tests = [
- "iso8601",
- "1994-11-05T08:15:30-05:00",
-];
-
-for (const item of tests) {
- const calendar = Temporal.Calendar.from(item);
- assert(calendar instanceof Temporal.Calendar);
- assert.sameValue(calendar.id, "iso8601");
-}
diff --git a/polyfill/test/Calendar/constructor/from/calendar-string-not-builtin.js b/polyfill/test/Calendar/constructor/from/calendar-string-not-builtin.js
deleted file mode 100644
index c8f7a601d7..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-string-not-builtin.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: from() throws if the argument is not a built-in calendar name.
-features: [Temporal]
----*/
-
-const tests = [
- "local",
- "iso-8601",
- "[u-ca=iso8601]",
- "invalid-calendar",
-];
-
-for (const item of tests) {
- assert.throws(RangeError, () => Temporal.Calendar.from(item));
-}
diff --git a/polyfill/test/Calendar/constructor/from/calendar-temporal-object.js b/polyfill/test/Calendar/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index d56c7820fd..0000000000
--- a/polyfill/test/Calendar/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.from step 1:
- 1. Return ? ToTemporalCalendar(_item_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const newCalendar = Temporal.Calendar.from(temporalObject);
- assert.sameValue(newCalendar, calendar, "calendar object retrieved from internal slot");
-});
diff --git a/polyfill/test/Calendar/constructor/from/length.js b/polyfill/test/Calendar/constructor/from/length.js
deleted file mode 100644
index 154ba81099..0000000000
--- a/polyfill/test/Calendar/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Temporal.Calendar.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/from/name.js b/polyfill/test/Calendar/constructor/from/name.js
deleted file mode 100644
index 16c0f55169..0000000000
--- a/polyfill/test/Calendar/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Temporal.Calendar.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/from/not-a-constructor.js b/polyfill/test/Calendar/constructor/from/not-a-constructor.js
deleted file mode 100644
index 01266cddc8..0000000000
--- a/polyfill/test/Calendar/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Temporal.Calendar.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.from), false,
- "isConstructor(Temporal.Calendar.from)");
diff --git a/polyfill/test/Calendar/constructor/from/prop-desc.js b/polyfill/test/Calendar/constructor/from/prop-desc.js
deleted file mode 100644
index 53ae121c6c..0000000000
--- a/polyfill/test/Calendar/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: The "from" property of Temporal.Calendar
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.from,
- "function",
- "`typeof Calendar.from` is `function`"
-);
-
-verifyProperty(Temporal.Calendar, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/constructor/from/subclassing-ignored.js b/polyfill/test/Calendar/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 738afa1fd2..0000000000
--- a/polyfill/test/Calendar/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Calendar,
- "from",
- ["iso8601"],
- (result) => {
- assert.sameValue(result.id, "iso8601", "id property of result");
- assert.sameValue(result.toString(), "iso8601", "toString() of result");
- },
-);
diff --git a/polyfill/test/Calendar/prototype/dateAdd/argument-plaindatetime.js b/polyfill/test/Calendar/prototype/dateAdd/argument-plaindatetime.js
deleted file mode 100644
index 9683842c38..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/argument-plaindatetime.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dateadd step 4:
- 4. Set _date_ to ? ToTemporalDate(_date_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const calendar = new Temporal.Calendar("iso8601");
- const duration = new Temporal.Duration(0, 1);
- const result = calendar.dateAdd(datetime, duration);
- TemporalHelpers.assertPlainDate(result, 2000, 6, "M06", 2);
- assert.sameValue(result.hour, undefined, "instance of PlainDate returned, not PlainDateTime");
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index afa8fda974..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dateAdd(datetime, duration));
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 7a67d15bfb..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dateAdd(datetime, duration));
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index aa2c986058..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.dateAdd(datetime, duration));
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/balance-smaller-units.js b/polyfill/test/Calendar/prototype/dateAdd/balance-smaller-units.js
deleted file mode 100644
index c2898cfac4..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/balance-smaller-units.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Durations with units smaller than days are balanced before adding
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-const duration = new Temporal.Duration(0, 0, 0, 1, 24, 1440, 86400, 86400_000, 86400_000_000, 86400_000_000_000);
-
-const result = calendar.dateAdd(date, duration);
-TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 9, "units smaller than days are balanced");
-
-const resultString = calendar.dateAdd(date, "P1DT24H1440M86400S");
-TemporalHelpers.assertPlainDate(resultString, 2000, 5, "M05", 6, "units smaller than days are balanced");
-
-const resultPropBag = calendar.dateAdd(date, { days: 1, hours: 24, minutes: 1440, seconds: 86400, milliseconds: 86400_000, microseconds: 86400_000_000, nanoseconds: 86400_000_000_000 });
-TemporalHelpers.assertPlainDate(resultPropBag, 2000, 5, "M05", 9, "units smaller than days are balanced");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/basic.js b/polyfill/test/Calendar/prototype/dateAdd/basic.js
deleted file mode 100644
index c1f8ad510c..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/basic.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Basic tests for dateAdd().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const date = Temporal.PlainDate.from("1994-11-06");
-const positiveDuration = Temporal.Duration.from({ months: 1, weeks: 1 });
-const negativeDuration = Temporal.Duration.from({ months: -1, weeks: -1 });
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd(Temporal.PlainDateTime.from("1994-11-06T08:15:30"), positiveDuration, {}),
- 1994, 12, "M12", 13, "date: PlainDateTime");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd({ year: 1994, month: 11, day: 6 }, positiveDuration, {}),
- 1994, 12, "M12", 13, "date: property bag");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd("1994-11-06", positiveDuration, {}),
- 1994, 12, "M12", 13, "date: string");
-
-assert.throws(TypeError, () => iso.dateAdd({ month: 11 }, positiveDuration, {}), "date: missing property");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd(date, { months: 1, weeks: 1 }, {}),
- 1994, 12, "M12", 13, "duration: property bag");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd(date, "P1M1W", {}),
- 1994, 12, "M12", 13, "duration: string");
-
-assert.throws(TypeError, () => iso.dateAdd(date, { month: 1 }, {}), "duration: missing property");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd(Temporal.PlainDateTime.from("1994-11-06T08:15:30"), negativeDuration, {}),
- 1994, 9, "M09", 29, "date: PlainDateTime, negative duration");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd({ year: 1994, month: 11, day: 6 }, negativeDuration, {}),
- 1994, 9, "M09", 29, "date: property bag, negative duration");
-
-TemporalHelpers.assertPlainDate(
- iso.dateAdd("1994-11-06", negativeDuration, {}),
- 1994, 9, "M09", 29, "date: string, negative duration");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/branding.js b/polyfill/test/Calendar/prototype/dateAdd/branding.js
deleted file mode 100644
index 29972471fe..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dateAdd = Temporal.Calendar.prototype.dateAdd;
-
-assert.sameValue(typeof dateAdd, "function");
-
-assert.throws(TypeError, () => dateAdd.call(undefined), "undefined");
-assert.throws(TypeError, () => dateAdd.call(null), "null");
-assert.throws(TypeError, () => dateAdd.call(true), "true");
-assert.throws(TypeError, () => dateAdd.call(""), "empty string");
-assert.throws(TypeError, () => dateAdd.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dateAdd.call(1), "1");
-assert.throws(TypeError, () => dateAdd.call({}), "plain object");
-assert.throws(TypeError, () => dateAdd.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => dateAdd.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/builtin.js b/polyfill/test/Calendar/prototype/dateAdd/builtin.js
deleted file mode 100644
index 0d8d3d9960..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: >
- Tests that Temporal.Calendar.prototype.dateAdd
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.dateAdd),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.dateAdd),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.dateAdd),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.dateAdd.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/dateAdd/calendar-fields-iterable.js
deleted file mode 100644
index da8453aea5..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.dateadd step 4:
- 4. Set _date_ to ? ToTemporalDate(_date_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const duration = new Temporal.Duration(0, 1);
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.dateAdd({ year: 2000, month: 5, day: 2, calendar: calendar2 }, duration);
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/dateAdd/calendar-temporal-object.js
deleted file mode 100644
index a230867c3d..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dateadd step 4:
- 4. Set _date_ to ? ToTemporalDate(_date_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- const duration = new Temporal.Duration(0, 1);
- calendar.dateAdd({ year: 2000, month: 5, day: 2, calendar: temporalObject }, duration);
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js
deleted file mode 100644
index 4ad162032a..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dateadd
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const duration = new Temporal.Duration(1);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.dateAdd({ ...base, [prop]: inf }, duration, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.dateAdd({ ...base, [prop]: obj }, duration, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/duration-argument-string-negative-fractional-units.js b/polyfill/test/Calendar/prototype/dateAdd/duration-argument-string-negative-fractional-units.js
deleted file mode 100644
index 7fb804b0a6..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/duration-argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const instance = new Temporal.PlainDate(2000, 5, 2, calendar);
-
-const resultHours = calendar.dateAdd(instance, "-PT24.567890123H");
-TemporalHelpers.assertPlainDate(resultHours, 2000, 5, "M05", 1, "negative fractional hours");
-
-const resultMinutes = calendar.dateAdd(instance, "-PT1440.567890123M");
-TemporalHelpers.assertPlainDate(resultMinutes, 2000, 5, "M05", 1, "negative fractional minutes");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/length.js b/polyfill/test/Calendar/prototype/dateAdd/length.js
deleted file mode 100644
index acc31761c7..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Temporal.Calendar.prototype.dateAdd.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateAdd, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/name.js b/polyfill/test/Calendar/prototype/dateAdd/name.js
deleted file mode 100644
index e4d966254e..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Temporal.Calendar.prototype.dateAdd.name is "dateAdd".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateAdd, "name", {
- value: "dateAdd",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateAdd/not-a-constructor.js b/polyfill/test/Calendar/prototype/dateAdd/not-a-constructor.js
deleted file mode 100644
index eb71ff8c00..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: >
- Temporal.Calendar.prototype.dateAdd does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.dateAdd();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.dateAdd), false,
- "isConstructor(Temporal.Calendar.prototype.dateAdd)");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/overflow-invalid-string.js b/polyfill/test/Calendar/prototype/dateAdd/overflow-invalid-string.js
deleted file mode 100644
index 004385da73..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/overflow-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-assert.throws(RangeError, () => calendar.dateAdd(date, duration, { overflow: "other string" }));
diff --git a/polyfill/test/Calendar/prototype/dateAdd/overflow-undefined.js b/polyfill/test/Calendar/prototype/dateAdd/overflow-undefined.js
deleted file mode 100644
index 453093bc57..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/overflow-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const date = new Temporal.PlainDate(2000, 5, 31, calendar);
-const duration = new Temporal.Duration(3, 1);
-
-const explicit = calendar.dateAdd(date, duration, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 2003, 6, "M06", 30, "default overflow is constrain");
-const implicit = calendar.dateAdd(date, duration, {});
-TemporalHelpers.assertPlainDate(implicit, 2003, 6, "M06", 30, "default overflow is constrain");
diff --git a/polyfill/test/Calendar/prototype/dateAdd/overflow-wrong-type.js b/polyfill/test/Calendar/prototype/dateAdd/overflow-wrong-type.js
deleted file mode 100644
index 945a720f25..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => calendar.dateAdd(date, duration, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 2003, 8, "M08", 5, descr),
-);
diff --git a/polyfill/test/Calendar/prototype/dateAdd/prop-desc.js b/polyfill/test/Calendar/prototype/dateAdd/prop-desc.js
deleted file mode 100644
index 6ae28e706a..0000000000
--- a/polyfill/test/Calendar/prototype/dateAdd/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: The "dateAdd" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.dateAdd,
- "function",
- "`typeof Calendar.prototype.dateAdd` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "dateAdd", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/branding.js b/polyfill/test/Calendar/prototype/dateFromFields/branding.js
deleted file mode 100644
index bd5250194a..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dateFromFields = Temporal.Calendar.prototype.dateFromFields;
-
-assert.sameValue(typeof dateFromFields, "function");
-
-assert.throws(TypeError, () => dateFromFields.call(undefined), "undefined");
-assert.throws(TypeError, () => dateFromFields.call(null), "null");
-assert.throws(TypeError, () => dateFromFields.call(true), "true");
-assert.throws(TypeError, () => dateFromFields.call(""), "empty string");
-assert.throws(TypeError, () => dateFromFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dateFromFields.call(1), "1");
-assert.throws(TypeError, () => dateFromFields.call({}), "plain object");
-assert.throws(TypeError, () => dateFromFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => dateFromFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/builtin.js b/polyfill/test/Calendar/prototype/dateFromFields/builtin.js
deleted file mode 100644
index 11d9635a51..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: >
- Tests that Temporal.Calendar.prototype.dateFromFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.dateFromFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.dateFromFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.dateFromFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.dateFromFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/fields-not-object.js b/polyfill/test/Calendar/prototype/dateFromFields/fields-not-object.js
deleted file mode 100644
index 97ce2e3343..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/fields-not-object.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Throw a TypeError if the fields is not an object
-features: [Symbol, Temporal]
----*/
-
-const tests = [undefined, null, false, "string", Symbol("sym"), Math.PI, 42n];
-const iso = Temporal.Calendar.from("iso8601");
-for (const fields of tests) {
- assert.throws(TypeError, () => iso.dateFromFields(fields, {}));
-}
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index 7083f47399..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.datefromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.dateFromFields({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.dateFromFields({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/length.js b/polyfill/test/Calendar/prototype/dateFromFields/length.js
deleted file mode 100644
index c03bcfc731..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Temporal.Calendar.prototype.dateFromFields.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateFromFields, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/name.js b/polyfill/test/Calendar/prototype/dateFromFields/name.js
deleted file mode 100644
index 35ea11bcd5..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Temporal.Calendar.prototype.dateFromFields.name is "dateFromFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateFromFields, "name", {
- value: "dateFromFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/not-a-constructor.js b/polyfill/test/Calendar/prototype/dateFromFields/not-a-constructor.js
deleted file mode 100644
index aca5ec2816..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: >
- Temporal.Calendar.prototype.dateFromFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.dateFromFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.dateFromFields), false,
- "isConstructor(Temporal.Calendar.prototype.dateFromFields)");
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/overflow-invalid-string.js b/polyfill/test/Calendar/prototype/dateFromFields/overflow-invalid-string.js
deleted file mode 100644
index 76bdfc8982..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/overflow-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.datefromfields step 6:
- 6. Let _result_ be ? ISODateFromFields(_fields_, _options_).
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-assert.throws(RangeError, () => calendar.dateFromFields({ year: 2000, month: 5, day: 2 }, { overflow: "other string" }));
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/overflow-undefined.js b/polyfill/test/Calendar/prototype/dateFromFields/overflow-undefined.js
deleted file mode 100644
index 841cebd951..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/overflow-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.datefromfields step 6:
- 6. Let _result_ be ? ISODateFromFields(_fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-
-const explicit = calendar.dateFromFields({ year: 2000, month: 15, day: 2 }, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 2000, 12, "M12", 2, "default overflow is constrain");
-const implicit = calendar.dateFromFields({ year: 2000, month: 15, day: 2 }, {});
-TemporalHelpers.assertPlainDate(implicit, 2000, 12, "M12", 2, "default overflow is constrain");
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/overflow-wrong-type.js b/polyfill/test/Calendar/prototype/dateFromFields/overflow-wrong-type.js
deleted file mode 100644
index 41adc3d46e..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.datefromfields step 6:
- 6. Let _result_ be ? ISODateFromFields(_fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => calendar.dateFromFields({ year: 2000, month: 5, day: 2 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 2, descr),
-);
diff --git a/polyfill/test/Calendar/prototype/dateFromFields/prop-desc.js b/polyfill/test/Calendar/prototype/dateFromFields/prop-desc.js
deleted file mode 100644
index 886e3a42ac..0000000000
--- a/polyfill/test/Calendar/prototype/dateFromFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.datefromfields
-description: The "dateFromFields" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.dateFromFields,
- "function",
- "`typeof Calendar.prototype.dateFromFields` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "dateFromFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js
deleted file mode 100644
index 9f8cec10b7..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dateuntil
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const other = new Temporal.PlainDate(2001, 6, 3);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.dateUntil({ ...base, [prop]: inf }, other), `${prop} property cannot be ${inf}`);
-
- assert.throws(RangeError, () => instance.dateUntil(other, { ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, prop);
- assert.throws(RangeError, () => instance.dateUntil({ ...base, [prop]: obj1 }, other));
- assert.compareArray(calls1, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, prop);
- assert.throws(RangeError, () => instance.dateUntil(other, { ...base, [prop]: obj2 }));
- assert.compareArray(calls2, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/argument-plaindatetime.js b/polyfill/test/Calendar/prototype/dateUntil/argument-plaindatetime.js
deleted file mode 100644
index 29cbe4481e..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/argument-plaindatetime.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dateuntil steps 4–5:
- 4. Set _one_ to ? ToTemporalDate(_one_).
- 5. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const calendar = new Temporal.Calendar("iso8601");
- const result = calendar.dateUntil(datetime, date);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 0, "time part dropped");
-});
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const calendar = new Temporal.Calendar("iso8601");
- const result = calendar.dateUntil(date, datetime);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 0, "time part dropped");
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index accc9ceb66..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, Infinity, -Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(RangeError, () => calendar.dateUntil(datetime, date));
- assert.throws(RangeError, () => calendar.dateUntil(date, datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index d33b0805c0..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(RangeError, () => calendar.dateUntil(datetime, date));
- assert.throws(RangeError, () => calendar.dateUntil(date, datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6d283f4a15..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(TypeError, () => calendar.dateUntil(datetime, date));
- assert.throws(TypeError, () => calendar.dateUntil(date, datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/basic.js b/polyfill/test/Calendar/prototype/dateUntil/basic.js
deleted file mode 100644
index c7d4d4b49f..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/basic.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Basic tests for dateUntil().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const date1 = Temporal.PlainDate.from("1999-09-03");
-const date2 = Temporal.PlainDate.from("2000-01-01");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil(date1, date2, {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "two PlainDates");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil(Temporal.PlainDateTime.from("1999-09-03T08:15:30"), date2, {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "first argument: PlainDateTime");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil({ year: 1999, month: 9, day: 3 }, date2, {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "first argument: property bag");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil("1999-09-03", date2, {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "first argument: string");
-
-assert.throws(TypeError, () => iso.dateUntil({ month: 11 }, date2, {}), "first argument: missing property");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil(date1, Temporal.PlainDateTime.from("2000-01-01T08:15:30"), {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "second argument: PlainDateTime");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil(date1, { year: 2000, month: 1, day: 1 }, {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "second argument: property bag");
-
-TemporalHelpers.assertDuration(
- iso.dateUntil(date1, "2000-01-01", {}),
- 0, 0, 0, 120, 0, 0, 0, 0, 0, 0, "second argument: string");
-
-assert.throws(TypeError, () => iso.dateUntil(date1, { month: 11 }, {}), "second argument: missing property");
diff --git a/polyfill/test/Calendar/prototype/dateUntil/branding.js b/polyfill/test/Calendar/prototype/dateUntil/branding.js
deleted file mode 100644
index b6da8916a3..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dateUntil = Temporal.Calendar.prototype.dateUntil;
-
-assert.sameValue(typeof dateUntil, "function");
-
-assert.throws(TypeError, () => dateUntil.call(undefined), "undefined");
-assert.throws(TypeError, () => dateUntil.call(null), "null");
-assert.throws(TypeError, () => dateUntil.call(true), "true");
-assert.throws(TypeError, () => dateUntil.call(""), "empty string");
-assert.throws(TypeError, () => dateUntil.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dateUntil.call(1), "1");
-assert.throws(TypeError, () => dateUntil.call({}), "plain object");
-assert.throws(TypeError, () => dateUntil.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => dateUntil.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/dateUntil/builtin.js b/polyfill/test/Calendar/prototype/dateUntil/builtin.js
deleted file mode 100644
index 94ebc2df63..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: >
- Tests that Temporal.Calendar.prototype.dateUntil
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.dateUntil),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.dateUntil),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.dateUntil),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.dateUntil.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/dateUntil/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/dateUntil/calendar-fields-iterable.js
deleted file mode 100644
index a14e3fa7ca..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/calendar-fields-iterable.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.dateuntil steps 4–5:
- 4. Set _one_ to ? ToTemporalDate(_one_).
- 5. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-const calendar3 = TemporalHelpers.calendarFieldsIterable();
-calendar1.dateUntil(
- { year: 2000, month: 5, day: 2, calendar: calendar2 },
- { year: 2005, month: 6, day: 3, calendar: calendar3 },
-);
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.sameValue(calendar3.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
-assert.compareArray(calendar3.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar3.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/dateUntil/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/dateUntil/calendar-temporal-object.js
deleted file mode 100644
index 57e94608a1..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/calendar-temporal-object.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dateuntil steps 4–5:
- 4. Set _one_ to ? ToTemporalDate(_one_).
- 5. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.dateUntil(
- { year: 2000, month: 5, day: 2, calendar: temporalObject },
- { year: 2005, month: 6, day: 3, calendar: temporalObject },
- );
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/largestunit-plurals-accepted.js b/polyfill/test/Calendar/prototype/dateUntil/largestunit-plurals-accepted.js
deleted file mode 100644
index 4504804474..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 12);
-const calendar = new Temporal.Calendar("iso8601");
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => calendar.dateUntil(earlier, later, { largestUnit }), validUnits);
diff --git a/polyfill/test/Calendar/prototype/dateUntil/length.js b/polyfill/test/Calendar/prototype/dateUntil/length.js
deleted file mode 100644
index 30c15f19ad..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Temporal.Calendar.prototype.dateUntil.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateUntil, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/name.js b/polyfill/test/Calendar/prototype/dateUntil/name.js
deleted file mode 100644
index c648ae3738..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: Temporal.Calendar.prototype.dateUntil.name is "dateUntil".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dateUntil, "name", {
- value: "dateUntil",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dateUntil/not-a-constructor.js b/polyfill/test/Calendar/prototype/dateUntil/not-a-constructor.js
deleted file mode 100644
index c0293659bb..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: >
- Temporal.Calendar.prototype.dateUntil does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.dateUntil();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.dateUntil), false,
- "isConstructor(Temporal.Calendar.prototype.dateUntil)");
diff --git a/polyfill/test/Calendar/prototype/dateUntil/prop-desc.js b/polyfill/test/Calendar/prototype/dateUntil/prop-desc.js
deleted file mode 100644
index b0ce5761b9..0000000000
--- a/polyfill/test/Calendar/prototype/dateUntil/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateuntil
-description: The "dateUntil" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.dateUntil,
- "function",
- "`typeof Calendar.prototype.dateUntil` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "dateUntil", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 4aba77d4c4..0000000000
--- a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.day(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index cd75839b01..0000000000
--- a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.day(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6f26cfb828..0000000000
--- a/polyfill/test/Calendar/prototype/day/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.day(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/day/basic.js b/polyfill/test/Calendar/prototype/day/basic.js
deleted file mode 100644
index 3ae7fd4421..0000000000
--- a/polyfill/test/Calendar/prototype/day/basic.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Basic tests for day().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 5;
-assert.sameValue(iso.day(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.day(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.day(Temporal.PlainMonthDay.from("11-05")), res, "PlainMonthDay");
-assert.sameValue(iso.day({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.day("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.day({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/day/branding.js b/polyfill/test/Calendar/prototype/day/branding.js
deleted file mode 100644
index eafea5fcfe..0000000000
--- a/polyfill/test/Calendar/prototype/day/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const day = Temporal.Calendar.prototype.day;
-
-assert.sameValue(typeof day, "function");
-
-assert.throws(TypeError, () => day.call(undefined), "undefined");
-assert.throws(TypeError, () => day.call(null), "null");
-assert.throws(TypeError, () => day.call(true), "true");
-assert.throws(TypeError, () => day.call(""), "empty string");
-assert.throws(TypeError, () => day.call(Symbol()), "symbol");
-assert.throws(TypeError, () => day.call(1), "1");
-assert.throws(TypeError, () => day.call({}), "plain object");
-assert.throws(TypeError, () => day.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => day.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/day/builtin.js b/polyfill/test/Calendar/prototype/day/builtin.js
deleted file mode 100644
index cb44767482..0000000000
--- a/polyfill/test/Calendar/prototype/day/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: >
- Tests that Temporal.Calendar.prototype.day
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.day),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.day),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.day),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.day.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/day/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/day/calendar-fields-iterable.js
deleted file mode 100644
index 55a1eb8ebe..0000000000
--- a/polyfill/test/Calendar/prototype/day/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.day step 4:
- 4. Return ? ISODay(_dateOrDateTime_).
- sec-temporal-isoday step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(calendar, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.day({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/day/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/day/calendar-temporal-object.js
deleted file mode 100644
index ce9beec183..0000000000
--- a/polyfill/test/Calendar/prototype/day/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.day step 4:
- 4. Return ? ISODay(_dateOrDateTime_).
- sec-temporal-isoday step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.day({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/day/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/day/infinity-throws-rangeerror.js
deleted file mode 100644
index 0299adbd58..0000000000
--- a/polyfill/test/Calendar/prototype/day/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.day
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.day({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.day({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/day/length.js b/polyfill/test/Calendar/prototype/day/length.js
deleted file mode 100644
index df2b2e82ac..0000000000
--- a/polyfill/test/Calendar/prototype/day/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Temporal.Calendar.prototype.day.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.day, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/day/name.js b/polyfill/test/Calendar/prototype/day/name.js
deleted file mode 100644
index 260ecb8876..0000000000
--- a/polyfill/test/Calendar/prototype/day/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: Temporal.Calendar.prototype.day.name is "day".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.day, "name", {
- value: "day",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/day/not-a-constructor.js b/polyfill/test/Calendar/prototype/day/not-a-constructor.js
deleted file mode 100644
index fcb976cd0c..0000000000
--- a/polyfill/test/Calendar/prototype/day/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: >
- Temporal.Calendar.prototype.day does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.day();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.day), false,
- "isConstructor(Temporal.Calendar.prototype.day)");
diff --git a/polyfill/test/Calendar/prototype/day/prop-desc.js b/polyfill/test/Calendar/prototype/day/prop-desc.js
deleted file mode 100644
index dd590a2245..0000000000
--- a/polyfill/test/Calendar/prototype/day/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.day
-description: The "day" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.day,
- "function",
- "`typeof Calendar.prototype.day` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "day", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 3730b6d373..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dayOfWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 13bb558cf6..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dayOfWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index dd21b6c28b..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.dayOfWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/basic.js b/polyfill/test/Calendar/prototype/dayOfWeek/basic.js
deleted file mode 100644
index f8d6b84ae5..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Basic tests for dayOfWeek().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 6;
-assert.sameValue(iso.dayOfWeek(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.dayOfWeek(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.dayOfWeek({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.dayOfWeek("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.dayOfWeek({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/branding.js b/polyfill/test/Calendar/prototype/dayOfWeek/branding.js
deleted file mode 100644
index bbcfc7fb25..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfWeek = Temporal.Calendar.prototype.dayOfWeek;
-
-assert.sameValue(typeof dayOfWeek, "function");
-
-assert.throws(TypeError, () => dayOfWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfWeek.call(null), "null");
-assert.throws(TypeError, () => dayOfWeek.call(true), "true");
-assert.throws(TypeError, () => dayOfWeek.call(""), "empty string");
-assert.throws(TypeError, () => dayOfWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfWeek.call(1), "1");
-assert.throws(TypeError, () => dayOfWeek.call({}), "plain object");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/builtin.js b/polyfill/test/Calendar/prototype/dayOfWeek/builtin.js
deleted file mode 100644
index 85957bda82..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: >
- Tests that Temporal.Calendar.prototype.dayOfWeek
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.dayOfWeek),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.dayOfWeek),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.dayOfWeek),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.dayOfWeek.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/dayOfWeek/calendar-fields-iterable.js
deleted file mode 100644
index 3f8a861f64..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.dayofweek step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.dayOfWeek({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/dayOfWeek/calendar-temporal-object.js
deleted file mode 100644
index bdc9e50e2c..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dayofweek step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.dayOfWeek({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js
deleted file mode 100644
index ad7c225f87..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dayofweek
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.dayOfWeek({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.dayOfWeek({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/length.js b/polyfill/test/Calendar/prototype/dayOfWeek/length.js
deleted file mode 100644
index 0192cbf915..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Temporal.Calendar.prototype.dayOfWeek.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dayOfWeek, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/name.js b/polyfill/test/Calendar/prototype/dayOfWeek/name.js
deleted file mode 100644
index ea8c9f9794..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Temporal.Calendar.prototype.dayOfWeek.name is "dayOfWeek".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dayOfWeek, "name", {
- value: "dayOfWeek",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/not-a-constructor.js b/polyfill/test/Calendar/prototype/dayOfWeek/not-a-constructor.js
deleted file mode 100644
index b5a3810f4b..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: >
- Temporal.Calendar.prototype.dayOfWeek does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.dayOfWeek();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.dayOfWeek), false,
- "isConstructor(Temporal.Calendar.prototype.dayOfWeek)");
diff --git a/polyfill/test/Calendar/prototype/dayOfWeek/prop-desc.js b/polyfill/test/Calendar/prototype/dayOfWeek/prop-desc.js
deleted file mode 100644
index 8f8f31290a..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfWeek/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: The "dayOfWeek" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.dayOfWeek,
- "function",
- "`typeof Calendar.prototype.dayOfWeek` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "dayOfWeek", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 086fe1d553..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dayOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 0bfff01396..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.dayOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index ec98fd7ede..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.dayOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/basic.js b/polyfill/test/Calendar/prototype/dayOfYear/basic.js
deleted file mode 100644
index 6c1621547a..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Basic tests for dayOfYear().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 309;
-assert.sameValue(iso.dayOfYear(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.dayOfYear(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.dayOfYear({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.dayOfYear("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.dayOfYear({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/branding.js b/polyfill/test/Calendar/prototype/dayOfYear/branding.js
deleted file mode 100644
index b60323ae65..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfYear = Temporal.Calendar.prototype.dayOfYear;
-
-assert.sameValue(typeof dayOfYear, "function");
-
-assert.throws(TypeError, () => dayOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfYear.call(null), "null");
-assert.throws(TypeError, () => dayOfYear.call(true), "true");
-assert.throws(TypeError, () => dayOfYear.call(""), "empty string");
-assert.throws(TypeError, () => dayOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfYear.call(1), "1");
-assert.throws(TypeError, () => dayOfYear.call({}), "plain object");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/builtin.js b/polyfill/test/Calendar/prototype/dayOfYear/builtin.js
deleted file mode 100644
index 8abab318b2..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: >
- Tests that Temporal.Calendar.prototype.dayOfYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.dayOfYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.dayOfYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.dayOfYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.dayOfYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/dayOfYear/calendar-fields-iterable.js
deleted file mode 100644
index 902ec1f349..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.dayofyear step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.dayOfYear({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/dayOfYear/calendar-temporal-object.js
deleted file mode 100644
index 414c9ac960..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.dayofyear step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.dayOfYear({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 50a59ef156..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dayofyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.dayOfYear({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.dayOfYear({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/length.js b/polyfill/test/Calendar/prototype/dayOfYear/length.js
deleted file mode 100644
index 045b87e800..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Temporal.Calendar.prototype.dayOfYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dayOfYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/name.js b/polyfill/test/Calendar/prototype/dayOfYear/name.js
deleted file mode 100644
index 60dfa0b8e9..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: Temporal.Calendar.prototype.dayOfYear.name is "dayOfYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.dayOfYear, "name", {
- value: "dayOfYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/dayOfYear/not-a-constructor.js
deleted file mode 100644
index c66309a410..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: >
- Temporal.Calendar.prototype.dayOfYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.dayOfYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.dayOfYear), false,
- "isConstructor(Temporal.Calendar.prototype.dayOfYear)");
diff --git a/polyfill/test/Calendar/prototype/dayOfYear/prop-desc.js b/polyfill/test/Calendar/prototype/dayOfYear/prop-desc.js
deleted file mode 100644
index 6d9c5be912..0000000000
--- a/polyfill/test/Calendar/prototype/dayOfYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofyear
-description: The "dayOfYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.dayOfYear,
- "function",
- "`typeof Calendar.prototype.dayOfYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "dayOfYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 9d38028a54..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInMonth(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index d80b2222ae..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInMonth(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 73b153938d..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.daysInMonth(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/basic.js b/polyfill/test/Calendar/prototype/daysInMonth/basic.js
deleted file mode 100644
index 7405e97587..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Basic tests for daysInMonth().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 30;
-assert.sameValue(iso.daysInMonth(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.daysInMonth(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.daysInMonth({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.daysInMonth("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.daysInMonth({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/branding.js b/polyfill/test/Calendar/prototype/daysInMonth/branding.js
deleted file mode 100644
index 84f76e7aaa..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInMonth = Temporal.Calendar.prototype.daysInMonth;
-
-assert.sameValue(typeof daysInMonth, "function");
-
-assert.throws(TypeError, () => daysInMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInMonth.call(null), "null");
-assert.throws(TypeError, () => daysInMonth.call(true), "true");
-assert.throws(TypeError, () => daysInMonth.call(""), "empty string");
-assert.throws(TypeError, () => daysInMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInMonth.call(1), "1");
-assert.throws(TypeError, () => daysInMonth.call({}), "plain object");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/builtin.js b/polyfill/test/Calendar/prototype/daysInMonth/builtin.js
deleted file mode 100644
index d588deb0aa..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: >
- Tests that Temporal.Calendar.prototype.daysInMonth
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.daysInMonth),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.daysInMonth),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.daysInMonth),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.daysInMonth.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/daysInMonth/calendar-fields-iterable.js
deleted file mode 100644
index 835fc7bea2..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.daysinmonth step 4.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.daysInMonth({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/daysInMonth/calendar-temporal-object.js
deleted file mode 100644
index a2aa62f9e3..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.daysinmonth step 4.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.daysInMonth({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js
deleted file mode 100644
index 83a50e18cb..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinmonth
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.daysInMonth({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.daysInMonth({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/length.js b/polyfill/test/Calendar/prototype/daysInMonth/length.js
deleted file mode 100644
index ca315427f3..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Temporal.Calendar.prototype.daysInMonth.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInMonth, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/name.js b/polyfill/test/Calendar/prototype/daysInMonth/name.js
deleted file mode 100644
index 8634c31f4b..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: Temporal.Calendar.prototype.daysInMonth.name is "daysInMonth".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInMonth, "name", {
- value: "daysInMonth",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/not-a-constructor.js b/polyfill/test/Calendar/prototype/daysInMonth/not-a-constructor.js
deleted file mode 100644
index d621f79b0b..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: >
- Temporal.Calendar.prototype.daysInMonth does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.daysInMonth();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.daysInMonth), false,
- "isConstructor(Temporal.Calendar.prototype.daysInMonth)");
diff --git a/polyfill/test/Calendar/prototype/daysInMonth/prop-desc.js b/polyfill/test/Calendar/prototype/daysInMonth/prop-desc.js
deleted file mode 100644
index 5ea6170c68..0000000000
--- a/polyfill/test/Calendar/prototype/daysInMonth/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinmonth
-description: The "daysInMonth" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.daysInMonth,
- "function",
- "`typeof Calendar.prototype.daysInMonth` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "daysInMonth", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 03c9ed6433..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index e7cf0a2733..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index b9c8693588..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.daysInWeek(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/basic.js b/polyfill/test/Calendar/prototype/daysInWeek/basic.js
deleted file mode 100644
index 4392bc5322..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Basic tests for daysInWeek().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 7;
-assert.sameValue(iso.daysInWeek(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.daysInWeek(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.daysInWeek({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.daysInWeek("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.daysInWeek({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/branding.js b/polyfill/test/Calendar/prototype/daysInWeek/branding.js
deleted file mode 100644
index 1d1c859bb5..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInWeek = Temporal.Calendar.prototype.daysInWeek;
-
-assert.sameValue(typeof daysInWeek, "function");
-
-assert.throws(TypeError, () => daysInWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInWeek.call(null), "null");
-assert.throws(TypeError, () => daysInWeek.call(true), "true");
-assert.throws(TypeError, () => daysInWeek.call(""), "empty string");
-assert.throws(TypeError, () => daysInWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInWeek.call(1), "1");
-assert.throws(TypeError, () => daysInWeek.call({}), "plain object");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/builtin.js b/polyfill/test/Calendar/prototype/daysInWeek/builtin.js
deleted file mode 100644
index e7781c447d..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: >
- Tests that Temporal.Calendar.prototype.daysInWeek
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.daysInWeek),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.daysInWeek),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.daysInWeek),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.daysInWeek.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/daysInWeek/calendar-fields-iterable.js
deleted file mode 100644
index fdc68aee0d..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.daysinweek step 4:
- 4. Perform ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.daysInWeek({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/daysInWeek/calendar-temporal-object.js
deleted file mode 100644
index 2cf851b1ff..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.daysinweek step 4:
- 4. Perform ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.daysInWeek({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js
deleted file mode 100644
index 2e44133cdc..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinweek
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.daysInWeek({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.daysInWeek({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/length.js b/polyfill/test/Calendar/prototype/daysInWeek/length.js
deleted file mode 100644
index 5cdbe2226e..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Temporal.Calendar.prototype.daysInWeek.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInWeek, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/name.js b/polyfill/test/Calendar/prototype/daysInWeek/name.js
deleted file mode 100644
index 06e99bcb85..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: Temporal.Calendar.prototype.daysInWeek.name is "daysInWeek".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInWeek, "name", {
- value: "daysInWeek",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/not-a-constructor.js b/polyfill/test/Calendar/prototype/daysInWeek/not-a-constructor.js
deleted file mode 100644
index 0d37c1cfc7..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: >
- Temporal.Calendar.prototype.daysInWeek does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.daysInWeek();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.daysInWeek), false,
- "isConstructor(Temporal.Calendar.prototype.daysInWeek)");
diff --git a/polyfill/test/Calendar/prototype/daysInWeek/prop-desc.js b/polyfill/test/Calendar/prototype/daysInWeek/prop-desc.js
deleted file mode 100644
index 0b597f93d8..0000000000
--- a/polyfill/test/Calendar/prototype/daysInWeek/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinweek
-description: The "daysInWeek" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.daysInWeek,
- "function",
- "`typeof Calendar.prototype.daysInWeek` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "daysInWeek", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8c9b14ba36..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 5fb548bddf..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.daysInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 8c8f3ad867..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.daysInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/basic.js b/polyfill/test/Calendar/prototype/daysInYear/basic.js
deleted file mode 100644
index 37f70cd3ee..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/basic.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Basic tests for daysInYear().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 365;
-assert.sameValue(iso.daysInYear(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.daysInYear(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.daysInYear(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.daysInYear({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.daysInYear("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.daysInYear({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/daysInYear/branding.js b/polyfill/test/Calendar/prototype/daysInYear/branding.js
deleted file mode 100644
index e7bf10dbf6..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInYear = Temporal.Calendar.prototype.daysInYear;
-
-assert.sameValue(typeof daysInYear, "function");
-
-assert.throws(TypeError, () => daysInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInYear.call(null), "null");
-assert.throws(TypeError, () => daysInYear.call(true), "true");
-assert.throws(TypeError, () => daysInYear.call(""), "empty string");
-assert.throws(TypeError, () => daysInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInYear.call(1), "1");
-assert.throws(TypeError, () => daysInYear.call({}), "plain object");
-assert.throws(TypeError, () => daysInYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => daysInYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/daysInYear/builtin.js b/polyfill/test/Calendar/prototype/daysInYear/builtin.js
deleted file mode 100644
index 70eb5b2051..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: >
- Tests that Temporal.Calendar.prototype.daysInYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.daysInYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.daysInYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.daysInYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.daysInYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/daysInYear/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/daysInYear/calendar-fields-iterable.js
deleted file mode 100644
index 74f9874efa..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.daysinyear step 4:
- 4. Let _year_ be ? ISOYear(_dateOrDateTime_).
- sec-temporal-isoyear step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.daysInYear({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/daysInYear/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/daysInYear/calendar-temporal-object.js
deleted file mode 100644
index 0334233bfb..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.daysinyear step 4:
- 4. Let _year_ be ? ISOYear(_dateOrDateTime_).
- sec-temporal-isoyear step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.daysInYear({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 8c21c5b7a7..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.daysInYear({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.daysInYear({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/length.js b/polyfill/test/Calendar/prototype/daysInYear/length.js
deleted file mode 100644
index 52deaf36d8..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Temporal.Calendar.prototype.daysInYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/name.js b/polyfill/test/Calendar/prototype/daysInYear/name.js
deleted file mode 100644
index 1adacb830b..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: Temporal.Calendar.prototype.daysInYear.name is "daysInYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.daysInYear, "name", {
- value: "daysInYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/daysInYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/daysInYear/not-a-constructor.js
deleted file mode 100644
index c351d1e5ac..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: >
- Temporal.Calendar.prototype.daysInYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.daysInYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.daysInYear), false,
- "isConstructor(Temporal.Calendar.prototype.daysInYear)");
diff --git a/polyfill/test/Calendar/prototype/daysInYear/prop-desc.js b/polyfill/test/Calendar/prototype/daysInYear/prop-desc.js
deleted file mode 100644
index 0f2af09c07..0000000000
--- a/polyfill/test/Calendar/prototype/daysInYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.daysinyear
-description: The "daysInYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.daysInYear,
- "function",
- "`typeof Calendar.prototype.daysInYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "daysInYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/era/branding.js b/polyfill/test/Calendar/prototype/era/branding.js
deleted file mode 100644
index b8b5ed214c..0000000000
--- a/polyfill/test/Calendar/prototype/era/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const era = Temporal.Calendar.prototype.era;
-
-assert.sameValue(typeof era, "function");
-
-assert.throws(TypeError, () => era.call(undefined), "undefined");
-assert.throws(TypeError, () => era.call(null), "null");
-assert.throws(TypeError, () => era.call(true), "true");
-assert.throws(TypeError, () => era.call(""), "empty string");
-assert.throws(TypeError, () => era.call(Symbol()), "symbol");
-assert.throws(TypeError, () => era.call(1), "1");
-assert.throws(TypeError, () => era.call({}), "plain object");
-assert.throws(TypeError, () => era.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => era.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/era/builtin.js b/polyfill/test/Calendar/prototype/era/builtin.js
deleted file mode 100644
index f51e65a397..0000000000
--- a/polyfill/test/Calendar/prototype/era/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: >
- Tests that Temporal.Calendar.prototype.era
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.era),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.era),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.era),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.era.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/era/length.js b/polyfill/test/Calendar/prototype/era/length.js
deleted file mode 100644
index 622daa6779..0000000000
--- a/polyfill/test/Calendar/prototype/era/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: Temporal.Calendar.prototype.era.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.era, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/era/name.js b/polyfill/test/Calendar/prototype/era/name.js
deleted file mode 100644
index a188e02d84..0000000000
--- a/polyfill/test/Calendar/prototype/era/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: Temporal.Calendar.prototype.era.name is "era".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.era, "name", {
- value: "era",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/era/not-a-constructor.js b/polyfill/test/Calendar/prototype/era/not-a-constructor.js
deleted file mode 100644
index 41c0c40829..0000000000
--- a/polyfill/test/Calendar/prototype/era/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: >
- Temporal.Calendar.prototype.era does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.era();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.era), false,
- "isConstructor(Temporal.Calendar.prototype.era)");
diff --git a/polyfill/test/Calendar/prototype/era/prop-desc.js b/polyfill/test/Calendar/prototype/era/prop-desc.js
deleted file mode 100644
index 5093e9bad7..0000000000
--- a/polyfill/test/Calendar/prototype/era/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.era
-description: The "era" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.era,
- "function",
- "`typeof Calendar.prototype.era` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "era", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/eraYear/branding.js b/polyfill/test/Calendar/prototype/eraYear/branding.js
deleted file mode 100644
index 8bd9c313ff..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const eraYear = Temporal.Calendar.prototype.eraYear;
-
-assert.sameValue(typeof eraYear, "function");
-
-assert.throws(TypeError, () => eraYear.call(undefined), "undefined");
-assert.throws(TypeError, () => eraYear.call(null), "null");
-assert.throws(TypeError, () => eraYear.call(true), "true");
-assert.throws(TypeError, () => eraYear.call(""), "empty string");
-assert.throws(TypeError, () => eraYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => eraYear.call(1), "1");
-assert.throws(TypeError, () => eraYear.call({}), "plain object");
-assert.throws(TypeError, () => eraYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => eraYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/eraYear/builtin.js b/polyfill/test/Calendar/prototype/eraYear/builtin.js
deleted file mode 100644
index 234fe88aea..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: >
- Tests that Temporal.Calendar.prototype.eraYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.eraYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.eraYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.eraYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.eraYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/eraYear/length.js b/polyfill/test/Calendar/prototype/eraYear/length.js
deleted file mode 100644
index b65243ef4b..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: Temporal.Calendar.prototype.eraYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.eraYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/eraYear/name.js b/polyfill/test/Calendar/prototype/eraYear/name.js
deleted file mode 100644
index dc9c0ffde5..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: Temporal.Calendar.prototype.eraYear.name is "eraYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.eraYear, "name", {
- value: "eraYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/eraYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/eraYear/not-a-constructor.js
deleted file mode 100644
index a227a177d1..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: >
- Temporal.Calendar.prototype.eraYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.eraYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.eraYear), false,
- "isConstructor(Temporal.Calendar.prototype.eraYear)");
diff --git a/polyfill/test/Calendar/prototype/eraYear/prop-desc.js b/polyfill/test/Calendar/prototype/eraYear/prop-desc.js
deleted file mode 100644
index 9d85729855..0000000000
--- a/polyfill/test/Calendar/prototype/eraYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.erayear
-description: The "eraYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.eraYear,
- "function",
- "`typeof Calendar.prototype.eraYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "eraYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/fields/argument-iterable-not-array.js b/polyfill/test/Calendar/prototype/fields/argument-iterable-not-array.js
deleted file mode 100644
index 31e6a75b75..0000000000
--- a/polyfill/test/Calendar/prototype/fields/argument-iterable-not-array.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: A non-Array iterable passed as the argument is exhausted
-info: |
- sec-temporal.calendar.prototype.fields step 4:
- 4. Let _fieldNames_ be ? IterableToList(_fields_).
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const fieldNames = ["day", "month", "monthCode", "year"];
-const iterable = {
- iteratorExhausted: false,
- *[Symbol.iterator]() {
- yield* fieldNames;
- this.iteratorExhausted = true;
- },
-};
-
-const calendar = new Temporal.Calendar("iso8601");
-const result = calendar.fields(iterable);
-
-assert.compareArray(result, fieldNames);
-assert(iterable.iteratorExhausted);
diff --git a/polyfill/test/Calendar/prototype/fields/argument-throws-duplicate-keys.js b/polyfill/test/Calendar/prototype/fields/argument-throws-duplicate-keys.js
deleted file mode 100644
index f34d85f7ea..0000000000
--- a/polyfill/test/Calendar/prototype/fields/argument-throws-duplicate-keys.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: Duplicate fields are not allowed in the argument to Calendar.prototype.fields
-info: |
- sec-temporal.calendar.prototype.fields step 7.b.iii:
- iii. If _fieldNames_ contains _nextValue_, then
- 1. Let _completion_ be ThrowCompletion(a newly created *RangeError* object).
- 2. Return ? IteratorClose(_iteratorRecord_, _completion_).
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-assert.throws(RangeError, () => calendar.fields(["day", "month", "day"]));
-assert.throws(RangeError, () => calendar.fields(["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "year"]));
-
-const manyFields = {
- count: 0
-};
-
-manyFields[Symbol.iterator] = function*() {
- while (this.count++ < 100) yield "year";
-};
-
-assert.throws(RangeError, () => calendar.fields(manyFields), "Rejected duplicate values");
-assert.sameValue(manyFields.count, 2, "Rejected first duplicate value");
diff --git a/polyfill/test/Calendar/prototype/fields/argument-throws-invalid-keys.js b/polyfill/test/Calendar/prototype/fields/argument-throws-invalid-keys.js
deleted file mode 100644
index ec6a73b693..0000000000
--- a/polyfill/test/Calendar/prototype/fields/argument-throws-invalid-keys.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: Calendar.prototype.fields rejects input field names that are not singular names of temporal units
-info: |
- sec-temporal.calendar.prototype.fields step 7.b.ii:
- 7. 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. If Type(nextValue) is not String, then
- 1. Let completion be ThrowCompletion(a newly created TypeError object).
- 2. Return ? IteratorClose(iteratorRecord, completion).
- sec-temporal.calendar.prototype.fields step 7.b.iv:
- iv. If _nextValue_ is not one of *"year"*, *"month"*, *"monthCode"*, *"day"*, *"hour"*, *"minute"*, *"second"*, *"millisecond"*, *"microsecond"*, *"nanosecond"*, then
- 1. Let _completion_ be ThrowCompletion(a newly created *RangeError* object).
- 2. Return ? IteratorClose(_iteratorRecord_, _completion_).
-
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-assert.throws(TypeError, () => calendar.fields([1]));
-assert.throws(TypeError, () => calendar.fields([1n]));
-assert.throws(TypeError, () => calendar.fields([Symbol('foo')]));
-assert.throws(TypeError, () => calendar.fields([true]));
-assert.throws(TypeError, () => calendar.fields([null]));
-assert.throws(TypeError, () => calendar.fields([{}]));
-assert.throws(TypeError, () => calendar.fields([undefined]));
-assert.throws(TypeError, () => calendar.fields(["day", 1]));
-assert.throws(RangeError, () => calendar.fields(["month", "days"]));
-assert.throws(RangeError, () => calendar.fields(["days"]));
-assert.throws(RangeError, () => calendar.fields(["people"]));
diff --git a/polyfill/test/Calendar/prototype/fields/branding.js b/polyfill/test/Calendar/prototype/fields/branding.js
deleted file mode 100644
index bd62883331..0000000000
--- a/polyfill/test/Calendar/prototype/fields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const fields = Temporal.Calendar.prototype.fields;
-
-assert.sameValue(typeof fields, "function");
-
-assert.throws(TypeError, () => fields.call(undefined), "undefined");
-assert.throws(TypeError, () => fields.call(null), "null");
-assert.throws(TypeError, () => fields.call(true), "true");
-assert.throws(TypeError, () => fields.call(""), "empty string");
-assert.throws(TypeError, () => fields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => fields.call(1), "1");
-assert.throws(TypeError, () => fields.call({}), "plain object");
-assert.throws(TypeError, () => fields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => fields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/fields/builtin.js b/polyfill/test/Calendar/prototype/fields/builtin.js
deleted file mode 100644
index 7467b415ce..0000000000
--- a/polyfill/test/Calendar/prototype/fields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: >
- Tests that Temporal.Calendar.prototype.fields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.fields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.fields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.fields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.fields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/fields/length.js b/polyfill/test/Calendar/prototype/fields/length.js
deleted file mode 100644
index b5d53e0210..0000000000
--- a/polyfill/test/Calendar/prototype/fields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: Temporal.Calendar.prototype.fields.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.fields, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/fields/name.js b/polyfill/test/Calendar/prototype/fields/name.js
deleted file mode 100644
index 1d80b46550..0000000000
--- a/polyfill/test/Calendar/prototype/fields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: Temporal.Calendar.prototype.fields.name is "fields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.fields, "name", {
- value: "fields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/fields/non-string-element-throws.js b/polyfill/test/Calendar/prototype/fields/non-string-element-throws.js
deleted file mode 100644
index 40ca483693..0000000000
--- a/polyfill/test/Calendar/prototype/fields/non-string-element-throws.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: TypeError thrown if the input iterable yields a non-String value
-info: |
- sec-temporal.calendar.prototype.fields step 5:
- 5. For each element _fieldName_ of _fieldNames_, do
- a. If Type(_fieldName_) is not String, throw a *TypeError* exception.
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-[true, 3, 3n, {}, () => {}, Symbol(), undefined, null].forEach((element) => {
- assert.throws(TypeError, () => calendar.fields([element]), "bad input to calendar.fields()");
-});
diff --git a/polyfill/test/Calendar/prototype/fields/not-a-constructor.js b/polyfill/test/Calendar/prototype/fields/not-a-constructor.js
deleted file mode 100644
index d38455b080..0000000000
--- a/polyfill/test/Calendar/prototype/fields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: >
- Temporal.Calendar.prototype.fields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.fields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.fields), false,
- "isConstructor(Temporal.Calendar.prototype.fields)");
diff --git a/polyfill/test/Calendar/prototype/fields/prop-desc.js b/polyfill/test/Calendar/prototype/fields/prop-desc.js
deleted file mode 100644
index 480de4f9cf..0000000000
--- a/polyfill/test/Calendar/prototype/fields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.fields
-description: The "fields" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.fields,
- "function",
- "`typeof Calendar.prototype.fields` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "fields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/id/prop-desc.js b/polyfill/test/Calendar/prototype/id/prop-desc.js
deleted file mode 100644
index 7b2dbe4e91..0000000000
--- a/polyfill/test/Calendar/prototype/id/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.calendar.prototype.id
-description: The "id" property of Temporal.Calendar.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Calendar.prototype, "id");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 4899fee920..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.inLeapYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 3122822de5..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.inLeapYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6b114ea0f8..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.inLeapYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/basic.js b/polyfill/test/Calendar/prototype/inLeapYear/basic.js
deleted file mode 100644
index 4359c4c8d4..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/basic.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Basic tests for inLeapYear().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = false;
-assert.sameValue(iso.inLeapYear(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.inLeapYear(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.inLeapYear(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.inLeapYear({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.inLeapYear("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.inLeapYear({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/branding.js b/polyfill/test/Calendar/prototype/inLeapYear/branding.js
deleted file mode 100644
index 8b3e5de8a2..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const inLeapYear = Temporal.Calendar.prototype.inLeapYear;
-
-assert.sameValue(typeof inLeapYear, "function");
-
-assert.throws(TypeError, () => inLeapYear.call(undefined), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null), "null");
-assert.throws(TypeError, () => inLeapYear.call(true), "true");
-assert.throws(TypeError, () => inLeapYear.call(""), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1), "1");
-assert.throws(TypeError, () => inLeapYear.call({}), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/builtin.js b/polyfill/test/Calendar/prototype/inLeapYear/builtin.js
deleted file mode 100644
index 2c66b6b67a..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: >
- Tests that Temporal.Calendar.prototype.inLeapYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.inLeapYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.inLeapYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.inLeapYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.inLeapYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/inLeapYear/calendar-fields-iterable.js
deleted file mode 100644
index 26719069f3..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.inleapyear step 4:
- 4. Let _year_ be ? ISOYear(_dateOrDateTime_).
- sec-temporal-isoyear step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.inLeapYear({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/inLeapYear/calendar-temporal-object.js
deleted file mode 100644
index e31a15dd39..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.inleapyear step 4:
- 4. Let _year_ be ? ISOYear(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.inLeapYear({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 083bbb5073..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.inleapyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.inLeapYear({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.inLeapYear({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/length.js b/polyfill/test/Calendar/prototype/inLeapYear/length.js
deleted file mode 100644
index b186375f71..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Temporal.Calendar.prototype.inLeapYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.inLeapYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/name.js b/polyfill/test/Calendar/prototype/inLeapYear/name.js
deleted file mode 100644
index e5efe9b837..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: Temporal.Calendar.prototype.inLeapYear.name is "inLeapYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.inLeapYear, "name", {
- value: "inLeapYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/inLeapYear/not-a-constructor.js
deleted file mode 100644
index fcafccbbef..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: >
- Temporal.Calendar.prototype.inLeapYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.inLeapYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.inLeapYear), false,
- "isConstructor(Temporal.Calendar.prototype.inLeapYear)");
diff --git a/polyfill/test/Calendar/prototype/inLeapYear/prop-desc.js b/polyfill/test/Calendar/prototype/inLeapYear/prop-desc.js
deleted file mode 100644
index eb21f1a049..0000000000
--- a/polyfill/test/Calendar/prototype/inLeapYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.inleapyear
-description: The "inLeapYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.inLeapYear,
- "function",
- "`typeof Calendar.prototype.inLeapYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "inLeapYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/mergeFields/arguments-empty-object.js b/polyfill/test/Calendar/prototype/mergeFields/arguments-empty-object.js
deleted file mode 100644
index bd8d760257..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/arguments-empty-object.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: Either argument being an empty object should result in a copy of the other object
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-
-let calls = 0;
-const yearObserver = {
- get year() {
- calls++;
- return 2021;
- }
-};
-
-const result1 = calendar.mergeFields(yearObserver, {});
-assert.sameValue(calls, 1, "property copied");
-assert.compareArray(Object.keys(result1), ["year"]);
-assert.sameValue(result1.year, 2021);
-assert.sameValue(calls, 1, "result has a data property");
-
-calls = 0;
-const result2 = calendar.mergeFields({}, yearObserver);
-assert.sameValue(calls, 1, "property copied");
-assert.compareArray(Object.keys(result2), ["year"]);
-assert.sameValue(result2.year, 2021);
-assert.sameValue(calls, 1, "result has a data property");
diff --git a/polyfill/test/Calendar/prototype/mergeFields/arguments-not-object.js b/polyfill/test/Calendar/prototype/mergeFields/arguments-not-object.js
deleted file mode 100644
index b9e40fe5c5..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/arguments-not-object.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: Non-object arguments are converted with ToObject and merge their [[OwnPropertyKeys]]
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-
-assert.throws(TypeError, () => calendar.mergeFields(undefined, {}));
-assert.throws(TypeError, () => calendar.mergeFields({}, undefined));
-
-assert.throws(TypeError, () => calendar.mergeFields(null, {}));
-assert.throws(TypeError, () => calendar.mergeFields({}, null));
-
-const boolResult = calendar.mergeFields(true, false);
-assert.compareArray(Object.keys(boolResult), [], "Boolean objects have no own property keys");
-assert.sameValue(Object.getPrototypeOf(boolResult), Object.prototype, "plain object returned");
-
-const numResult = calendar.mergeFields(3, 4);
-assert.compareArray(Object.keys(numResult), [], "Number objects have no own property keys");
-assert.sameValue(Object.getPrototypeOf(boolResult), Object.prototype, "plain object returned");
-
-const strResult = calendar.mergeFields("abc", "de");
-assert.compareArray(Object.keys(strResult), ["0", "1", "2"], "String objects have integer indices as own property keys");
-assert.sameValue(strResult["0"], "d");
-assert.sameValue(strResult["1"], "e");
-assert.sameValue(strResult["2"], "c");
-assert.sameValue(Object.getPrototypeOf(boolResult), Object.prototype, "plain object returned");
-
-const symResult = calendar.mergeFields(Symbol("foo"), Symbol("bar"));
-assert.compareArray(Object.keys(symResult), [], "Symbol objects have no own property keys");
-assert.sameValue(Object.getPrototypeOf(symResult), Object.prototype, "plain object returned");
-
-const bigintResult = calendar.mergeFields(3n, 4n);
-assert.compareArray(Object.keys(bigintResult), [], "BigInt objects have no own property keys");
-assert.sameValue(Object.getPrototypeOf(bigintResult), Object.prototype, "plain object returned");
diff --git a/polyfill/test/Calendar/prototype/mergeFields/branding.js b/polyfill/test/Calendar/prototype/mergeFields/branding.js
deleted file mode 100644
index 0ef2b3f84d..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const mergeFields = Temporal.Calendar.prototype.mergeFields;
-
-assert.sameValue(typeof mergeFields, "function");
-
-assert.throws(TypeError, () => mergeFields.call(undefined), "undefined");
-assert.throws(TypeError, () => mergeFields.call(null), "null");
-assert.throws(TypeError, () => mergeFields.call(true), "true");
-assert.throws(TypeError, () => mergeFields.call(""), "empty string");
-assert.throws(TypeError, () => mergeFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => mergeFields.call(1), "1");
-assert.throws(TypeError, () => mergeFields.call({}), "plain object");
-assert.throws(TypeError, () => mergeFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => mergeFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/mergeFields/builtin.js b/polyfill/test/Calendar/prototype/mergeFields/builtin.js
deleted file mode 100644
index 721c566e00..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: >
- Tests that Temporal.Calendar.prototype.mergeFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.mergeFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.mergeFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.mergeFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.mergeFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/mergeFields/length.js b/polyfill/test/Calendar/prototype/mergeFields/length.js
deleted file mode 100644
index 204a370fda..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: Temporal.Calendar.prototype.mergeFields.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.mergeFields, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/mergeFields/name.js b/polyfill/test/Calendar/prototype/mergeFields/name.js
deleted file mode 100644
index ec7de2c03d..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: Temporal.Calendar.prototype.mergeFields.name is "mergeFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.mergeFields, "name", {
- value: "mergeFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/mergeFields/not-a-constructor.js b/polyfill/test/Calendar/prototype/mergeFields/not-a-constructor.js
deleted file mode 100644
index 1e4519325b..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: >
- Temporal.Calendar.prototype.mergeFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.mergeFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.mergeFields), false,
- "isConstructor(Temporal.Calendar.prototype.mergeFields)");
diff --git a/polyfill/test/Calendar/prototype/mergeFields/prop-desc.js b/polyfill/test/Calendar/prototype/mergeFields/prop-desc.js
deleted file mode 100644
index b5363f63f0..0000000000
--- a/polyfill/test/Calendar/prototype/mergeFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.mergefields
-description: The "mergeFields" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.mergeFields,
- "function",
- "`typeof Calendar.prototype.mergeFields` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "mergeFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 689ee484cf..0000000000
--- a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.month(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 2275d1664c..0000000000
--- a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.month(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 9e7b63a33c..0000000000
--- a/polyfill/test/Calendar/prototype/month/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.month(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/month/basic.js b/polyfill/test/Calendar/prototype/month/basic.js
deleted file mode 100644
index 17eb081e59..0000000000
--- a/polyfill/test/Calendar/prototype/month/basic.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Basic tests for month().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 11;
-assert.sameValue(iso.month(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.month(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.month(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.month({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.month("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.month({ year: 2000 }), "property bag with missing properties");
-assert.throws(TypeError, () => iso.month(Temporal.PlainMonthDay.from("11-05")), "PlainMonthDay");
diff --git a/polyfill/test/Calendar/prototype/month/branding.js b/polyfill/test/Calendar/prototype/month/branding.js
deleted file mode 100644
index 612b047b14..0000000000
--- a/polyfill/test/Calendar/prototype/month/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const month = Temporal.Calendar.prototype.month;
-
-assert.sameValue(typeof month, "function");
-
-assert.throws(TypeError, () => month.call(undefined), "undefined");
-assert.throws(TypeError, () => month.call(null), "null");
-assert.throws(TypeError, () => month.call(true), "true");
-assert.throws(TypeError, () => month.call(""), "empty string");
-assert.throws(TypeError, () => month.call(Symbol()), "symbol");
-assert.throws(TypeError, () => month.call(1), "1");
-assert.throws(TypeError, () => month.call({}), "plain object");
-assert.throws(TypeError, () => month.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => month.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/month/builtin.js b/polyfill/test/Calendar/prototype/month/builtin.js
deleted file mode 100644
index e2445cc42f..0000000000
--- a/polyfill/test/Calendar/prototype/month/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: >
- Tests that Temporal.Calendar.prototype.month
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.month),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.month),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.month),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.month.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/month/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/month/calendar-fields-iterable.js
deleted file mode 100644
index ed9939f5c7..0000000000
--- a/polyfill/test/Calendar/prototype/month/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.month step 4:
- 4. Return ? ISOMonth(_dateOrDateTime_).
- sec-temporal-isomonth step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.month({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/month/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/month/calendar-temporal-object.js
deleted file mode 100644
index 907cd78aff..0000000000
--- a/polyfill/test/Calendar/prototype/month/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.month step 4:
- 4. Return ? ISOMonth(_dateOrDateTime_).
- sec-temporal-isomonth step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.month({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/month/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/month/infinity-throws-rangeerror.js
deleted file mode 100644
index 2bfe2315e3..0000000000
--- a/polyfill/test/Calendar/prototype/month/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.month
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.month({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.month({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/month/length.js b/polyfill/test/Calendar/prototype/month/length.js
deleted file mode 100644
index 52af40a939..0000000000
--- a/polyfill/test/Calendar/prototype/month/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Temporal.Calendar.prototype.month.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.month, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/month/name.js b/polyfill/test/Calendar/prototype/month/name.js
deleted file mode 100644
index 79dc0b606a..0000000000
--- a/polyfill/test/Calendar/prototype/month/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: Temporal.Calendar.prototype.month.name is "month".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.month, "name", {
- value: "month",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/month/not-a-constructor.js b/polyfill/test/Calendar/prototype/month/not-a-constructor.js
deleted file mode 100644
index 31676f121a..0000000000
--- a/polyfill/test/Calendar/prototype/month/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: >
- Temporal.Calendar.prototype.month does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.month();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.month), false,
- "isConstructor(Temporal.Calendar.prototype.month)");
diff --git a/polyfill/test/Calendar/prototype/month/prop-desc.js b/polyfill/test/Calendar/prototype/month/prop-desc.js
deleted file mode 100644
index 684d435700..0000000000
--- a/polyfill/test/Calendar/prototype/month/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.month
-description: The "month" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.month,
- "function",
- "`typeof Calendar.prototype.month` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "month", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 9bd79d76e7..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.monthCode(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 708e07ec1b..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.monthCode(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 3eea738fd4..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.monthCode(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/basic.js b/polyfill/test/Calendar/prototype/monthCode/basic.js
deleted file mode 100644
index db6dcd1a74..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/basic.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Basic tests for monthCode().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = "M11";
-assert.sameValue(iso.monthCode(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.monthCode(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.monthCode(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.monthCode(Temporal.PlainMonthDay.from("11-05")), res, "PlainMonthDay");
-assert.sameValue(iso.monthCode({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.monthCode("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.monthCode({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/monthCode/branding.js b/polyfill/test/Calendar/prototype/monthCode/branding.js
deleted file mode 100644
index 210291345d..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Temporal.Calendar.prototype.monthCode;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => monthCode.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/monthCode/builtin.js b/polyfill/test/Calendar/prototype/monthCode/builtin.js
deleted file mode 100644
index 5f7dc2c95a..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: >
- Tests that Temporal.Calendar.prototype.monthCode
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.monthCode),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.monthCode),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.monthCode),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.monthCode.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/monthCode/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/monthCode/calendar-fields-iterable.js
deleted file mode 100644
index 47a1dda723..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.monthcode step 4:
- 4. Return ? ISOMonthCode(_dateOrDateTime_).
- sec-temporal-isomonthcode step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.monthCode({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/monthCode/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/monthCode/calendar-temporal-object.js
deleted file mode 100644
index 87004fdae7..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.monthcode step 4:
- 4. Return ? ISOMonthCode(_dateOrDateTime_).
- sec-temporal-isomonthcode step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.monthCode({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/monthCode/infinity-throws-rangeerror.js
deleted file mode 100644
index 49f99671fb..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthcode
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.monthCode({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.monthCode({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/length.js b/polyfill/test/Calendar/prototype/monthCode/length.js
deleted file mode 100644
index abc02d7dd6..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Temporal.Calendar.prototype.monthCode.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthCode, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/name.js b/polyfill/test/Calendar/prototype/monthCode/name.js
deleted file mode 100644
index 818c5d20d8..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: Temporal.Calendar.prototype.monthCode.name is "monthCode".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthCode, "name", {
- value: "monthCode",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthCode/not-a-constructor.js b/polyfill/test/Calendar/prototype/monthCode/not-a-constructor.js
deleted file mode 100644
index 78dccfe5b1..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: >
- Temporal.Calendar.prototype.monthCode does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.monthCode();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.monthCode), false,
- "isConstructor(Temporal.Calendar.prototype.monthCode)");
diff --git a/polyfill/test/Calendar/prototype/monthCode/prop-desc.js b/polyfill/test/Calendar/prototype/monthCode/prop-desc.js
deleted file mode 100644
index 3dca68e969..0000000000
--- a/polyfill/test/Calendar/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthcode
-description: The "monthCode" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.monthCode,
- "function",
- "`typeof Calendar.prototype.monthCode` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "monthCode", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/branding.js b/polyfill/test/Calendar/prototype/monthDayFromFields/branding.js
deleted file mode 100644
index 63691c7c4b..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthDayFromFields = Temporal.Calendar.prototype.monthDayFromFields;
-
-assert.sameValue(typeof monthDayFromFields, "function");
-
-assert.throws(TypeError, () => monthDayFromFields.call(undefined), "undefined");
-assert.throws(TypeError, () => monthDayFromFields.call(null), "null");
-assert.throws(TypeError, () => monthDayFromFields.call(true), "true");
-assert.throws(TypeError, () => monthDayFromFields.call(""), "empty string");
-assert.throws(TypeError, () => monthDayFromFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthDayFromFields.call(1), "1");
-assert.throws(TypeError, () => monthDayFromFields.call({}), "plain object");
-assert.throws(TypeError, () => monthDayFromFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => monthDayFromFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/builtin.js b/polyfill/test/Calendar/prototype/monthDayFromFields/builtin.js
deleted file mode 100644
index d21652fc59..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: >
- Tests that Temporal.Calendar.prototype.monthDayFromFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.monthDayFromFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.monthDayFromFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.monthDayFromFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.monthDayFromFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/fields-not-object.js b/polyfill/test/Calendar/prototype/monthDayFromFields/fields-not-object.js
deleted file mode 100644
index f8400f7185..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/fields-not-object.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Throw a TypeError if the fields is not an object
-features: [Symbol, Temporal]
----*/
-
-const tests = [undefined, null, false, "string", Symbol("sym"), Math.PI, 42n];
-const iso = Temporal.Calendar.from("iso8601");
-for (const fields of tests) {
- assert.throws(TypeError, () => iso.monthDayFromFields(fields, {}));
-}
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index 66e2a03b8b..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.monthDayFromFields({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.monthDayFromFields({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/length.js b/polyfill/test/Calendar/prototype/monthDayFromFields/length.js
deleted file mode 100644
index a8049a487a..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Temporal.Calendar.prototype.monthDayFromFields.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthDayFromFields, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/name.js b/polyfill/test/Calendar/prototype/monthDayFromFields/name.js
deleted file mode 100644
index c380362482..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Temporal.Calendar.prototype.monthDayFromFields.name is "monthDayFromFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthDayFromFields, "name", {
- value: "monthDayFromFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/not-a-constructor.js b/polyfill/test/Calendar/prototype/monthDayFromFields/not-a-constructor.js
deleted file mode 100644
index 63bcff79ea..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: >
- Temporal.Calendar.prototype.monthDayFromFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.monthDayFromFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.monthDayFromFields), false,
- "isConstructor(Temporal.Calendar.prototype.monthDayFromFields)");
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-invalid-string.js b/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-invalid-string.js
deleted file mode 100644
index 2e87dc1a67..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.monthdayfromfields step 6:
- 6. Let _result_ be ? ISOMonthDayFromFields(_fields_, _options_).
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-assert.throws(RangeError, () => calendar.monthDayFromFields({ year: 2000, month: 5, day: 2 }, { overflow: "other string" }));
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-undefined.js b/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-undefined.js
deleted file mode 100644
index 75479d317a..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.monthdayfromfields step 6:
- 6. Let _result_ be ? ISOMonthDayFromFields(_fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-
-const explicit = calendar.monthDayFromFields({ year: 2000, month: 15, day: 2 }, { overflow: undefined });
-TemporalHelpers.assertPlainMonthDay(explicit, "M12", 2, "default overflow is constrain");
-const implicit = calendar.monthDayFromFields({ year: 2000, month: 15, day: 2 }, {});
-TemporalHelpers.assertPlainMonthDay(implicit, "M12", 2, "default overflow is constrain");
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-wrong-type.js b/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-wrong-type.js
deleted file mode 100644
index 197ad0677e..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.monthdayfromfields step 6:
- 6. Let _result_ be ? ISOMonthDayFromFields(_fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => calendar.monthDayFromFields({ year: 2000, month: 5, day: 2 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainMonthDay(result, "M05", 2, descr),
-);
diff --git a/polyfill/test/Calendar/prototype/monthDayFromFields/prop-desc.js b/polyfill/test/Calendar/prototype/monthDayFromFields/prop-desc.js
deleted file mode 100644
index edfb6881fc..0000000000
--- a/polyfill/test/Calendar/prototype/monthDayFromFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-description: The "monthDayFromFields" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.monthDayFromFields,
- "function",
- "`typeof Calendar.prototype.monthDayFromFields` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "monthDayFromFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index f2d34fd60b..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.monthsInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 30c4b99708..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.monthsInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index b6ae9f5e50..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.monthsInYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/basic.js b/polyfill/test/Calendar/prototype/monthsInYear/basic.js
deleted file mode 100644
index fcf4e35084..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/basic.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Basic tests for monthsInYear().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 12;
-assert.sameValue(iso.monthsInYear(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.monthsInYear(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.monthsInYear(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.monthsInYear({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.monthsInYear("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.monthsInYear({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/branding.js b/polyfill/test/Calendar/prototype/monthsInYear/branding.js
deleted file mode 100644
index e86c5f50e2..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthsInYear = Temporal.Calendar.prototype.monthsInYear;
-
-assert.sameValue(typeof monthsInYear, "function");
-
-assert.throws(TypeError, () => monthsInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null), "null");
-assert.throws(TypeError, () => monthsInYear.call(true), "true");
-assert.throws(TypeError, () => monthsInYear.call(""), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1), "1");
-assert.throws(TypeError, () => monthsInYear.call({}), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/builtin.js b/polyfill/test/Calendar/prototype/monthsInYear/builtin.js
deleted file mode 100644
index bb57267064..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: >
- Tests that Temporal.Calendar.prototype.monthsInYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.monthsInYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.monthsInYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.monthsInYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.monthsInYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/monthsInYear/calendar-fields-iterable.js
deleted file mode 100644
index 79b6eb0ac2..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.monthsinyear step 4:
- 4. Perform ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.monthsInYear({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/monthsInYear/calendar-temporal-object.js
deleted file mode 100644
index 3d6418662b..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.monthsinyear step 4:
- 4. Perform ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.monthsInYear({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js
deleted file mode 100644
index eac600f467..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthsinyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.monthsInYear({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.monthsInYear({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/length.js b/polyfill/test/Calendar/prototype/monthsInYear/length.js
deleted file mode 100644
index ac6057351d..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Temporal.Calendar.prototype.monthsInYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthsInYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/name.js b/polyfill/test/Calendar/prototype/monthsInYear/name.js
deleted file mode 100644
index ce9468d16f..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: Temporal.Calendar.prototype.monthsInYear.name is "monthsInYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.monthsInYear, "name", {
- value: "monthsInYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/monthsInYear/not-a-constructor.js
deleted file mode 100644
index 9e9a64d964..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: >
- Temporal.Calendar.prototype.monthsInYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.monthsInYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.monthsInYear), false,
- "isConstructor(Temporal.Calendar.prototype.monthsInYear)");
diff --git a/polyfill/test/Calendar/prototype/monthsInYear/prop-desc.js b/polyfill/test/Calendar/prototype/monthsInYear/prop-desc.js
deleted file mode 100644
index c6b47d059d..0000000000
--- a/polyfill/test/Calendar/prototype/monthsInYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.monthsinyear
-description: The "monthsInYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.monthsInYear,
- "function",
- "`typeof Calendar.prototype.monthsInYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "monthsInYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toJSON/builtin.js b/polyfill/test/Calendar/prototype/toJSON/builtin.js
deleted file mode 100644
index f2ab05afa8..0000000000
--- a/polyfill/test/Calendar/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tojson
-description: >
- Tests that Temporal.Calendar.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/toJSON/length.js b/polyfill/test/Calendar/prototype/toJSON/length.js
deleted file mode 100644
index d616b4205f..0000000000
--- a/polyfill/test/Calendar/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tojson
-description: Temporal.Calendar.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toJSON/name.js b/polyfill/test/Calendar/prototype/toJSON/name.js
deleted file mode 100644
index 7ad399501c..0000000000
--- a/polyfill/test/Calendar/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tojson
-description: Temporal.Calendar.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toJSON/not-a-constructor.js b/polyfill/test/Calendar/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index b8b839f23b..0000000000
--- a/polyfill/test/Calendar/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tojson
-description: >
- Temporal.Calendar.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.toJSON), false,
- "isConstructor(Temporal.Calendar.prototype.toJSON)");
diff --git a/polyfill/test/Calendar/prototype/toJSON/prop-desc.js b/polyfill/test/Calendar/prototype/toJSON/prop-desc.js
deleted file mode 100644
index e1b676ad6a..0000000000
--- a/polyfill/test/Calendar/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tojson
-description: The "toJSON" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.toJSON,
- "function",
- "`typeof Calendar.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toString/branding.js b/polyfill/test/Calendar/prototype/toString/branding.js
deleted file mode 100644
index 21449e5411..0000000000
--- a/polyfill/test/Calendar/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.Calendar.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => toString.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/toString/builtin.js b/polyfill/test/Calendar/prototype/toString/builtin.js
deleted file mode 100644
index d2a6ca26ee..0000000000
--- a/polyfill/test/Calendar/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: >
- Tests that Temporal.Calendar.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/toString/length.js b/polyfill/test/Calendar/prototype/toString/length.js
deleted file mode 100644
index 2e14f87b00..0000000000
--- a/polyfill/test/Calendar/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: Temporal.Calendar.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toString/name.js b/polyfill/test/Calendar/prototype/toString/name.js
deleted file mode 100644
index 86904315db..0000000000
--- a/polyfill/test/Calendar/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: Temporal.Calendar.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/toString/not-a-constructor.js b/polyfill/test/Calendar/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 04bb7e013f..0000000000
--- a/polyfill/test/Calendar/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: >
- Temporal.Calendar.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.toString), false,
- "isConstructor(Temporal.Calendar.prototype.toString)");
diff --git a/polyfill/test/Calendar/prototype/toString/prop-desc.js b/polyfill/test/Calendar/prototype/toString/prop-desc.js
deleted file mode 100644
index 20f371881e..0000000000
--- a/polyfill/test/Calendar/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.tostring
-description: The "toString" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.toString,
- "function",
- "`typeof Calendar.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 6e0a16ce7f..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.weekOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 75b54dbd17..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.weekOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 37c24885ad..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.weekOfYear(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/basic.js b/polyfill/test/Calendar/prototype/weekOfYear/basic.js
deleted file mode 100644
index 9dd388e959..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Basic tests for weekOfYear().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 44;
-assert.sameValue(iso.weekOfYear(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.weekOfYear(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.weekOfYear({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.weekOfYear("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.weekOfYear({ year: 2000 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/branding.js b/polyfill/test/Calendar/prototype/weekOfYear/branding.js
deleted file mode 100644
index 82f80e27c7..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const weekOfYear = Temporal.Calendar.prototype.weekOfYear;
-
-assert.sameValue(typeof weekOfYear, "function");
-
-assert.throws(TypeError, () => weekOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => weekOfYear.call(null), "null");
-assert.throws(TypeError, () => weekOfYear.call(true), "true");
-assert.throws(TypeError, () => weekOfYear.call(""), "empty string");
-assert.throws(TypeError, () => weekOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => weekOfYear.call(1), "1");
-assert.throws(TypeError, () => weekOfYear.call({}), "plain object");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/builtin.js b/polyfill/test/Calendar/prototype/weekOfYear/builtin.js
deleted file mode 100644
index 8234ce5a75..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: >
- Tests that Temporal.Calendar.prototype.weekOfYear
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.weekOfYear),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.weekOfYear),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.weekOfYear),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.weekOfYear.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/weekOfYear/calendar-fields-iterable.js
deleted file mode 100644
index 2c485c5b0a..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.weekofyear step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.weekOfYear({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/weekOfYear/calendar-temporal-object.js
deleted file mode 100644
index 8dbfb76c93..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.weekofyear step 4:
- 4. Let _date_ be ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.weekOfYear({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/cross-year.js b/polyfill/test/Calendar/prototype/weekOfYear/cross-year.js
deleted file mode 100644
index 609c076fb7..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/cross-year.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: weekOfYear() crossing year boundaries.
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-assert.sameValue(iso.weekOfYear(Temporal.PlainDate.from("2019-12-31")), 1, "week 1 from next year");
-assert.sameValue(iso.weekOfYear(Temporal.PlainDate.from("2021-01-01")), 53, "week 1 from next year");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 6a65cf5bef..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.weekofyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.weekOfYear({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.weekOfYear({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/length.js b/polyfill/test/Calendar/prototype/weekOfYear/length.js
deleted file mode 100644
index f1f2b5f2c6..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Temporal.Calendar.prototype.weekOfYear.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.weekOfYear, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/name.js b/polyfill/test/Calendar/prototype/weekOfYear/name.js
deleted file mode 100644
index f7828b8bcb..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: Temporal.Calendar.prototype.weekOfYear.name is "weekOfYear".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.weekOfYear, "name", {
- value: "weekOfYear",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/not-a-constructor.js b/polyfill/test/Calendar/prototype/weekOfYear/not-a-constructor.js
deleted file mode 100644
index 3d1d944a4b..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: >
- Temporal.Calendar.prototype.weekOfYear does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.weekOfYear();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.weekOfYear), false,
- "isConstructor(Temporal.Calendar.prototype.weekOfYear)");
diff --git a/polyfill/test/Calendar/prototype/weekOfYear/prop-desc.js b/polyfill/test/Calendar/prototype/weekOfYear/prop-desc.js
deleted file mode 100644
index c0c9c67215..0000000000
--- a/polyfill/test/Calendar/prototype/weekOfYear/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.weekofyear
-description: The "weekOfYear" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.weekOfYear,
- "function",
- "`typeof Calendar.prototype.weekOfYear` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "weekOfYear", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 841eb842ac..0000000000
--- a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.year(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 4c6b218ece..0000000000
--- a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => calendar.year(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 69ff998d53..0000000000
--- a/polyfill/test/Calendar/prototype/year/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => calendar.year(datetime));
-});
diff --git a/polyfill/test/Calendar/prototype/year/basic.js b/polyfill/test/Calendar/prototype/year/basic.js
deleted file mode 100644
index 1d03e3cd77..0000000000
--- a/polyfill/test/Calendar/prototype/year/basic.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: Basic tests for year().
-features: [Temporal]
----*/
-
-const iso = Temporal.Calendar.from("iso8601");
-const res = 1994;
-assert.sameValue(iso.year(Temporal.PlainDate.from("1994-11-05")), res, "PlainDate");
-assert.sameValue(iso.year(Temporal.PlainDateTime.from("1994-11-05T08:15:30")), res, "PlainDateTime");
-assert.sameValue(iso.year(Temporal.PlainYearMonth.from("1994-11")), res, "PlainYearMonth");
-assert.sameValue(iso.year({ year: 1994, month: 11, day: 5 }), res, "property bag");
-assert.sameValue(iso.year("1994-11-05"), res, "string");
-assert.throws(TypeError, () => iso.year({ month: 5 }), "property bag with missing properties");
diff --git a/polyfill/test/Calendar/prototype/year/branding.js b/polyfill/test/Calendar/prototype/year/branding.js
deleted file mode 100644
index 17e9b710ed..0000000000
--- a/polyfill/test/Calendar/prototype/year/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const year = Temporal.Calendar.prototype.year;
-
-assert.sameValue(typeof year, "function");
-
-assert.throws(TypeError, () => year.call(undefined), "undefined");
-assert.throws(TypeError, () => year.call(null), "null");
-assert.throws(TypeError, () => year.call(true), "true");
-assert.throws(TypeError, () => year.call(""), "empty string");
-assert.throws(TypeError, () => year.call(Symbol()), "symbol");
-assert.throws(TypeError, () => year.call(1), "1");
-assert.throws(TypeError, () => year.call({}), "plain object");
-assert.throws(TypeError, () => year.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => year.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/year/builtin.js b/polyfill/test/Calendar/prototype/year/builtin.js
deleted file mode 100644
index 29e854ef1b..0000000000
--- a/polyfill/test/Calendar/prototype/year/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: >
- Tests that Temporal.Calendar.prototype.year
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.year),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.year),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.year),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.year.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/year/calendar-fields-iterable.js b/polyfill/test/Calendar/prototype/year/calendar-fields-iterable.js
deleted file mode 100644
index 191ade0857..0000000000
--- a/polyfill/test/Calendar/prototype/year/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.calendar.prototype.year step 4:
- 4. Return ? ISOYear(_dateOrDateTime_).
- sec-temporal-isoyear step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToListOfType(_fieldsArray_, « String »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-calendar1.year({ year: 2000, month: 5, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Calendar/prototype/year/calendar-temporal-object.js b/polyfill/test/Calendar/prototype/year/calendar-temporal-object.js
deleted file mode 100644
index 25d1dd033a..0000000000
--- a/polyfill/test/Calendar/prototype/year/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dayofweek
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.calendar.prototype.year step 4:
- 4. Return ? ISOYear(_dateOrDateTime_).
- sec-temporal-isoyear step 1.a:
- a. Set _dateOrDateTime_ to ? ToTemporalDate(_dateOrDateTime_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const calendar = new Temporal.Calendar("iso8601");
- calendar.year({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/Calendar/prototype/year/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/year/infinity-throws-rangeerror.js
deleted file mode 100644
index 4a10ff281e..0000000000
--- a/polyfill/test/Calendar/prototype/year/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.year
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.year({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.year({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Calendar/prototype/year/length.js b/polyfill/test/Calendar/prototype/year/length.js
deleted file mode 100644
index 4135ce8f6a..0000000000
--- a/polyfill/test/Calendar/prototype/year/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: Temporal.Calendar.prototype.year.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.year, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/year/name.js b/polyfill/test/Calendar/prototype/year/name.js
deleted file mode 100644
index a04a30a552..0000000000
--- a/polyfill/test/Calendar/prototype/year/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: Temporal.Calendar.prototype.year.name is "year".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.year, "name", {
- value: "year",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/year/not-a-constructor.js b/polyfill/test/Calendar/prototype/year/not-a-constructor.js
deleted file mode 100644
index bd02ea43db..0000000000
--- a/polyfill/test/Calendar/prototype/year/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: >
- Temporal.Calendar.prototype.year does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.year();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.year), false,
- "isConstructor(Temporal.Calendar.prototype.year)");
diff --git a/polyfill/test/Calendar/prototype/year/prop-desc.js b/polyfill/test/Calendar/prototype/year/prop-desc.js
deleted file mode 100644
index 67b9dc227d..0000000000
--- a/polyfill/test/Calendar/prototype/year/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.year
-description: The "year" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.year,
- "function",
- "`typeof Calendar.prototype.year` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "year", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/branding.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/branding.js
deleted file mode 100644
index 0839394ca9..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const yearMonthFromFields = Temporal.Calendar.prototype.yearMonthFromFields;
-
-assert.sameValue(typeof yearMonthFromFields, "function");
-
-assert.throws(TypeError, () => yearMonthFromFields.call(undefined), "undefined");
-assert.throws(TypeError, () => yearMonthFromFields.call(null), "null");
-assert.throws(TypeError, () => yearMonthFromFields.call(true), "true");
-assert.throws(TypeError, () => yearMonthFromFields.call(""), "empty string");
-assert.throws(TypeError, () => yearMonthFromFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => yearMonthFromFields.call(1), "1");
-assert.throws(TypeError, () => yearMonthFromFields.call({}), "plain object");
-assert.throws(TypeError, () => yearMonthFromFields.call(Temporal.Calendar), "Temporal.Calendar");
-assert.throws(TypeError, () => yearMonthFromFields.call(Temporal.Calendar.prototype), "Temporal.Calendar.prototype");
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/builtin.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/builtin.js
deleted file mode 100644
index 1e13c4bf66..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: >
- Tests that Temporal.Calendar.prototype.yearMonthFromFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Calendar.prototype.yearMonthFromFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Calendar.prototype.yearMonthFromFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Calendar.prototype.yearMonthFromFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Calendar.prototype.yearMonthFromFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/fields-not-object.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/fields-not-object.js
deleted file mode 100644
index 7969ba6e44..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/fields-not-object.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Throw a TypeError if the fields is not an object
-features: [Symbol, Temporal]
----*/
-
-const tests = [undefined, null, false, "string", Symbol("sym"), Math.PI, 42n];
-const iso = Temporal.Calendar.from("iso8601");
-for (const fields of tests) {
- assert.throws(TypeError, () => iso.yearMonthFromFields(fields, {}));
-}
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index 374fd7fec1..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("iso8601");
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.yearMonthFromFields({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.yearMonthFromFields({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/length.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/length.js
deleted file mode 100644
index d97ce84ca5..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Temporal.Calendar.prototype.yearMonthFromFields.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.yearMonthFromFields, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/name.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/name.js
deleted file mode 100644
index 803572242c..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Temporal.Calendar.prototype.yearMonthFromFields.name is "yearMonthFromFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Calendar.prototype.yearMonthFromFields, "name", {
- value: "yearMonthFromFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/not-a-constructor.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/not-a-constructor.js
deleted file mode 100644
index 7b7646f4c0..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: >
- Temporal.Calendar.prototype.yearMonthFromFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Calendar.prototype.yearMonthFromFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Calendar.prototype.yearMonthFromFields), false,
- "isConstructor(Temporal.Calendar.prototype.yearMonthFromFields)");
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-invalid-string.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-invalid-string.js
deleted file mode 100644
index 99ffe6af27..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.yearmonthfromfields step 6:
- 6. Let _result_ be ? ISOYearMonthFromFields(_fields_, _options_).
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-assert.throws(RangeError, () => calendar.yearMonthFromFields({ year: 2000, month: 5 }, { overflow: "other string" }));
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-undefined.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-undefined.js
deleted file mode 100644
index 1f89b28aa4..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.yearmonthfromfields step 6:
- 6. Let _result_ be ? ISOYearMonthFromFields(_fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-
-const explicit = calendar.yearMonthFromFields({ year: 2000, month: 15 }, { overflow: undefined });
-TemporalHelpers.assertPlainYearMonth(explicit, 2000, 12, "M12", "default overflow is constrain");
-const implicit = calendar.yearMonthFromFields({ year: 2000, month: 15 }, {});
-TemporalHelpers.assertPlainYearMonth(implicit, 2000, 12, "M12", "default overflow is constrain");
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-wrong-type.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-wrong-type.js
deleted file mode 100644
index 745b8cd7b2..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.calendar.prototype.yearmonthfromfields step 6:
- 6. Let _result_ be ? ISOYearMonthFromFields(_fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => calendar.yearMonthFromFields({ year: 2000, month: 5 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05", descr),
-);
diff --git a/polyfill/test/Calendar/prototype/yearMonthFromFields/prop-desc.js b/polyfill/test/Calendar/prototype/yearMonthFromFields/prop-desc.js
deleted file mode 100644
index 3eedbcef62..0000000000
--- a/polyfill/test/Calendar/prototype/yearMonthFromFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-description: The "yearMonthFromFields" property of Temporal.Calendar.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Calendar.prototype.yearMonthFromFields,
- "function",
- "`typeof Calendar.prototype.yearMonthFromFields` is `function`"
-);
-
-verifyProperty(Temporal.Calendar.prototype, "yearMonthFromFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/compare/argument-string-negative-fractional-units.js b/polyfill/test/Duration/constructor/compare/argument-string-negative-fractional-units.js
deleted file mode 100644
index d5552dab18..0000000000
--- a/polyfill/test/Duration/constructor/compare/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Strings with fractional duration units are treated with the correct sign
-features: [Temporal]
----*/
-
-const expectedHours = new Temporal.Duration(0, 0, 0, 0, -24, -34, -4, -404, -442, -799);
-const resultHours1 = Temporal.Duration.compare("-PT24.567890123H", expectedHours);
-assert.sameValue(resultHours1, 0, "negative fractional hours (first argument)");
-const resultHours2 = Temporal.Duration.compare(expectedHours, "-PT24.567890123H");
-assert.sameValue(resultHours2, 0, "negative fractional hours (second argument)");
-
-const expectedMinutes = new Temporal.Duration(0, 0, 0, 0, 0, -1440, -34, -73, -407, -379);
-const resultMinutes1 = Temporal.Duration.compare("-PT1440.567890123M", expectedMinutes);
-assert.sameValue(resultMinutes1, 0, "negative fractional minutes (first argument)");
-const resultMinutes2 = Temporal.Duration.compare("-PT1440.567890123M", expectedMinutes);
-assert.sameValue(resultMinutes2, 0, "negative fractional minutes (second argument)");
diff --git a/polyfill/test/Duration/constructor/compare/builtin.js b/polyfill/test/Duration/constructor/compare/builtin.js
deleted file mode 100644
index 82f19478c0..0000000000
--- a/polyfill/test/Duration/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Tests that Temporal.Duration.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/constructor/compare/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/Duration/constructor/compare/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index c2169e338a..0000000000
--- a/polyfill/test/Duration/constructor/compare/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const relativeTo = new Temporal.ZonedDateTime(0n, timeZone, calendar);
-
-const duration1 = new Temporal.Duration(0, 0, 1);
-const duration2 = new Temporal.Duration(0, 0, 1);
-Temporal.Duration.compare(duration1, duration2, { relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 4);
-// one call in CalculateOffsetShift for each duration argument, plus one in
-// UnbalanceDurationRelative for each duration argument
diff --git a/polyfill/test/Duration/constructor/compare/calendar-fields-iterable.js b/polyfill/test/Duration/constructor/compare/calendar-fields-iterable.js
deleted file mode 100644
index 5beaa79ee9..0000000000
--- a/polyfill/test/Duration/constructor/compare/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.duration.compare step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Duration/constructor/compare/calendar-temporal-object.js b/polyfill/test/Duration/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index 5db4212a3e..0000000000
--- a/polyfill/test/Duration/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.duration.compare step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 12);
- Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar: temporalObject } });
-});
diff --git a/polyfill/test/Duration/constructor/compare/length.js b/polyfill/test/Duration/constructor/compare/length.js
deleted file mode 100644
index 44bed32c9a..0000000000
--- a/polyfill/test/Duration/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Temporal.Duration.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/compare/name.js b/polyfill/test/Duration/constructor/compare/name.js
deleted file mode 100644
index ec6cd94c34..0000000000
--- a/polyfill/test/Duration/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Temporal.Duration.compare.name is "compare".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/compare/not-a-constructor.js b/polyfill/test/Duration/constructor/compare/not-a-constructor.js
deleted file mode 100644
index a8d5496c4c..0000000000
--- a/polyfill/test/Duration/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Temporal.Duration.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.compare), false,
- "isConstructor(Temporal.Duration.compare)");
diff --git a/polyfill/test/Duration/constructor/compare/options-undefined.js b/polyfill/test/Duration/constructor/compare/options-undefined.js
deleted file mode 100644
index a83d83e77c..0000000000
--- a/polyfill/test/Duration/constructor/compare/options-undefined.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2), "default relativeTo is undefined");
-assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, undefined), "default relativeTo is undefined");
diff --git a/polyfill/test/Duration/constructor/compare/prop-desc.js b/polyfill/test/Duration/constructor/compare/prop-desc.js
deleted file mode 100644
index 6452611834..0000000000
--- a/polyfill/test/Duration/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: The "compare" property of Temporal.Duration
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.compare,
- "function",
- "`typeof Duration.compare` is `function`"
-);
-
-verifyProperty(Temporal.Duration, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/compare/read-time-fields-before-datefromfields.js b/polyfill/test/Duration/constructor/compare/read-time-fields-before-datefromfields.js
deleted file mode 100644
index b2b9f805e6..0000000000
--- a/polyfill/test/Duration/constructor/compare/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.duration.compare step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.g:
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInvalidGettersTime();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-infinity-throws-rangeerror.js b/polyfill/test/Duration/constructor/compare/relativeto-propertybag-infinity-throws-rangeerror.js
deleted file mode 100644
index 425a3c40d9..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the relativeTo property bag is Infinity or -Infinity
-esid: sec-temporal.duration.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(0, 0, 0, 1);
-const duration2 = new Temporal.Duration(0, 0, 0, 0, 24);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 4c87850b72..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 651ac2bcf3..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d9c89b348a..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(TypeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-string-datetime.js b/polyfill/test/Duration/constructor/compare/relativeto-string-datetime.js
deleted file mode 100644
index 1ee3861061..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-string-datetime.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: >
- Conversion of ISO date-time strings as relativeTo option to
- Temporal.ZonedDateTime or Temporal.PlainDateTime instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 0, 0, 1);
-const equalIfPlain = new Temporal.Duration(1, 0, 0, 0, 24);
-const equalIfZoned = new Temporal.Duration(1, 0, 0, 0, 25);
-
-let relativeTo = "2019-11-01T00:00";
-const result1 = Temporal.Duration.compare(instance, equalIfPlain, { relativeTo });
-assert.sameValue(result1, 0, "bare date-time string is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00Z";
-const result2 = Temporal.Duration.compare(instance, equalIfPlain, { relativeTo });
-assert.sameValue(result2, 0, "date-time + Z is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00";
-const result3 = Temporal.Duration.compare(instance, equalIfPlain, { relativeTo });
-assert.sameValue(result3, 0, "date-time + offset is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00[America/Vancouver]";
-const result4 = Temporal.Duration.compare(instance, equalIfZoned, { relativeTo });
-assert.sameValue(result4, 0, "date-time + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00Z[America/Vancouver]";
-const result5 = Temporal.Duration.compare(instance, equalIfZoned, { relativeTo });
-assert.sameValue(result5, 0, "date-time + Z + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00[America/Vancouver]";
-const result6 = Temporal.Duration.compare(instance, equalIfZoned, { relativeTo });
-assert.sameValue(result6, 0, "date-time + offset + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00+04:15[America/Vancouver]";
-assert.throws(RangeError, () => Temporal.Duration.compare(instance, equalIfPlain, { relativeTo }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-string-invalid.js b/polyfill/test/Duration/constructor/compare/relativeto-string-invalid.js
deleted file mode 100644
index e4e2377dc6..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-string-invalid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: RangeError thrown if relativeTo is a string with the wrong format
-features: [Temporal]
----*/
-
-['bad string', '15:30:45.123456', 'iso8601', 'UTC', 'P1YT1H'].forEach((relativeTo) => {
- const duration1 = new Temporal.Duration(0, 0, 0, 31);
- const duration2 = new Temporal.Duration(0, 1);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-string-plaindatetime.js b/polyfill/test/Duration/constructor/compare/relativeto-string-plaindatetime.js
deleted file mode 100644
index b036ec286b..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-string-plaindatetime.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: The relativeTo option accepts a PlainDateTime-like ISO 8601 string
-features: [Temporal]
----*/
-
-['2000-01-01', '2000-01-01T00:00', '2000-01-01T00:00[u-ca=iso8601]'].forEach((relativeTo) => {
- const duration1 = new Temporal.Duration(0, 0, 0, 31);
- const duration2 = new Temporal.Duration(0, 1);
- const result = Temporal.Duration.compare(duration1, duration2, { relativeTo });
- assert.sameValue(result, 0);
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-string-zoneddatetime.js b/polyfill/test/Duration/constructor/compare/relativeto-string-zoneddatetime.js
deleted file mode 100644
index 1ddd14305d..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-string-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: The relativeTo option accepts a ZonedDateTime-like ISO 8601 string
-features: [Temporal]
----*/
-
-[
- '2000-01-01[UTC]',
- '2000-01-01T00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC][u-ca=iso8601]',
-].forEach((relativeTo) => {
- const duration1 = new Temporal.Duration(0, 0, 0, 31);
- const duration2 = new Temporal.Duration(0, 1);
- const result = Temporal.Duration.compare(duration1, duration2, { relativeTo });
- assert.sameValue(result, 0);
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-undefined-throw-on-calendar-units.js b/polyfill/test/Duration/constructor/compare/relativeto-undefined-throw-on-calendar-units.js
deleted file mode 100644
index b2134635e3..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-undefined-throw-on-calendar-units.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: >
- The relativeTo option is required when either Duration contains years,
- months, or weeks
-features: [Temporal]
----*/
-
-const oneYear = new Temporal.Duration(1);
-const oneMonth = new Temporal.Duration(0, 1);
-const oneWeek = new Temporal.Duration(0, 0, 1);
-const oneDay = new Temporal.Duration(0, 0, 0, 1);
-
-assert.sameValue(Temporal.Duration.compare(oneDay, oneDay), 0, "days do not require relativeTo");
-
-assert.throws(RangeError, () => Temporal.Duration.compare(oneWeek, oneDay), "weeks in left operand require relativeTo");
-assert.throws(RangeError, () => Temporal.Duration.compare(oneDay, oneWeek), "weeks in right operand require relativeTo");
-
-assert.throws(RangeError, () => Temporal.Duration.compare(oneMonth, oneDay), "months in left operand require relativeTo");
-assert.throws(RangeError, () => Temporal.Duration.compare(oneDay, oneMonth), "months in right operand require relativeTo");
-
-assert.throws(RangeError, () => Temporal.Duration.compare(oneYear, oneDay), "years in left operand require relativeTo");
-assert.throws(RangeError, () => Temporal.Duration.compare(oneDay, oneYear), "years in right operand require relativeTo");
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 5df910ab4f..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const relativeTo = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time; in this
-// case via relativeTo.
-
-const result = Temporal.Duration.compare(duration, duration, { relativeTo });
-assert.sameValue(result, 0);
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 7c514caaca..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 1b540bcbb2..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(RangeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 20050493e0..0000000000
--- a/polyfill/test/Duration/constructor/compare/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(1, 1);
- assert.throws(TypeError, () => Temporal.Duration.compare(duration1, duration2, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/constructor/compare/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/Duration/constructor/compare/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index c07fefa6c6..0000000000
--- a/polyfill/test/Duration/constructor/compare/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.duration.compare steps 4–6:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- 5. Let _shift1_ be ! CalculateOffsetShift(_relativeTo_, _one_.[[Years]], [...], _one_.[[Nanoseconds]]).
- 6. Let _shift2_ be ! CalculateOffsetShift(_relativeTo_, _two_.[[Years]], [...], _two_.[[Nanoseconds]]).
- sec-temporal-torelativetemporalobject step 6.d:
- d. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNs_, _timeZone_, *"compatible"*, *"reject"*).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-calculateoffsetshift step 4:
- 4. Let _after_ be ? AddZonedDateTime(_relativeTo_.[[Nanoseconds]], _relativeTo_.[[TimeZone]], _relativeTo_.[[Calendar]], _y_, [...], _ns_).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-01-01T00:00:00", // called once on the input relativeTo object
- "2001-01-01T00:00:00", // called once on relativeTo plus the first operand
- "2001-02-01T00:00:00", // called once on relativeTo plus the second operand
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 13);
- Temporal.Duration.compare(duration1, duration2, { relativeTo: { year: 2000, month: 1, day: 1, timeZone } });
-}, expected);
diff --git a/polyfill/test/Duration/constructor/compare/timezone-string-datetime.js b/polyfill/test/Duration/constructor/compare/timezone-string-datetime.js
deleted file mode 100644
index 7dcb57dbe4..0000000000
--- a/polyfill/test/Duration/constructor/compare/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.compare
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Duration.compare(new Temporal.Duration(), new Temporal.Duration(), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Duration.compare(new Temporal.Duration(), new Temporal.Duration(), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Duration.compare(new Temporal.Duration(), new Temporal.Duration(), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } });
- Temporal.Duration.compare(new Temporal.Duration(), new Temporal.Duration(), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } });
-});
diff --git a/polyfill/test/Duration/constructor/constructor/builtin.js b/polyfill/test/Duration/constructor/constructor/builtin.js
deleted file mode 100644
index 51a25f705e..0000000000
--- a/polyfill/test/Duration/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Tests that Temporal.Duration meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.Duration.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/Duration/constructor/constructor/constructor.js b/polyfill/test/Duration/constructor/constructor/constructor.js
deleted file mode 100644
index 7406a00c6f..0000000000
--- a/polyfill/test/Duration/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Temporal.Duration constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.Duration());
diff --git a/polyfill/test/Duration/constructor/constructor/days-undefined.js b/polyfill/test/Duration/constructor/constructor/days-undefined.js
deleted file mode 100644
index 716ad626f5..0000000000
--- a/polyfill/test/Duration/constructor/constructor/days-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.days, 0, "days default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.days, 0, "days default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/hours-undefined.js b/polyfill/test/Duration/constructor/constructor/hours-undefined.js
deleted file mode 100644
index 2669656938..0000000000
--- a/polyfill/test/Duration/constructor/constructor/hours-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.hours, 0, "hours default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.hours, 0, "hours default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/Duration/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index cd6a7f7bcd..0000000000
--- a/polyfill/test/Duration/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration throws a RangeError if any value is Infinity
-esid: sec-temporal.duration
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.Duration(Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite years",
- [O(Infinity, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf"]
- ],
- [
- "infinite months",
- [O(0, "years"), O(Infinity, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf"]
- ],
- [
- "infinite weeks",
- [O(0, "years"), O(0, "months"), O(Infinity, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf"]
- ],
- [
- "infinite days",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(Infinity, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf"]
- ],
- [
- "infinite hours",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(Infinity, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf"]
- ],
- [
- "infinite minutes",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(Infinity, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf"]
- ],
- [
- "infinite seconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(Infinity, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf"]
- ],
- [
- "infinite milliseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(Infinity, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf"]
- ],
- [
- "infinite microseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(Infinity, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf", "get microseconds.valueOf", "call microseconds.valueOf"]
- ],
- [
- "infinite nanoseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(Infinity, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf", "get microseconds.valueOf", "call microseconds.valueOf", "get nanoseconds.valueOf", "call nanoseconds.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.Duration(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/Duration/constructor/constructor/length.js b/polyfill/test/Duration/constructor/constructor/length.js
deleted file mode 100644
index 36638e3704..0000000000
--- a/polyfill/test/Duration/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Temporal.Duration.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/constructor/microseconds-undefined.js b/polyfill/test/Duration/constructor/constructor/microseconds-undefined.js
deleted file mode 100644
index e0f92cb967..0000000000
--- a/polyfill/test/Duration/constructor/constructor/microseconds-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1, 1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.microseconds, 0, "microseconds default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.microseconds, 0, "microseconds default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/milliseconds-undefined.js b/polyfill/test/Duration/constructor/constructor/milliseconds-undefined.js
deleted file mode 100644
index c460c6a06e..0000000000
--- a/polyfill/test/Duration/constructor/constructor/milliseconds-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.milliseconds, 0, "milliseconds default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.milliseconds, 0, "milliseconds default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/minutes-undefined.js b/polyfill/test/Duration/constructor/constructor/minutes-undefined.js
deleted file mode 100644
index 265bd4fbc6..0000000000
--- a/polyfill/test/Duration/constructor/constructor/minutes-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.minutes, 0, "minutes default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.minutes, 0, "minutes default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/months-undefined.js b/polyfill/test/Duration/constructor/constructor/months-undefined.js
deleted file mode 100644
index f9cad3f216..0000000000
--- a/polyfill/test/Duration/constructor/constructor/months-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const years = 1;
-
-const explicit = new Temporal.Duration(years, undefined);
-assert.sameValue(explicit.months, 0, "months default argument");
-
-const implicit = new Temporal.Duration(years);
-assert.sameValue(implicit.months, 0, "months default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/name.js b/polyfill/test/Duration/constructor/constructor/name.js
deleted file mode 100644
index 6455b408ea..0000000000
--- a/polyfill/test/Duration/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Temporal.Duration.name is "Duration"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration, "name", {
- value: "Duration",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/constructor/nanoseconds-undefined.js b/polyfill/test/Duration/constructor/constructor/nanoseconds-undefined.js
deleted file mode 100644
index 2d4de39199..0000000000
--- a/polyfill/test/Duration/constructor/constructor/nanoseconds-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1, 1, 1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.nanoseconds, 0, "nanoseconds default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.nanoseconds, 0, "nanoseconds default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/Duration/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 53c0ebe74b..0000000000
--- a/polyfill/test/Duration/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration throws a RangeError if any value is -Infinity
-esid: sec-temporal.duration
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.Duration(-Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite years",
- [O(-Infinity, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf"]
- ],
- [
- "infinite months",
- [O(0, "years"), O(-Infinity, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf"]
- ],
- [
- "infinite weeks",
- [O(0, "years"), O(0, "months"), O(-Infinity, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf"]
- ],
- [
- "infinite days",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(-Infinity, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf"]
- ],
- [
- "infinite hours",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(-Infinity, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf"]
- ],
- [
- "infinite minutes",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(-Infinity, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf"]
- ],
- [
- "infinite seconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(-Infinity, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf"]
- ],
- [
- "infinite milliseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(-Infinity, "milliseconds"), O(0, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf"]
- ],
- [
- "infinite microseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(-Infinity, "microseconds"), O(0, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf", "get microseconds.valueOf", "call microseconds.valueOf"]
- ],
- [
- "infinite nanoseconds",
- [O(0, "years"), O(0, "months"), O(0, "weeks"), O(0, "days"), O(0, "hours"), O(0, "minutes"), O(0, "seconds"), O(0, "milliseconds"), O(0, "microseconds"), O(-Infinity, "nanoseconds")],
- ["get years.valueOf", "call years.valueOf", "get months.valueOf", "call months.valueOf", "get weeks.valueOf", "call weeks.valueOf", "get days.valueOf", "call days.valueOf", "get hours.valueOf", "call hours.valueOf", "get minutes.valueOf", "call minutes.valueOf", "get seconds.valueOf", "call seconds.valueOf", "get milliseconds.valueOf", "call milliseconds.valueOf", "get microseconds.valueOf", "call microseconds.valueOf", "get nanoseconds.valueOf", "call nanoseconds.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.Duration(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/Duration/constructor/constructor/prop-desc.js b/polyfill/test/Duration/constructor/constructor/prop-desc.js
deleted file mode 100644
index 7a3494e8fc..0000000000
--- a/polyfill/test/Duration/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: The "Duration" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration,
- "function",
- "`typeof Duration` is `function`"
-);
-
-verifyProperty(Temporal, "Duration", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/constructor/seconds-undefined.js b/polyfill/test/Duration/constructor/constructor/seconds-undefined.js
deleted file mode 100644
index a4cc4add4a..0000000000
--- a/polyfill/test/Duration/constructor/constructor/seconds-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1, 1, 1, 1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.seconds, 0, "seconds default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.seconds, 0, "seconds default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/weeks-undefined.js b/polyfill/test/Duration/constructor/constructor/weeks-undefined.js
deleted file mode 100644
index d01172db2d..0000000000
--- a/polyfill/test/Duration/constructor/constructor/weeks-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const args = [1, 1];
-
-const explicit = new Temporal.Duration(...args, undefined);
-assert.sameValue(explicit.weeks, 0, "weeks default argument");
-
-const implicit = new Temporal.Duration(...args);
-assert.sameValue(implicit.weeks, 0, "weeks default argument");
diff --git a/polyfill/test/Duration/constructor/constructor/years-undefined.js b/polyfill/test/Duration/constructor/constructor/years-undefined.js
deleted file mode 100644
index 5523584091..0000000000
--- a/polyfill/test/Duration/constructor/constructor/years-undefined.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration
-description: Undefined arguments should be treated as zero.
-features: [Temporal]
----*/
-
-const explicit = new Temporal.Duration(undefined);
-assert.sameValue(explicit.years, 0, "years default argument");
-
-const implicit = new Temporal.Duration();
-assert.sameValue(implicit.years, 0, "years default argument");
diff --git a/polyfill/test/Duration/constructor/from/argument-existing-object.js b/polyfill/test/Duration/constructor/from/argument-existing-object.js
deleted file mode 100644
index 8173f7c96c..0000000000
--- a/polyfill/test/Duration/constructor/from/argument-existing-object.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Property bag is converted to Duration; Duration is copied
-features: [Temporal]
----*/
-
-const d1 = Temporal.Duration.from({ milliseconds: 1000 });
-assert.sameValue(d1.seconds, 0);
-assert.sameValue(d1.milliseconds, 1000);
-
-const d2 = Temporal.Duration.from(d1);
-assert.notSameValue(d1, d2);
-assert.sameValue(d1.seconds, 0);
-assert.sameValue(d1.milliseconds, 1000);
-assert.sameValue(d2.seconds, 0);
-assert.sameValue(d2.milliseconds, 1000);
diff --git a/polyfill/test/Duration/constructor/from/argument-non-string.js b/polyfill/test/Duration/constructor/from/argument-non-string.js
deleted file mode 100644
index 5b5a41211c..0000000000
--- a/polyfill/test/Duration/constructor/from/argument-non-string.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Appropriate error thrown if primitive input cannot convert to a valid string
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => Temporal.Duration.from(undefined), "undefined");
-assert.throws(RangeError, () => Temporal.Duration.from(null), "null");
-assert.throws(RangeError, () => Temporal.Duration.from(true), "boolean");
-assert.throws(TypeError, () => Temporal.Duration.from(Symbol()), "Symbol");
-assert.throws(RangeError, () => Temporal.Duration.from(5), "number");
-assert.throws(RangeError, () => Temporal.Duration.from(5n), "bigint");
diff --git a/polyfill/test/Duration/constructor/from/argument-string-negative-fractional-units.js b/polyfill/test/Duration/constructor/from/argument-string-negative-fractional-units.js
deleted file mode 100644
index b9d66b3a7f..0000000000
--- a/polyfill/test/Duration/constructor/from/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const resultHours = Temporal.Duration.from("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -799, "negative fractional hours");
-
-const resultMinutes = Temporal.Duration.from("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -379, "negative fractional minutes");
diff --git a/polyfill/test/Duration/constructor/from/builtin.js b/polyfill/test/Duration/constructor/from/builtin.js
deleted file mode 100644
index af6da2acd5..0000000000
--- a/polyfill/test/Duration/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Tests that Temporal.Duration.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/Duration/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 68dd6167bb..0000000000
--- a/polyfill/test/Duration/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.from handles a property bag if any value is Infinity
-esid: sec-temporal.duration.from
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/constructor/from/length.js b/polyfill/test/Duration/constructor/from/length.js
deleted file mode 100644
index 9dc463a5ff..0000000000
--- a/polyfill/test/Duration/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Temporal.Duration.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/from/name.js b/polyfill/test/Duration/constructor/from/name.js
deleted file mode 100644
index 5879cc82bf..0000000000
--- a/polyfill/test/Duration/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Temporal.Duration.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/from/negative-inifinity-throws-rangeerror.js b/polyfill/test/Duration/constructor/from/negative-inifinity-throws-rangeerror.js
deleted file mode 100644
index ee95e13eff..0000000000
--- a/polyfill/test/Duration/constructor/from/negative-inifinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.from handles a property bag if any value is -Infinity
-esid: sec-temporal.duration.from
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: -Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/constructor/from/non-integer-throws-rangeerror.js b/polyfill/test/Duration/constructor/from/non-integer-throws-rangeerror.js
deleted file mode 100644
index 661936ac72..0000000000
--- a/polyfill/test/Duration/constructor/from/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: 1.5 }));
- assert.throws(RangeError, () => Temporal.Duration.from({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Duration/constructor/from/not-a-constructor.js b/polyfill/test/Duration/constructor/from/not-a-constructor.js
deleted file mode 100644
index 8c2e16a9b4..0000000000
--- a/polyfill/test/Duration/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Temporal.Duration.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.from), false,
- "isConstructor(Temporal.Duration.from)");
diff --git a/polyfill/test/Duration/constructor/from/order-of-operations.js b/polyfill/test/Duration/constructor/from/order-of-operations.js
deleted file mode 100644
index 308b483b8c..0000000000
--- a/polyfill/test/Duration/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.Duration.from(argument);
-TemporalHelpers.assertDuration(result, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Duration/constructor/from/prop-desc.js b/polyfill/test/Duration/constructor/from/prop-desc.js
deleted file mode 100644
index 3fd679a21f..0000000000
--- a/polyfill/test/Duration/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: The "from" property of Temporal.Duration
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.from,
- "function",
- "`typeof Duration.from` is `function`"
-);
-
-verifyProperty(Temporal.Duration, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/constructor/from/string-with-skipped-units.js b/polyfill/test/Duration/constructor/from/string-with-skipped-units.js
deleted file mode 100644
index cf8e48f649..0000000000
--- a/polyfill/test/Duration/constructor/from/string-with-skipped-units.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: |
- Creating a Duration from an ISO 8601 string with an absent designator between
- two other designators
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Date designators: years-weeks (months missing)
-
-const d1 = Temporal.Duration.from("P3Y4W");
-TemporalHelpers.assertDuration(d1, 3, 0, 4, 0, 0, 0, 0, 0, 0, 0, "years-weeks string");
-
-// Date designators: years-days (months and weeks missing)
-
-const d2 = Temporal.Duration.from("P3Y4D");
-TemporalHelpers.assertDuration(d2, 3, 0, 0, 4, 0, 0, 0, 0, 0, 0, "years-days string");
-
-// Date designators: months-days (weeks missing)
-
-const d3 = Temporal.Duration.from("P3M4D");
-TemporalHelpers.assertDuration(d3, 0, 3, 0, 4, 0, 0, 0, 0, 0, 0, "months-days string");
-
-// Time designators: hours-seconds (minutes missing)
-
-const d4 = Temporal.Duration.from("PT3H4.123456789S");
-TemporalHelpers.assertDuration(d4, 0, 0, 0, 0, 3, 0, 4, 123, 456, 789, "hours-seconds string");
diff --git a/polyfill/test/Duration/constructor/from/subclassing-ignored.js b/polyfill/test/Duration/constructor/from/subclassing-ignored.js
deleted file mode 100644
index bb75f3836f..0000000000
--- a/polyfill/test/Duration/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Duration,
- "from",
- ["P1Y2M3W4DT5H6M7.987654321S"],
- (result) => TemporalHelpers.assertDuration(result, 1, 2, 3, 4, 5, 6, 7, 987, 654, 321),
-);
diff --git a/polyfill/test/Duration/prototype/abs/branding.js b/polyfill/test/Duration/prototype/abs/branding.js
deleted file mode 100644
index cb45cce69d..0000000000
--- a/polyfill/test/Duration/prototype/abs/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const abs = Temporal.Duration.prototype.abs;
-
-assert.sameValue(typeof abs, "function");
-
-assert.throws(TypeError, () => abs.call(undefined), "undefined");
-assert.throws(TypeError, () => abs.call(null), "null");
-assert.throws(TypeError, () => abs.call(true), "true");
-assert.throws(TypeError, () => abs.call(""), "empty string");
-assert.throws(TypeError, () => abs.call(Symbol()), "symbol");
-assert.throws(TypeError, () => abs.call(1), "1");
-assert.throws(TypeError, () => abs.call({}), "plain object");
-assert.throws(TypeError, () => abs.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => abs.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/abs/builtin.js b/polyfill/test/Duration/prototype/abs/builtin.js
deleted file mode 100644
index d4f97bad9e..0000000000
--- a/polyfill/test/Duration/prototype/abs/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: >
- Tests that Temporal.Duration.prototype.abs
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.abs),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.abs),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.abs),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.abs.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/abs/length.js b/polyfill/test/Duration/prototype/abs/length.js
deleted file mode 100644
index 873127cc26..0000000000
--- a/polyfill/test/Duration/prototype/abs/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: Temporal.Duration.prototype.abs.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.abs, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/abs/name.js b/polyfill/test/Duration/prototype/abs/name.js
deleted file mode 100644
index 68d8309c2d..0000000000
--- a/polyfill/test/Duration/prototype/abs/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: Temporal.Duration.prototype.abs.name is "abs".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.abs, "name", {
- value: "abs",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/abs/not-a-constructor.js b/polyfill/test/Duration/prototype/abs/not-a-constructor.js
deleted file mode 100644
index bf7cb628da..0000000000
--- a/polyfill/test/Duration/prototype/abs/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: >
- Temporal.Duration.prototype.abs does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.abs();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.abs), false,
- "isConstructor(Temporal.Duration.prototype.abs)");
diff --git a/polyfill/test/Duration/prototype/abs/prop-desc.js b/polyfill/test/Duration/prototype/abs/prop-desc.js
deleted file mode 100644
index 8230b9e1c6..0000000000
--- a/polyfill/test/Duration/prototype/abs/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: The "abs" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.abs,
- "function",
- "`typeof Duration.prototype.abs` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "abs", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/abs/subclassing-ignored.js b/polyfill/test/Duration/prototype/abs/subclassing-ignored.js
deleted file mode 100644
index ec26809989..0000000000
--- a/polyfill/test/Duration/prototype/abs/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.abs
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, -4, -5, -6, -7, -987, -654, -321],
- "abs",
- [],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 5, 6, 7, 987, 654, 321),
-);
diff --git a/polyfill/test/Duration/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/Duration/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 8c4b038a5d..0000000000
--- a/polyfill/test/Duration/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration();
-
-const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, -24, -34, -4, -404, -442, -799, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, -1440, -34, -73, -407, -379, "negative fractional minutes");
diff --git a/polyfill/test/Duration/prototype/add/balance-negative-result.js b/polyfill/test/Duration/prototype/add/balance-negative-result.js
deleted file mode 100644
index 30c164f796..0000000000
--- a/polyfill/test/Duration/prototype/add/balance-negative-result.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-addduration steps 5–6:
- 5. If _relativeTo_ is *undefined*, then
- ...
- b. Let _result_ be ! BalanceDuration(_d1_ + _d2_, _h1_ + _h2_, _min1_ + _min2_, _s1_ + _s2_, _ms1_ + _ms2_, _mus1_ + _mus2_, _ns1_ + _ns2_, _largestUnit_).
- ...
- 6. Else if _relativeTo_ has an [[InitializedTemporalPlainDateTime]] internal slot, then
- ...
- n. Let _result_ be ! BalanceDuration(_dateDifference_.[[Days]], _h1_ + _h2_, _min1_ + _min2_, _s1_ + _s2_, _ms1_ + _ms2_, _mus1_ + _mus2_, _ns1_ + _ns2_, _largestUnit_).
- sec-temporal.duration.prototype.add step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _other_.[[Years]], _other_.[[Months]], _other_.[[Weeks]], _other_.[[Days]], _other_.[[Hours]], _other_.[[Minutes]], _other_.[[Seconds]], _other_.[[Milliseconds]], _other_.[[Microseconds]], _other_.[[Nanoseconds]], _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(0, 0, 0, 0, -60);
-const duration2 = new Temporal.Duration(0, 0, 0, -1);
-
-const resultNotRelative = duration1.add(duration2);
-TemporalHelpers.assertDuration(resultNotRelative, 0, 0, 0, -3, -12, 0, 0, 0, 0, 0);
-
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-const resultRelative = duration1.add(duration2, { relativeTo });
-TemporalHelpers.assertDuration(resultRelative, 0, 0, 0, -3, -12, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/add/balance-negative-time-units.js b/polyfill/test/Duration/prototype/add/balance-negative-time-units.js
deleted file mode 100644
index 06c068e210..0000000000
--- a/polyfill/test/Duration/prototype/add/balance-negative-time-units.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Negative time fields in relativeTo are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal-differencezoneddatetime step 7:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- sec-temporal-addduration step 7.g.i:
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal.duration.prototype.add step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _other_.[[Years]], _other_.[[Months]], _other_.[[Weeks]], _other_.[[Days]], _other_.[[Hours]], _other_.[[Minutes]], _other_.[[Seconds]], _other_.[[Milliseconds]], _other_.[[Microseconds]], _other_.[[Nanoseconds]], _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 1, 1, 1, 1, 1, 1);
-
-const timeZone = new Temporal.TimeZone("UTC");
-const relativeTo = new Temporal.ZonedDateTime(830998861_000_000_000n, timeZone);
-// This code path is encountered if largestUnit is years, months, weeks, or days
-// and relativeTo is a ZonedDateTime
-const options = { largestUnit: "days", relativeTo };
-
-const result1 = duration.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = duration.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = duration.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = duration.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = duration.add(new Temporal.Duration(0, 0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = duration.add(new Temporal.Duration(0, 0, 0, 0, -2), options);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/Duration/prototype/add/branding.js b/polyfill/test/Duration/prototype/add/branding.js
deleted file mode 100644
index e311bd44f8..0000000000
--- a/polyfill/test/Duration/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.Duration.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => add.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/add/builtin.js b/polyfill/test/Duration/prototype/add/builtin.js
deleted file mode 100644
index a13e72b673..0000000000
--- a/polyfill/test/Duration/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: >
- Tests that Temporal.Duration.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/add/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/Duration/prototype/add/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 84dfc1f0d2..0000000000
--- a/polyfill/test/Duration/prototype/add/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.Duration(1, 1, 1, 1);
-instance.add(instance, { relativeTo: new Temporal.ZonedDateTime(0n, timeZone, calendar) });
-assert.sameValue(calendar.dateAddCallCount, 5);
diff --git a/polyfill/test/Duration/prototype/add/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/Duration/prototype/add/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index ced56a7461..0000000000
--- a/polyfill/test/Duration/prototype/add/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.duration.prototype.add step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _other_.[[Years]], _other_.[[Months]], _other_.[[Weeks]], _other_.[[Days]], _other_.[[Hours]], _other_.[[Minutes]], _other_.[[Seconds]], _other_.[[Milliseconds]], _other_.[[Microseconds]], _other_.[[Nanoseconds]], _relativeTo_).
- sec-temporal-addduration steps 6-7:
- 6. If _relativeTo_ has an [[InitializedTemporalPlainDateTime]] internal slot, then
- ...
- j. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- k. Let _differenceOptions_ be ! OrdinaryObjectCreate(*null*).
- l. Perform ! CreateDataPropertyOrThrow(_differenceOptions_, *"largestUnit"*, _dateLargestUnit_).
- m. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _datePart_, _end_, _differenceOptions_).
- ...
- 7. Else,
- a. Assert: _relativeTo_ has an [[IntializedTemporalZonedDateTime]] internal slot.
- ...
- f. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- g. Else,
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-differencezoneddatetime steps 7 and 11:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- 11. Let _result_ be ? NanosecondsToDays(_timeRemainderNs_, _intermediate_).
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit, index) => {
- const one = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(1)]);
- const two = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(2)]);
- const relativeTo = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- one.add(two, { relativeTo, largestUnit });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"],
- hours: ["day"],
- minutes: ["day"],
- seconds: ["day"],
- milliseconds: ["day"],
- microseconds: ["day"],
- nanoseconds: ["day"]
- }
-);
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit, index) => {
- const one = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(1)]);
- const two = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(2)]);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- one.add(two, { relativeTo, largestUnit });
- },
- {
- years: ["year", "day"],
- months: ["month", "day"],
- weeks: ["week", "day"],
- days: ["day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
diff --git a/polyfill/test/Duration/prototype/add/calendar-fields-iterable.js b/polyfill/test/Duration/prototype/add/calendar-fields-iterable.js
deleted file mode 100644
index 91309aa2a1..0000000000
--- a/polyfill/test/Duration/prototype/add/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.duration.prototype.add step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-duration1.add(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Duration/prototype/add/calendar-temporal-object.js b/polyfill/test/Duration/prototype/add/calendar-temporal-object.js
deleted file mode 100644
index aaa960358a..0000000000
--- a/polyfill/test/Duration/prototype/add/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.duration.prototype.add step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2b
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 12);
- duration1.add(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar: temporalObject } });
-});
diff --git a/polyfill/test/Duration/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index 502192562c..0000000000
--- a/polyfill/test/Duration/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.duration.prototype.add
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }, { relativeTo }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { relativeTo }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/add/length.js b/polyfill/test/Duration/prototype/add/length.js
deleted file mode 100644
index 93fb150628..0000000000
--- a/polyfill/test/Duration/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Temporal.Duration.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/add/name.js b/polyfill/test/Duration/prototype/add/name.js
deleted file mode 100644
index 5d269602da..0000000000
--- a/polyfill/test/Duration/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Temporal.Duration.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 8ba38ab6bc..0000000000
--- a/polyfill/test/Duration/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.duration.prototype.add
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }, { relativeTo }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { relativeTo }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/Duration/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 7b82df1931..0000000000
--- a/polyfill/test/Duration/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Duration/prototype/add/not-a-constructor.js b/polyfill/test/Duration/prototype/add/not-a-constructor.js
deleted file mode 100644
index a2273afd68..0000000000
--- a/polyfill/test/Duration/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: >
- Temporal.Duration.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.add), false,
- "isConstructor(Temporal.Duration.prototype.add)");
diff --git a/polyfill/test/Duration/prototype/add/options-undefined.js b/polyfill/test/Duration/prototype/add/options-undefined.js
deleted file mode 100644
index ef9717d9ac..0000000000
--- a/polyfill/test/Duration/prototype/add/options-undefined.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-assert.throws(RangeError, () => duration1.add(duration2), "default relativeTo is undefined");
-assert.throws(RangeError, () => duration1.add(duration2, undefined), "default relativeTo is undefined");
diff --git a/polyfill/test/Duration/prototype/add/order-of-operations.js b/polyfill/test/Duration/prototype/add/order-of-operations.js
deleted file mode 100644
index f44ea0845d..0000000000
--- a/polyfill/test/Duration/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 0, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument, { relativeTo });
-TemporalHelpers.assertDuration(result, 2, 3, 0, 12, 6, 7, 8, 988, 655, 322);
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Duration/prototype/add/prop-desc.js b/polyfill/test/Duration/prototype/add/prop-desc.js
deleted file mode 100644
index 506a981258..0000000000
--- a/polyfill/test/Duration/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: The "add" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.add,
- "function",
- "`typeof Duration.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/add/read-time-fields-before-datefromfields.js b/polyfill/test/Duration/prototype/add/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 0edbe3e00a..0000000000
--- a/polyfill/test/Duration/prototype/add/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.duration.prototype.add step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.g:
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInvalidGettersTime();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-duration1.add(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
diff --git a/polyfill/test/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index 187a307200..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.add
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.add(instance, { relativeTo: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.add(instance, { relativeTo: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 6ff38ac14e..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- assert.throws(RangeError, () => duration.add(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index d34a9ea316..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- assert.throws(RangeError, () => duration.add(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 871d5f7dcc..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- assert.throws(TypeError, () => duration.add(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-string-datetime.js b/polyfill/test/Duration/prototype/add/relativeto-string-datetime.js
deleted file mode 100644
index 4cbb6d5741..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-string-datetime.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: >
- Conversion of ISO date-time strings as relativeTo option to
- Temporal.ZonedDateTime or Temporal.PlainDateTime instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 0, 0, 1);
-
-let relativeTo = "2019-11-01T00:00";
-const result1 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bare date-time string is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00Z";
-const result2 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00";
-const result3 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + offset is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00[America/Vancouver]";
-const result4 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00Z[America/Vancouver]";
-const result5 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result5, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00[America/Vancouver]";
-const result6 = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo });
-TemporalHelpers.assertDuration(result6, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00+04:15[America/Vancouver]";
-assert.throws(RangeError, () => instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/Duration/prototype/add/relativeto-string-invalid.js b/polyfill/test/Duration/prototype/add/relativeto-string-invalid.js
deleted file mode 100644
index bea9914cd4..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-string-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: RangeError thrown if relativeTo is a string with the wrong format
-features: [Temporal]
----*/
-
-['bad string', '15:30:45.123456', 'iso8601', 'UTC', 'P1YT1H'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 15);
- assert.throws(RangeError, () => duration.add(new Temporal.Duration(0, 0, 0, 16), { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-string-plaindatetime.js b/polyfill/test/Duration/prototype/add/relativeto-string-plaindatetime.js
deleted file mode 100644
index 5a806a826d..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-string-plaindatetime.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: The relativeTo option accepts a PlainDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-['2000-01-01', '2000-01-01T00:00', '2000-01-01T00:00[u-ca=iso8601]'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 15);
- const result = duration.add(new Temporal.Duration(0, 0, 0, 16), { relativeTo });
- TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-string-zoneddatetime.js b/polyfill/test/Duration/prototype/add/relativeto-string-zoneddatetime.js
deleted file mode 100644
index 0bc5351320..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-string-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: The relativeTo option accepts a ZonedDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- '2000-01-01[UTC]',
- '2000-01-01T00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC][u-ca=iso8601]',
-].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 15);
- const result = duration.add(new Temporal.Duration(0, 0, 0, 16), { relativeTo });
- TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 377a02df2a..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const relativeTo = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time; in this
-// case via relativeTo.
-
-const result = duration.add(duration, { relativeTo });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index c7d5ad5471..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.add(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index e137b38e65..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.add(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6e86c2ffc7..0000000000
--- a/polyfill/test/Duration/prototype/add/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(2);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => duration.add(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/add/subclassing-ignored.js b/polyfill/test/Duration/prototype/add/subclassing-ignored.js
deleted file mode 100644
index db0c6d7e2a..0000000000
--- a/polyfill/test/Duration/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, 4, 5, 6, 7, 987, 654, 321],
- "add",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 5, 6, 7, 987, 654, 322),
-);
diff --git a/polyfill/test/Duration/prototype/add/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/Duration/prototype/add/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 0443b1c47b..0000000000
--- a/polyfill/test/Duration/prototype/add/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.duration.prototype.add steps 5–6:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], [...], _duration_.[[Nanoseconds]], _other_.[[Years]], [...], _other_.[[Nanoseconds]], _relativeTo_).
- sec-temporal-torelativetemporalobject step 6.d:
- d. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNs_, _timeZone_, *"compatible"*, *"reject"*).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-addduration steps 7.d–e and 7.g.i:
- d. Let _intermediateNs_ be ? AddZonedDateTime(_relativeTo_.[[Nanoseconds]], _timeZone_, _calendar_, _y1_, [...], _ns1_).
- e. Let _endNs_ be ? AddZonedDateTime(_intermediateNs_, _timeZone_, _calendar_, _y2_, [...], _ns2_).
- [...]
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-differencezoneddatetime step 8:
- 8. Let _intermediateNs_ be ? AddZonedDateTime(_ns1_, _timeZone_, _calendar_, _dateDifference_.[[Years]], _dateDifference_.[[Months]], _dateDifference_.[[Weeks]], 0, 0, 0, 0, 0, 0, 0).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-01-01T09:00:00", // called once on the input relativeTo object
- "2001-01-01T09:00:00", // called once on relativeTo plus the receiver
- "2002-01-01T09:00:00", // called once on relativeTo plus the receiver plus the argument
- "2002-01-01T09:00:00", // called once on relativeTo plus the years, months, and weeks from the difference of relativeTo minus endNs
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 12);
- duration1.add(duration2, { relativeTo: { year: 2000, month: 1, day: 1, hour: 9, timeZone } });
-}, expected);
diff --git a/polyfill/test/Duration/prototype/add/timezone-string-datetime.js b/polyfill/test/Duration/prototype/add/timezone-string-datetime.js
deleted file mode 100644
index a6cfc7dee6..0000000000
--- a/polyfill/test/Duration/prototype/add/timezone-string-datetime.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.add
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.add(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.add(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- instance.add(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } });
- instance.add(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } });
-});
diff --git a/polyfill/test/Duration/prototype/blank/branding.js b/polyfill/test/Duration/prototype/blank/branding.js
deleted file mode 100644
index fbfdc4a10c..0000000000
--- a/polyfill/test/Duration/prototype/blank/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.blank
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const blank = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "blank").get;
-
-assert.sameValue(typeof blank, "function");
-
-assert.throws(TypeError, () => blank.call(undefined), "undefined");
-assert.throws(TypeError, () => blank.call(null), "null");
-assert.throws(TypeError, () => blank.call(true), "true");
-assert.throws(TypeError, () => blank.call(""), "empty string");
-assert.throws(TypeError, () => blank.call(Symbol()), "symbol");
-assert.throws(TypeError, () => blank.call(1), "1");
-assert.throws(TypeError, () => blank.call({}), "plain object");
-assert.throws(TypeError, () => blank.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => blank.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/blank/prop-desc.js b/polyfill/test/Duration/prototype/blank/prop-desc.js
deleted file mode 100644
index f7ce58b0b5..0000000000
--- a/polyfill/test/Duration/prototype/blank/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.blank
-description: The "blank" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "blank");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/days/branding.js b/polyfill/test/Duration/prototype/days/branding.js
deleted file mode 100644
index 8a55f399a7..0000000000
--- a/polyfill/test/Duration/prototype/days/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.days
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const days = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "days").get;
-
-assert.sameValue(typeof days, "function");
-
-assert.throws(TypeError, () => days.call(undefined), "undefined");
-assert.throws(TypeError, () => days.call(null), "null");
-assert.throws(TypeError, () => days.call(true), "true");
-assert.throws(TypeError, () => days.call(""), "empty string");
-assert.throws(TypeError, () => days.call(Symbol()), "symbol");
-assert.throws(TypeError, () => days.call(1), "1");
-assert.throws(TypeError, () => days.call({}), "plain object");
-assert.throws(TypeError, () => days.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => days.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/days/prop-desc.js b/polyfill/test/Duration/prototype/days/prop-desc.js
deleted file mode 100644
index a482f9a75b..0000000000
--- a/polyfill/test/Duration/prototype/days/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.days
-description: The "days" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "days");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/hours/branding.js b/polyfill/test/Duration/prototype/hours/branding.js
deleted file mode 100644
index da72621a1a..0000000000
--- a/polyfill/test/Duration/prototype/hours/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.hours
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const hours = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "hours").get;
-
-assert.sameValue(typeof hours, "function");
-
-assert.throws(TypeError, () => hours.call(undefined), "undefined");
-assert.throws(TypeError, () => hours.call(null), "null");
-assert.throws(TypeError, () => hours.call(true), "true");
-assert.throws(TypeError, () => hours.call(""), "empty string");
-assert.throws(TypeError, () => hours.call(Symbol()), "symbol");
-assert.throws(TypeError, () => hours.call(1), "1");
-assert.throws(TypeError, () => hours.call({}), "plain object");
-assert.throws(TypeError, () => hours.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => hours.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/hours/prop-desc.js b/polyfill/test/Duration/prototype/hours/prop-desc.js
deleted file mode 100644
index ef761fd69d..0000000000
--- a/polyfill/test/Duration/prototype/hours/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.hours
-description: The "hours" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "hours");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/microseconds/branding.js b/polyfill/test/Duration/prototype/microseconds/branding.js
deleted file mode 100644
index 813670405e..0000000000
--- a/polyfill/test/Duration/prototype/microseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.microseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const microseconds = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "microseconds").get;
-
-assert.sameValue(typeof microseconds, "function");
-
-assert.throws(TypeError, () => microseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => microseconds.call(null), "null");
-assert.throws(TypeError, () => microseconds.call(true), "true");
-assert.throws(TypeError, () => microseconds.call(""), "empty string");
-assert.throws(TypeError, () => microseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => microseconds.call(1), "1");
-assert.throws(TypeError, () => microseconds.call({}), "plain object");
-assert.throws(TypeError, () => microseconds.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => microseconds.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/microseconds/prop-desc.js b/polyfill/test/Duration/prototype/microseconds/prop-desc.js
deleted file mode 100644
index 3f860d4c01..0000000000
--- a/polyfill/test/Duration/prototype/microseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.microseconds
-description: The "microseconds" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "microseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/milliseconds/branding.js b/polyfill/test/Duration/prototype/milliseconds/branding.js
deleted file mode 100644
index 28c0242175..0000000000
--- a/polyfill/test/Duration/prototype/milliseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.milliseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const milliseconds = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "milliseconds").get;
-
-assert.sameValue(typeof milliseconds, "function");
-
-assert.throws(TypeError, () => milliseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => milliseconds.call(null), "null");
-assert.throws(TypeError, () => milliseconds.call(true), "true");
-assert.throws(TypeError, () => milliseconds.call(""), "empty string");
-assert.throws(TypeError, () => milliseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => milliseconds.call(1), "1");
-assert.throws(TypeError, () => milliseconds.call({}), "plain object");
-assert.throws(TypeError, () => milliseconds.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => milliseconds.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/milliseconds/prop-desc.js b/polyfill/test/Duration/prototype/milliseconds/prop-desc.js
deleted file mode 100644
index f7a56e343b..0000000000
--- a/polyfill/test/Duration/prototype/milliseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.milliseconds
-description: The "milliseconds" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "milliseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/minutes/branding.js b/polyfill/test/Duration/prototype/minutes/branding.js
deleted file mode 100644
index fffcd387e9..0000000000
--- a/polyfill/test/Duration/prototype/minutes/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.minutes
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const minutes = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "minutes").get;
-
-assert.sameValue(typeof minutes, "function");
-
-assert.throws(TypeError, () => minutes.call(undefined), "undefined");
-assert.throws(TypeError, () => minutes.call(null), "null");
-assert.throws(TypeError, () => minutes.call(true), "true");
-assert.throws(TypeError, () => minutes.call(""), "empty string");
-assert.throws(TypeError, () => minutes.call(Symbol()), "symbol");
-assert.throws(TypeError, () => minutes.call(1), "1");
-assert.throws(TypeError, () => minutes.call({}), "plain object");
-assert.throws(TypeError, () => minutes.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => minutes.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/minutes/prop-desc.js b/polyfill/test/Duration/prototype/minutes/prop-desc.js
deleted file mode 100644
index 9a847ac7a4..0000000000
--- a/polyfill/test/Duration/prototype/minutes/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.minutes
-description: The "minutes" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "minutes");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/months/branding.js b/polyfill/test/Duration/prototype/months/branding.js
deleted file mode 100644
index cf6030edca..0000000000
--- a/polyfill/test/Duration/prototype/months/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.months
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const months = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "months").get;
-
-assert.sameValue(typeof months, "function");
-
-assert.throws(TypeError, () => months.call(undefined), "undefined");
-assert.throws(TypeError, () => months.call(null), "null");
-assert.throws(TypeError, () => months.call(true), "true");
-assert.throws(TypeError, () => months.call(""), "empty string");
-assert.throws(TypeError, () => months.call(Symbol()), "symbol");
-assert.throws(TypeError, () => months.call(1), "1");
-assert.throws(TypeError, () => months.call({}), "plain object");
-assert.throws(TypeError, () => months.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => months.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/months/prop-desc.js b/polyfill/test/Duration/prototype/months/prop-desc.js
deleted file mode 100644
index a55c530674..0000000000
--- a/polyfill/test/Duration/prototype/months/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.months
-description: The "months" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "months");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/nanoseconds/branding.js b/polyfill/test/Duration/prototype/nanoseconds/branding.js
deleted file mode 100644
index 15b684b183..0000000000
--- a/polyfill/test/Duration/prototype/nanoseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.nanoseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const nanoseconds = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "nanoseconds").get;
-
-assert.sameValue(typeof nanoseconds, "function");
-
-assert.throws(TypeError, () => nanoseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => nanoseconds.call(null), "null");
-assert.throws(TypeError, () => nanoseconds.call(true), "true");
-assert.throws(TypeError, () => nanoseconds.call(""), "empty string");
-assert.throws(TypeError, () => nanoseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => nanoseconds.call(1), "1");
-assert.throws(TypeError, () => nanoseconds.call({}), "plain object");
-assert.throws(TypeError, () => nanoseconds.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => nanoseconds.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/nanoseconds/prop-desc.js b/polyfill/test/Duration/prototype/nanoseconds/prop-desc.js
deleted file mode 100644
index a74ebed2ad..0000000000
--- a/polyfill/test/Duration/prototype/nanoseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.nanoseconds
-description: The "nanoseconds" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "nanoseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/negated/branding.js b/polyfill/test/Duration/prototype/negated/branding.js
deleted file mode 100644
index 612dcafb9b..0000000000
--- a/polyfill/test/Duration/prototype/negated/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const negated = Temporal.Duration.prototype.negated;
-
-assert.sameValue(typeof negated, "function");
-
-assert.throws(TypeError, () => negated.call(undefined), "undefined");
-assert.throws(TypeError, () => negated.call(null), "null");
-assert.throws(TypeError, () => negated.call(true), "true");
-assert.throws(TypeError, () => negated.call(""), "empty string");
-assert.throws(TypeError, () => negated.call(Symbol()), "symbol");
-assert.throws(TypeError, () => negated.call(1), "1");
-assert.throws(TypeError, () => negated.call({}), "plain object");
-assert.throws(TypeError, () => negated.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => negated.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/negated/builtin.js b/polyfill/test/Duration/prototype/negated/builtin.js
deleted file mode 100644
index e9b20c0a6a..0000000000
--- a/polyfill/test/Duration/prototype/negated/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: >
- Tests that Temporal.Duration.prototype.negated
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.negated),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.negated),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.negated),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.negated.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/negated/length.js b/polyfill/test/Duration/prototype/negated/length.js
deleted file mode 100644
index c43ebae3a4..0000000000
--- a/polyfill/test/Duration/prototype/negated/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: Temporal.Duration.prototype.negated.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.negated, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/negated/name.js b/polyfill/test/Duration/prototype/negated/name.js
deleted file mode 100644
index 8ce2765480..0000000000
--- a/polyfill/test/Duration/prototype/negated/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: Temporal.Duration.prototype.negated.name is "negated".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.negated, "name", {
- value: "negated",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/negated/not-a-constructor.js b/polyfill/test/Duration/prototype/negated/not-a-constructor.js
deleted file mode 100644
index 43b8e8be82..0000000000
--- a/polyfill/test/Duration/prototype/negated/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: >
- Temporal.Duration.prototype.negated does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.negated();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.negated), false,
- "isConstructor(Temporal.Duration.prototype.negated)");
diff --git a/polyfill/test/Duration/prototype/negated/prop-desc.js b/polyfill/test/Duration/prototype/negated/prop-desc.js
deleted file mode 100644
index f0349ad8e8..0000000000
--- a/polyfill/test/Duration/prototype/negated/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: The "negated" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.negated,
- "function",
- "`typeof Duration.prototype.negated` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "negated", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/negated/subclassing-ignored.js b/polyfill/test/Duration/prototype/negated/subclassing-ignored.js
deleted file mode 100644
index 9dcf121baa..0000000000
--- a/polyfill/test/Duration/prototype/negated/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.negated
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, 4, 5, 6, 7, 987, 654, 321],
- "negated",
- [],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, -4, -5, -6, -7, -987, -654, -321),
-);
diff --git a/polyfill/test/Duration/prototype/round/balance-negative-result.js b/polyfill/test/Duration/prototype/round/balance-negative-result.js
deleted file mode 100644
index 5717d3ff77..0000000000
--- a/polyfill/test/Duration/prototype/round/balance-negative-result.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal.duration.prototype.round step 25:
- 25. Let _result_ be ? BalanceDuration(_balanceResult_.[[Days]], _adjustResult_.[[Hours]], _adjustResult_.[[Minutes]], _adjustResult_.[[Seconds]], _adjustResult_.[[Milliseconds]], _adjustResult_.[[Microseconds]], _adjustResult_.[[Nanoseconds]], _largestUnit_, _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, -60);
-const result = duration.round({ largestUnit: "days" });
-TemporalHelpers.assertDuration(result, 0, 0, 0, -2, -12, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/round/branding.js b/polyfill/test/Duration/prototype/round/branding.js
deleted file mode 100644
index 503b77f9bf..0000000000
--- a/polyfill/test/Duration/prototype/round/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const round = Temporal.Duration.prototype.round;
-
-assert.sameValue(typeof round, "function");
-
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => round.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/round/builtin.js b/polyfill/test/Duration/prototype/round/builtin.js
deleted file mode 100644
index 179853ea0f..0000000000
--- a/polyfill/test/Duration/prototype/round/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- Tests that Temporal.Duration.prototype.round
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.round),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.round),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.round),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.round.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/round/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/Duration/prototype/round/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 2c81eabfa0..0000000000
--- a/polyfill/test/Duration/prototype/round/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const relativeTo = new Temporal.ZonedDateTime(0n, timeZone, calendar);
-
-// Rounding with smallestUnit a calendar unit.
-// The calls come from these paths:
-// Duration.round() ->
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// BalanceDurationRelative ->
-// MoveRelativeDate -> calendar.dateAdd() (2x)
-// calendar.dateAdd()
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// BalanceDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-
-const instance1 = new Temporal.Duration(1, 1, 1, 1, 1);
-instance1.round({ smallestUnit: "days", relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 9, "rounding with calendar smallestUnit");
-
-// Rounding with a non-default largestUnit to cover the path in
-// UnbalanceDurationRelative where larger units are converted into smaller
-// units; and with a smallestUnit larger than days to cover the path in
-// RoundDuration where days are converted into larger units.
-// The calls come from these paths:
-// Duration.round() ->
-// UnbalanceDurationRelative -> MoveRelativeDate -> calendar.dateAdd()
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// MoveRelativeDate -> calendar.dateAdd() (5x)
-// BalanceDurationRelative
-// MoveRelativeDate -> calendar.dateAdd()
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-
-calendar.dateAddCallCount = 0;
-
-const instance2 = new Temporal.Duration(0, 1, 1, 1);
-instance2.round({ largestUnit: "weeks", smallestUnit: "weeks", relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 9, "rounding with non-default largestUnit and calendar smallestUnit");
-
-// Rounding with smallestUnit a non-calendar unit, and having the resulting time
-// difference be longer than a calendar day, covering the paths that go through
-// AdjustRoundedDurationDays.
-// The calls come from these paths:
-// Duration.round() ->
-// AdjustRoundedDurationDays ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// AddDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-// BalanceDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-
-calendar.dateAddCallCount = 0;
-
-const instance3 = new Temporal.Duration(0, 0, 0, 0, 23, 59, 59, 999, 999, 999);
-instance3.round({ largestUnit: "days", smallestUnit: "hours", roundingMode: "ceil", relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 7, "rounding with time difference exceeding calendar day");
diff --git a/polyfill/test/Duration/prototype/round/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/Duration/prototype/round/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index d0092fc8a3..0000000000
--- a/polyfill/test/Duration/prototype/round/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.duration.prototype.round steps 20–25:
- 20. Let _unbalanceResult_ be ? UnbalanceDurationRelative(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _largestUnit_, _relativeTo_).
- 21. Let _roundResult_ be ? RoundDuration(_unbalanceResult_.[[Years]], _unbalanceResult_.[[Months]], _unbalanceResult_.[[Weeks]], _unbalanceResult_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_[[Seconds]], _duration_[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _relativeTo_).
- 22. Let _adjustResult_ be ? AdjustRoundedDurationDays(_roundResult_.[[Years]], _roundResult_.[[Months]], _roundResult_.[[Weeks]], _roundResult_.[[Days]], _roundResult_.[[Hours]], _roundResult_.[[Minutes]], _roundResult_.[[Seconds]], _roundResult_.[[Milliseconds]], _roundResult_.[[Microseconds]], _roundResult_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _relativeTo_).
- 23. Let _balanceResult_ be ? BalanceDurationRelative(_adjustResult_.[[Years]], _adjustResult_.[[Months]], _adjustResult_.[[Weeks]], _adjustResult_.[[Days]], _largestUnit_, _relativeTo_).
- 24. ...
- 25. Let _result_ be ? BalanceDuration(_balanceResult_.[[Days]], _adjustResult_.[[Hours]], _adjustResult_.[[Minutes]], _adjustResult_.[[Seconds]], _adjustResult_.[[Milliseconds]], _adjustResult_.[[Microseconds]], _adjustResult.[[Nanoseconds]], _largestUnit_, _relativeTo_).
- sec-temporal-unbalancedurationrelative steps 1 and 9.d.iii–v:
- 1. If _largestUnit_ is *"year"*, or _years_, _months_, _weeks_, and _days_ are all 0, then
- a. Return ...
- ...
- 9. If _largestUnit_ is *"month"*, then
- ...
- d. Repeat, while abs(_years_) > 0,
- ...
- iii. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- iv. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"month"*).
- v. Let _untilResult_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _newRelativeTo_, _untilOptions_, _dateUntil_).
- sec-temporal-roundduration steps 5.d and 8.n–p:
- 5. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- ...
- 8. If _unit_ is *"year"*, then
- ...
- n. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- o. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"year"*).
- p. Let _timePassed_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _daysLater_, _untilOptions_)
- sec-temporal-adjustroundeddurationdays steps 1 and 9:
- 1. If _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot; or _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*; or _unit_ is *"nanosecond"* and _increment_ is 1, then
- a. Return ...
- ...
- 9. Let _adjustedDateDuration_ be ? AddDuration(_years_, _months_, _weeks_, _days_, 0, 0, 0, 0, 0, 0, 0, 0, 0, _direction_, 0, 0, 0, 0, 0, 0, _relativeTo_).
- sec-temporal-addduration step 7.a–g:
- a. Assert: _relativeTo_ has an [[IntializedTemporalZonedDateTime]] internal slot.
- ...
- f. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- g. Else,
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-balancedurationrelative steps 1, 9.m–o, and 9.q.vi–viii:
- 1. If _largestUnit_ is not one of *"year"*, *"month"*, or *"week"*, or _years_, _months_, _weeks_, and _days_ are all 0, then
- a. Return ...
- ...
- 9. If _largestUnit_ is *"year"*, then
- ...
- m. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- n. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"month"*).
- o. Let _untilResult_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _newRelativeTo_, _untilOptions_, _dateUntil_).
- p. ...
- q. Repeat, while abs(_months_) ≥ abs(_oneYearMonths_),
- ...
- vi. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- vii. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"month"*).
- viii. Let _untilResult_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _newRelativeTo_, _untilOptions_, _dateUntil_).
- sec-temporal-balanceduration step 3.a:
- 3. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-differencezoneddatetime steps 7 and 11:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- 11. Let _result_ be ? NanosecondsToDays(_timeRemainderNs_, _intermediate_).
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Check with smallestUnit nanoseconds but roundingIncrement > 1; each call
-// should result in two calls to dateUntil() originating from
-// AdjustRoundedDurationDays, one with largestUnit equal to the largest unit in
-// the duration higher than "day", and one with largestUnit: "day".
-// Additionally one call with largestUnit: "month" in BalanceDurationRelative
-// when the largestUnit given to round() is "year", and one call with
-// largestUnit: "day" when the largestUnit given to round() is "year", "month",
-// "week", or "day".
-
-const durations = [
- [1, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 1, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 1, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 86399_999_999_999],
-].map((args) => new Temporal.Duration(...args));
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit, index) => {
- const duration = durations[index];
- const relativeTo = new Temporal.ZonedDateTime(0n, "UTC", calendar);
- duration.round({ largestUnit, roundingIncrement: 2, roundingMode: 'ceil', relativeTo });
- },
- {
- years: ["year", "day", "month", "day"],
- months: ["month", "day", "day"],
- weeks: ["week", "day", "day"],
- days: ["day", "day", "day"],
- hours: ["day", "day"],
- minutes: ["day", "day"],
- seconds: ["day", "day"],
- milliseconds: ["day", "day"],
- microseconds: ["day", "day"],
- nanoseconds: ["day", "day"]
- }
-);
-
-// Check the path that converts months to years and vice versa in
-// BalanceDurationRelative and UnbalanceDurationRelative.
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const duration = new Temporal.Duration(5, 60);
- const relativeTo = new Temporal.PlainDateTime(2000, 5, 2, 0, 0, 0, 0, 0, 0, calendar);
- duration.round({ largestUnit, relativeTo });
- },
- {
- years: ["month", "month", "month", "month", "month", "month"],
- months: ["month", "month", "month", "month", "month"],
- weeks: [],
- days: [],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Check the paths that call dateUntil() in RoundDuration. These paths do not
-// call dateUntil() in AdjustRoundedDurationDays. Note that there is no
-// largestUnit: "month" call in BalanceDurationRelative and no largestUnit:
-// "day" call in BalanceDuration, because the durations have rounded down to 0.
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const duration = new Temporal.Duration(0, 0, 0, 0, 1, 1, 1, 1, 1, 1);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
- duration.round({ largestUnit, smallestUnit: largestUnit, relativeTo });
- }, {
- years: ["day", "year"],
- months: ["day"],
- weeks: ["day"],
- days: ["day"]
- }
-);
diff --git a/polyfill/test/Duration/prototype/round/calendar-fields-iterable.js b/polyfill/test/Duration/prototype/round/calendar-fields-iterable.js
deleted file mode 100644
index 3703596d71..0000000000
--- a/polyfill/test/Duration/prototype/round/calendar-fields-iterable.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.duration.prototype.round step 19:
- 19. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
-duration.round({ smallestUnit: 'months', relativeTo: { year: 2000, month: 1, day: 1, calendar } });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Duration/prototype/round/calendar-temporal-object.js b/polyfill/test/Duration/prototype/round/calendar-temporal-object.js
deleted file mode 100644
index 01c36f73aa..0000000000
--- a/polyfill/test/Duration/prototype/round/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.duration.prototype.round step 19:
- 19. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
- duration.round({ smallestUnit: 'months', relativeTo: { year: 2000, month: 1, day: 1, calendar: temporalObject } });
-});
diff --git a/polyfill/test/Duration/prototype/round/dateuntil-field.js b/polyfill/test/Duration/prototype/round/dateuntil-field.js
deleted file mode 100644
index 05c73abff7..0000000000
--- a/polyfill/test/Duration/prototype/round/dateuntil-field.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- When consulting calendar.dateUntil() to calculate the number of months in a
- year, the months property is not accessed on the result Duration
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-// One path, through UnbalanceDurationRelative, calls dateUntil() in a loop for
-// each year in the duration
-
-const actual = [];
-const expected1 = [
- "call dateUntil",
- "call dateUntil",
-];
-const duration = new Temporal.Duration(0, 12);
-TemporalHelpers.observeProperty(actual, duration, "months", 1);
-
-const calendar = TemporalHelpers.calendarDateUntilObservable(actual, duration);
-const relativeTo = new Temporal.PlainDateTime(2018, 10, 12, 0, 0, 0, 0, 0, 0, calendar);
-
-const years = new Temporal.Duration(2);
-const result1 = years.round({ largestUnit: "months", relativeTo });
-TemporalHelpers.assertDuration(result1, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, "result");
-assert.compareArray(actual, expected1, "operations");
-
-// There is a second path, through BalanceDurationRelative, that calls
-// dateUntil() in a loop for each year in the duration plus one extra time
-
-actual.splice(0, actual.length); // reset calls for next test
-const expected2 = [
- "call dateUntil",
- "call dateUntil",
- "call dateUntil",
-];
-
-const months = new Temporal.Duration(0, 24);
-const result2 = months.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, "result");
-assert.compareArray(actual, expected2, "operations");
diff --git a/polyfill/test/Duration/prototype/round/largestunit-invalid-string.js b/polyfill/test/Duration/prototype/round/largestunit-invalid-string.js
deleted file mode 100644
index 9c5cacc1ae..0000000000
--- a/polyfill/test/Duration/prototype/round/largestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => duration.round({ largestUnit: "other string" }));
diff --git a/polyfill/test/Duration/prototype/round/largestunit-plurals-accepted.js b/polyfill/test/Duration/prototype/round/largestunit-plurals-accepted.js
deleted file mode 100644
index e0b884a5a6..0000000000
--- a/polyfill/test/Duration/prototype/round/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDate(2000, 1, 1);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => duration.round({ largestUnit, relativeTo }), validUnits);
diff --git a/polyfill/test/Duration/prototype/round/largestunit-undefined.js b/polyfill/test/Duration/prototype/round/largestunit-undefined.js
deleted file mode 100644
index 92dc48b611..0000000000
--- a/polyfill/test/Duration/prototype/round/largestunit-undefined.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(0, 0, 0, 0, 1, 120, 1, 123, 456, 789);
-const explicit1 = duration1.round({ largestUnit: undefined, smallestUnit: "nanosecond" });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 3, 0, 1, 123, 456, 789, "default largestUnit is largest in input");
-const implicit1 = duration1.round({ smallestUnit: "nanosecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 3, 0, 1, 123, 456, 789, "default largestUnit is largest in input");
-
-const duration2 = new Temporal.Duration(0, 0, 0, 0, 0, 120, 1, 123, 456, 789);
-const explicit2 = duration2.round({ largestUnit: undefined, smallestUnit: "nanosecond" });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 0, 120, 1, 123, 456, 789, "default largestUnit is largest in input");
-const implicit2 = duration2.round({ smallestUnit: "nanosecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 0, 120, 1, 123, 456, 789, "default largestUnit is largest in input");
diff --git a/polyfill/test/Duration/prototype/round/largestunit-wrong-type.js b/polyfill/test/Duration/prototype/round/largestunit-wrong-type.js
deleted file mode 100644
index 8e35abdc34..0000000000
--- a/polyfill/test/Duration/prototype/round/largestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 456, 789);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "minute",
- (largestUnit) => duration.round({ largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 754, 56, 123, 456, 789, descr),
-);
diff --git a/polyfill/test/Duration/prototype/round/length.js b/polyfill/test/Duration/prototype/round/length.js
deleted file mode 100644
index 42e7d557fe..0000000000
--- a/polyfill/test/Duration/prototype/round/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Temporal.Duration.prototype.round.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.round, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/round/name.js b/polyfill/test/Duration/prototype/round/name.js
deleted file mode 100644
index 1a41fb5ee0..0000000000
--- a/polyfill/test/Duration/prototype/round/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Temporal.Duration.prototype.round.name is "round".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.round, "name", {
- value: "round",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/round/not-a-constructor.js b/polyfill/test/Duration/prototype/round/not-a-constructor.js
deleted file mode 100644
index cc8e0ba813..0000000000
--- a/polyfill/test/Duration/prototype/round/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- Temporal.Duration.prototype.round does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.round();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.round), false,
- "isConstructor(Temporal.Duration.prototype.round)");
diff --git a/polyfill/test/Duration/prototype/round/prop-desc.js b/polyfill/test/Duration/prototype/round/prop-desc.js
deleted file mode 100644
index f360a589f6..0000000000
--- a/polyfill/test/Duration/prototype/round/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: The "round" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.round,
- "function",
- "`typeof Duration.prototype.round` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "round", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/round/read-time-fields-before-datefromfields.js b/polyfill/test/Duration/prototype/round/read-time-fields-before-datefromfields.js
deleted file mode 100644
index e5c67cb386..0000000000
--- a/polyfill/test/Duration/prototype/round/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.duration.prototype.round step 19:
- 19. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.g:
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInvalidGettersTime();
-const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
-duration.round({ smallestUnit: 'months', relativeTo: { year: 2000, month: 1, day: 1, calendar } });
diff --git a/polyfill/test/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index d411662a90..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.round
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.round({ smallestUnit: "seconds", relativeTo: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.round({ smallestUnit: "seconds", relativeTo: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index d9d531dd24..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(RangeError, () => duration.round({ smallestUnit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index fc22ce6112..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(RangeError, () => duration.round({ smallestUnit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0e5ba948ba..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(TypeError, () => duration.round({ smallestUnit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-string-datetime.js b/polyfill/test/Duration/prototype/round/relativeto-string-datetime.js
deleted file mode 100644
index cab748e668..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-string-datetime.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- Conversion of ISO date-time strings as relativeTo option to
- Temporal.ZonedDateTime or Temporal.PlainDateTime instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 0, 0, 0, 24);
-
-let relativeTo = "2019-11-01T00:00";
-const result1 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, "bare date-time string is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00Z";
-const result2 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result2, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, "date-time + Z is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00";
-const result3 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result3, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, "date-time + offset is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00[America/Vancouver]";
-const result4 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result4, 1, 0, 0, 0, 24, 0, 0, 0, 0, 0, "date-time + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00Z[America/Vancouver]";
-const result5 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result5, 1, 0, 0, 0, 24, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00[America/Vancouver]";
-const result6 = instance.round({ largestUnit: "years", relativeTo });
-TemporalHelpers.assertDuration(result6, 1, 0, 0, 0, 24, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00+04:15[America/Vancouver]";
-assert.throws(RangeError, () => instance.round({ largestUnit: "years", relativeTo }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/Duration/prototype/round/relativeto-string-invalid.js b/polyfill/test/Duration/prototype/round/relativeto-string-invalid.js
deleted file mode 100644
index 3b76b0fbc6..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-string-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown if relativeTo is a string with the wrong format
-features: [Temporal]
----*/
-
-['bad string', '15:30:45.123456', 'iso8601', 'UTC', 'P1YT1H'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- assert.throws(RangeError, () => duration.round({ largestUnit: "months", relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-string-plaindatetime.js b/polyfill/test/Duration/prototype/round/relativeto-string-plaindatetime.js
deleted file mode 100644
index 8b505cecb4..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-string-plaindatetime.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: The relativeTo option accepts a PlainDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-['2000-01-01', '2000-01-01T00:00', '2000-01-01T00:00[u-ca=iso8601]'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- const result = duration.round({ largestUnit: "months", relativeTo });
- TemporalHelpers.assertDuration(result, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-string-zoneddatetime.js b/polyfill/test/Duration/prototype/round/relativeto-string-zoneddatetime.js
deleted file mode 100644
index dffdd288af..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-string-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: The relativeTo option accepts a ZonedDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- '2000-01-01[UTC]',
- '2000-01-01T00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC][u-ca=iso8601]',
-].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- const result = duration.round({ largestUnit: "months", relativeTo });
- TemporalHelpers.assertDuration(result, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-undefined-throw-on-calendar-units.js b/polyfill/test/Duration/prototype/round/relativeto-undefined-throw-on-calendar-units.js
deleted file mode 100644
index fc4d613a7c..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-undefined-throw-on-calendar-units.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: >
- The relativeTo option is required when the Duration contains years, months,
- or weeks, and largestUnit is days; or largestUnit is weeks or months
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const oneYear = new Temporal.Duration(1);
-const oneMonth = new Temporal.Duration(0, 1);
-const oneWeek = new Temporal.Duration(0, 0, 1);
-const oneDay = new Temporal.Duration(0, 0, 0, 1);
-
-const options = { largestUnit: "days" };
-TemporalHelpers.assertDuration(oneDay.round(options), 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, "days do not require relativeTo");
-assert.throws(RangeError, () => oneWeek.round(options), "balancing weeks to days requires relativeTo");
-assert.throws(RangeError, () => oneMonth.round(options), "balancing months to days requires relativeTo");
-assert.throws(RangeError, () => oneYear.round(options), "balancing years to days requires relativeTo");
-
-["months", "weeks"].forEach((largestUnit) => {
- [oneDay, oneWeek, oneMonth, oneYear].forEach((duration) => {
- assert.throws(RangeError, () => duration.round({ largestUnit }), `balancing ${duration} to ${largestUnit} requires relativeTo`);
- });
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index d1f0b4f36e..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const relativeTo = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time; in this
-// case via relativeTo.
-
-const result = duration.round({ relativeTo, largestUnit: "days" });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 35e0abbba7..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.round({ smallestUnit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 9886aef06e..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.round({ smallestUnit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f6642348d3..0000000000
--- a/polyfill/test/Duration/prototype/round/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => duration.round({ smallestUnit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/round/round-negative-result.js b/polyfill/test/Duration/prototype/round/round-negative-result.js
deleted file mode 100644
index 4b5f28b6e3..0000000000
--- a/polyfill/test/Duration/prototype/round/round-negative-result.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]\: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-roundduration step 6:
- 6. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- sec-temporal.duration.prototype.round step 21:
- 21. Let _roundResult_ be ? RoundDuration(_unbalanceResult_.[[Years]], _unbalanceResult_.[[Months]], _unbalanceResult_.[[Weeks]], _unbalanceResult_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_[[Seconds]], _duration_[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, -60);
-const result = duration.round({ smallestUnit: "days" });
-TemporalHelpers.assertDuration(result, 0, 0, 0, -3, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/round/roundingincrement-nan.js b/polyfill/test/Duration/prototype/round/roundingincrement-nan.js
deleted file mode 100644
index c94f9fcf9b..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingincrement-nan.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.duration.prototype.round step 18:
- 18. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 4, 12, 34, 56, 987, 654, 321);
-assert.throws(RangeError, () => duration.round({ smallestUnit: 'second', roundingIncrement: NaN }));
diff --git a/polyfill/test/Duration/prototype/round/roundingincrement-undefined.js b/polyfill/test/Duration/prototype/round/roundingincrement-undefined.js
deleted file mode 100644
index 5fb20169a8..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingincrement-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.duration.prototype.round step 18:
- 18. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 4, 12, 34, 56, 987, 654, 321);
-
-const explicit = duration.round({ smallestUnit: 'second', roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 4, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
-
-const implicit = duration.round({ smallestUnit: 'second' });
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 4, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
diff --git a/polyfill/test/Duration/prototype/round/roundingincrement-wrong-type.js b/polyfill/test/Duration/prototype/round/roundingincrement-wrong-type.js
deleted file mode 100644
index 3f3e285ecb..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.round step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 4, 12, 34, 56, 987, 654, 321);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => duration.round({ smallestUnit: 'second', roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 12, 34, 57, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 12, 34, 56, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/Duration/prototype/round/roundingmode-invalid-string.js b/polyfill/test/Duration/prototype/round/roundingmode-invalid-string.js
deleted file mode 100644
index 35a9df2807..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => duration.round({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Duration/prototype/round/roundingmode-undefined.js b/polyfill/test/Duration/prototype/round/roundingmode-undefined.js
deleted file mode 100644
index 1acab9a42e..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingmode-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = duration.round({ smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-const implicit1 = duration.round({ smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-
-const explicit2 = duration.round({ smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-const implicit2 = duration.round({ smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-
-const explicit3 = duration.round({ smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
-const implicit3 = duration.round({ smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
diff --git a/polyfill/test/Duration/prototype/round/roundingmode-wrong-type.js b/polyfill/test/Duration/prototype/round/roundingmode-wrong-type.js
deleted file mode 100644
index e1305598e9..0000000000
--- a/polyfill/test/Duration/prototype/round/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "halfExpand",
- (roundingMode) => duration.round({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/Duration/prototype/round/smallestunit-invalid-string.js b/polyfill/test/Duration/prototype/round/smallestunit-invalid-string.js
deleted file mode 100644
index 3d5d884b52..0000000000
--- a/polyfill/test/Duration/prototype/round/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => duration.round({ smallestUnit: "other string" }));
diff --git a/polyfill/test/Duration/prototype/round/smallestunit-plurals-accepted.js b/polyfill/test/Duration/prototype/round/smallestunit-plurals-accepted.js
deleted file mode 100644
index eee32e8faa..0000000000
--- a/polyfill/test/Duration/prototype/round/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDate(2000, 1, 1);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => duration.round({ smallestUnit, relativeTo }), validUnits);
diff --git a/polyfill/test/Duration/prototype/round/smallestunit-undefined.js b/polyfill/test/Duration/prototype/round/smallestunit-undefined.js
deleted file mode 100644
index 7a25f7c1b0..0000000000
--- a/polyfill/test/Duration/prototype/round/smallestunit-undefined.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 1, 2, 3, 123, 456, 789);
-const explicit1 = duration.round({ largestUnit: "day", smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 1, 2, 3, 123, 456, 789, "default smallestUnit is nanosecond");
-const implicit1 = duration.round({ largestUnit: "day" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 1, 2, 3, 123, 456, 789, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/Duration/prototype/round/smallestunit-wrong-type.js b/polyfill/test/Duration/prototype/round/smallestunit-wrong-type.js
deleted file mode 100644
index c177013a88..0000000000
--- a/polyfill/test/Duration/prototype/round/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => duration.round({ smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/Duration/prototype/round/subclassing-ignored.js b/polyfill/test/Duration/prototype/round/subclassing-ignored.js
deleted file mode 100644
index 163178afb5..0000000000
--- a/polyfill/test/Duration/prototype/round/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, 4, 5, 6, 7, 987, 654, 321],
- "round",
- [{ smallestUnit: 'seconds' }],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 5, 6, 8, 0, 0, 0),
-);
diff --git a/polyfill/test/Duration/prototype/round/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/Duration/prototype/round/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index a67eb7e60a..0000000000
--- a/polyfill/test/Duration/prototype/round/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.duration.prototype.round steps 19, 21, and 24:
- 19. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- 21. Let _roundResult_ be ? RoundDuration(_unbalanceResult_.[[Years]], [...], _unbalanceResult_.[[Days]], _duration_.[[Hours]], [...], _duration_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _relativeTo_).
- 24. If _relativeTo_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Set _relativeTo_ to ? MoveRelativeZonedDateTime(_relativeTo_, _balanceResult_.[[Years]], _balanceResult_.[[Months]], _balanceResult_.[[Weeks]], 0).
- sec-temporal-torelativetemporalobject step 6.d:
- d. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNs_, _timeZone_, *"compatible"*, *"reject"*).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-roundduration step 5.c–d:
- c. If _zonedRelativeTo_ is not *undefined*, then
- i. Let _intermediate_ be ? MoveRelativeZonedDateTime(_zonedRelativeTo_, _years_, _months_, _weeks_, _days_).
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- sec-temporal-moverelativezoneddatetime step 1:
- 1. Let _intermediateNs_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _zonedDateTime_.[[TimeZone]], _zonedDateTime_.[[Calendar]], _years_, _months_, _weeks_, _days_, 0, 0, 0, 0, 0, 0).
- sec-temporal-nanosecondstodays step 13:
- 13. Let _intermediateNs_ be ? AddZonedDateTime(_startNs_, _relativeTo_.[[TimeZone]], _relativeTo_.[[Calendar]], 0, 0, 0, _days_, 0, 0, 0, 0, 0, 0).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-01-01T00:00:00", // called once on the input relativeTo object
- "2001-02-09T00:00:00", // called once on relativeTo plus years, months, weeks, days from the receiver
- "2001-02-10T00:00:00", // called once on the previous value plus the calendar days difference between that and the time part of the duration
- "2001-02-01T00:00:00", // called once on relativeTo plus the years, months, and weeks part of the balance result
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
- duration.round({ smallestUnit: 'months', relativeTo: { year: 2000, month: 1, day: 1, timeZone } });
-}, expected);
diff --git a/polyfill/test/Duration/prototype/round/timezone-string-datetime.js b/polyfill/test/Duration/prototype/round/timezone-string-datetime.js
deleted file mode 100644
index 27058b8c7c..0000000000
--- a/polyfill/test/Duration/prototype/round/timezone-string-datetime.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.round
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.round({ largestUnit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone } }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.round({ largestUnit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- instance.round({ largestUnit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone } });
- instance.round({ largestUnit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } });
-});
diff --git a/polyfill/test/Duration/prototype/seconds/branding.js b/polyfill/test/Duration/prototype/seconds/branding.js
deleted file mode 100644
index 4cd3ba7827..0000000000
--- a/polyfill/test/Duration/prototype/seconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.seconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const seconds = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "seconds").get;
-
-assert.sameValue(typeof seconds, "function");
-
-assert.throws(TypeError, () => seconds.call(undefined), "undefined");
-assert.throws(TypeError, () => seconds.call(null), "null");
-assert.throws(TypeError, () => seconds.call(true), "true");
-assert.throws(TypeError, () => seconds.call(""), "empty string");
-assert.throws(TypeError, () => seconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => seconds.call(1), "1");
-assert.throws(TypeError, () => seconds.call({}), "plain object");
-assert.throws(TypeError, () => seconds.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => seconds.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/seconds/prop-desc.js b/polyfill/test/Duration/prototype/seconds/prop-desc.js
deleted file mode 100644
index ea7f03b9bb..0000000000
--- a/polyfill/test/Duration/prototype/seconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.seconds
-description: The "seconds" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "seconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/sign/branding.js b/polyfill/test/Duration/prototype/sign/branding.js
deleted file mode 100644
index 9da05c7779..0000000000
--- a/polyfill/test/Duration/prototype/sign/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.sign
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const sign = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "sign").get;
-
-assert.sameValue(typeof sign, "function");
-
-assert.throws(TypeError, () => sign.call(undefined), "undefined");
-assert.throws(TypeError, () => sign.call(null), "null");
-assert.throws(TypeError, () => sign.call(true), "true");
-assert.throws(TypeError, () => sign.call(""), "empty string");
-assert.throws(TypeError, () => sign.call(Symbol()), "symbol");
-assert.throws(TypeError, () => sign.call(1), "1");
-assert.throws(TypeError, () => sign.call({}), "plain object");
-assert.throws(TypeError, () => sign.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => sign.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/sign/prop-desc.js b/polyfill/test/Duration/prototype/sign/prop-desc.js
deleted file mode 100644
index 0f72c33ff7..0000000000
--- a/polyfill/test/Duration/prototype/sign/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.sign
-description: The "sign" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "sign");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/Duration/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 3c940f26d3..0000000000
--- a/polyfill/test/Duration/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration();
-
-const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertDuration(resultHours, 0, 0, 0, 0, 24, 34, 4, 404, 442, 799, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertDuration(resultMinutes, 0, 0, 0, 0, 0, 1440, 34, 73, 407, 379, "negative fractional minutes");
diff --git a/polyfill/test/Duration/prototype/subtract/balance-negative-result.js b/polyfill/test/Duration/prototype/subtract/balance-negative-result.js
deleted file mode 100644
index 3f39355132..0000000000
--- a/polyfill/test/Duration/prototype/subtract/balance-negative-result.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-addduration steps 5–6:
- 5. If _relativeTo_ is *undefined*, then
- ...
- b. Let _result_ be ! BalanceDuration(_d1_ + _d2_, _h1_ + _h2_, _min1_ + _min2_, _s1_ + _s2_, _ms1_ + _ms2_, _mus1_ + _mus2_, _ns1_ + _ns2_, _largestUnit_).
- ...
- 6. Else if _relativeTo_ has an [[InitializedTemporalPlainDateTime]] internal slot, then
- ...
- n. Let _result_ be ! BalanceDuration(_dateDifference_.[[Days]], _h1_ + _h2_, _min1_ + _min2_, _s1_ + _s2_, _ms1_ + _ms2_, _mus1_ + _mus2_, _ns1_ + _ns2_, _largestUnit_).
- sec-temporal.duration.prototype.subtract step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], −_other_.[[Years]], −_other_.[[Months]], −_other_.[[Weeks]], −_other_.[[Days]], −_other_.[[Hours]], −_other_.[[Minutes]], −_other_.[[Seconds]], −_other_.[[Milliseconds]], −_other_.[[Microseconds]], −_other_.[[Nanoseconds]], _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(0, 0, 0, 0, -60);
-const duration2 = new Temporal.Duration(0, 0, 0, -1);
-
-const resultNotRelative = duration1.subtract(duration2);
-TemporalHelpers.assertDuration(resultNotRelative, 0, 0, 0, -1, -12, 0, 0, 0, 0, 0);
-
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-const resultRelative = duration1.subtract(duration2, { relativeTo });
-TemporalHelpers.assertDuration(resultRelative, 0, 0, 0, -1, -12, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/subtract/balance-negative-time-units.js b/polyfill/test/Duration/prototype/subtract/balance-negative-time-units.js
deleted file mode 100644
index 81a022ec9e..0000000000
--- a/polyfill/test/Duration/prototype/subtract/balance-negative-time-units.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Negative time fields in relativeTo are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal-differencezoneddatetime step 7:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- sec-temporal-addduration step 7.g.i:
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal.duration.prototype.subtract step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], −_other_.[[Years]], −_other_.[[Months]], −_other_.[[Weeks]], −_other_.[[Days]], −_other_.[[Hours]], −_other_.[[Minutes]], −_other_.[[Seconds]], −_other_.[[Milliseconds]], −_other_.[[Microseconds]], −_other_.[[Nanoseconds]], _relativeTo_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 1, 1, 1, 1, 1, 1);
-
-const timeZone = new Temporal.TimeZone("UTC");
-const relativeTo = new Temporal.ZonedDateTime(830998861_000_000_000n, timeZone);
-// This code path is encountered if largestUnit is years, months, weeks, or days
-// and relativeTo is a ZonedDateTime
-const options = { largestUnit: "days", relativeTo };
-
-const result1 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = duration.subtract(new Temporal.Duration(0, 0, 0, 0, 2), options);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/Duration/prototype/subtract/branding.js b/polyfill/test/Duration/prototype/subtract/branding.js
deleted file mode 100644
index e9264d8e6f..0000000000
--- a/polyfill/test/Duration/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.Duration.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => subtract.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/subtract/builtin.js b/polyfill/test/Duration/prototype/subtract/builtin.js
deleted file mode 100644
index 8f1811c820..0000000000
--- a/polyfill/test/Duration/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: >
- Tests that Temporal.Duration.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/subtract/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/Duration/prototype/subtract/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 52d2e40a11..0000000000
--- a/polyfill/test/Duration/prototype/subtract/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.Duration(1, 1, 1, 1);
-instance.subtract(new Temporal.Duration(-1, -1, -1, -1), { relativeTo: new Temporal.ZonedDateTime(0n, timeZone, calendar) });
-assert.sameValue(calendar.dateAddCallCount, 5);
diff --git a/polyfill/test/Duration/prototype/subtract/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/Duration/prototype/subtract/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index ef5fbbfedb..0000000000
--- a/polyfill/test/Duration/prototype/subtract/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,78 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.duration.prototype.subtract step 6:
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], −_other_.[[Years]], −_other_.[[Months]], −_other_.[[Weeks]], −_other_.[[Days]], −_other_.[[Hours]], −_other_.[[Minutes]], −_other_.[[Seconds]], −_other_.[[Milliseconds]], −_other_.[[Microseconds]], −_other_.[[Nanoseconds]], _relativeTo_).
- sec-temporal-addduration steps 6-7:
- 6. If _relativeTo_ has an [[InitializedTemporalPlainDateTime]] internal slot, then
- ...
- j. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- k. Let _differenceOptions_ be ! OrdinaryObjectCreate(*null*).
- l. Perform ! CreateDataPropertyOrThrow(_differenceOptions_, *"largestUnit"*, _dateLargestUnit_).
- m. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _datePart_, _end_, _differenceOptions_).
- ...
- 7. Else,
- a. Assert: _relativeTo_ has an [[IntializedTemporalZonedDateTime]] internal slot.
- ...
- f. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- g. Else,
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-differencezoneddatetime steps 7 and 11:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- 11. Let _result_ be ? NanosecondsToDays(_timeRemainderNs_, _intermediate_).
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit, index) => {
- const one = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(1)]);
- const two = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(2)]);
- const relativeTo = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- two.subtract(one, { relativeTo });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"],
- hours: ["day"],
- minutes: ["day"],
- seconds: ["day"],
- milliseconds: ["day"],
- microseconds: ["day"],
- nanoseconds: ["day"]
- }
-);
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit, index) => {
- const one = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(1)]);
- const two = new Temporal.Duration(...[...Array(index).fill(0), ...Array(10 - index).fill(2)]);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- two.subtract(one, { relativeTo });
- },
- {
- years: ["year", "day"],
- months: ["month", "day"],
- weeks: ["week", "day"],
- days: ["day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
diff --git a/polyfill/test/Duration/prototype/subtract/calendar-fields-iterable.js b/polyfill/test/Duration/prototype/subtract/calendar-fields-iterable.js
deleted file mode 100644
index b9d887416f..0000000000
--- a/polyfill/test/Duration/prototype/subtract/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.duration.prototype.subtract step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-duration1.subtract(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Duration/prototype/subtract/calendar-temporal-object.js b/polyfill/test/Duration/prototype/subtract/calendar-temporal-object.js
deleted file mode 100644
index c870c1690f..0000000000
--- a/polyfill/test/Duration/prototype/subtract/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.duration.prototype.subtract step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 12);
- duration1.subtract(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar: temporalObject } });
-});
diff --git a/polyfill/test/Duration/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index e02d93c5ad..0000000000
--- a/polyfill/test/Duration/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.duration.prototype.subtract
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }, { relativeTo }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { relativeTo }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/subtract/length.js b/polyfill/test/Duration/prototype/subtract/length.js
deleted file mode 100644
index e72d793524..0000000000
--- a/polyfill/test/Duration/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Temporal.Duration.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/subtract/name.js b/polyfill/test/Duration/prototype/subtract/name.js
deleted file mode 100644
index 4e33d0f79c..0000000000
--- a/polyfill/test/Duration/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Temporal.Duration.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index f798ed52a2..0000000000
--- a/polyfill/test/Duration/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.duration.prototype.subtract
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }, { relativeTo }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { relativeTo }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/Duration/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 17092e1ee8..0000000000
--- a/polyfill/test/Duration/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/not-a-constructor.js b/polyfill/test/Duration/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 03e6e0dfc7..0000000000
--- a/polyfill/test/Duration/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: >
- Temporal.Duration.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.subtract), false,
- "isConstructor(Temporal.Duration.prototype.subtract)");
diff --git a/polyfill/test/Duration/prototype/subtract/options-undefined.js b/polyfill/test/Duration/prototype/subtract/options-undefined.js
deleted file mode 100644
index 959fb77c61..0000000000
--- a/polyfill/test/Duration/prototype/subtract/options-undefined.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-assert.throws(RangeError, () => duration1.subtract(duration2), "default relativeTo is undefined");
-assert.throws(RangeError, () => duration1.subtract(duration2, undefined), "default relativeTo is undefined");
diff --git a/polyfill/test/Duration/prototype/subtract/order-of-operations.js b/polyfill/test/Duration/prototype/subtract/order-of-operations.js
deleted file mode 100644
index 6f70b5b060..0000000000
--- a/polyfill/test/Duration/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 1, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDateTime(2000, 1, 1);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument, { relativeTo });
-TemporalHelpers.assertDuration(result, 0, 1, 0, 3, 4, 5, 6, 986, 653, 320);
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Duration/prototype/subtract/prop-desc.js b/polyfill/test/Duration/prototype/subtract/prop-desc.js
deleted file mode 100644
index d2d2f3924b..0000000000
--- a/polyfill/test/Duration/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: The "subtract" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.subtract,
- "function",
- "`typeof Duration.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/subtract/read-time-fields-before-datefromfields.js b/polyfill/test/Duration/prototype/subtract/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 05efdc7fdd..0000000000
--- a/polyfill/test/Duration/prototype/subtract/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.duration.prototype.subtract step 5:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.g:
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInvalidGettersTime();
-const duration1 = new Temporal.Duration(1);
-const duration2 = new Temporal.Duration(0, 12);
-duration1.subtract(duration2, { relativeTo: { year: 2000, month: 1, day: 1, calendar } });
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index 4461f31f2a..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.subtract
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.subtract(instance, { relativeTo: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.subtract(instance, { relativeTo: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 1dc97f3ac1..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- assert.throws(RangeError, () => duration.subtract(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 7fded3d366..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- assert.throws(RangeError, () => duration.subtract(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 46558f50d4..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- assert.throws(TypeError, () => duration.subtract(other, { relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-string-datetime.js b/polyfill/test/Duration/prototype/subtract/relativeto-string-datetime.js
deleted file mode 100644
index 8090505b6a..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-string-datetime.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: >
- Conversion of ISO date-time strings as relativeTo option to
- Temporal.ZonedDateTime or Temporal.PlainDateTime instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 0, 0, 1);
-
-let relativeTo = "2019-11-01T00:00";
-const result1 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bare date-time string is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00Z";
-const result2 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00";
-const result3 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + offset is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00[America/Vancouver]";
-const result4 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00Z[America/Vancouver]";
-const result5 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result5, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00[America/Vancouver]";
-const result6 = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo });
-TemporalHelpers.assertDuration(result6, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00+04:15[America/Vancouver]";
-assert.throws(RangeError, () => instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-string-invalid.js b/polyfill/test/Duration/prototype/subtract/relativeto-string-invalid.js
deleted file mode 100644
index 5bf459366c..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-string-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: RangeError thrown if relativeTo is a string with the wrong format
-features: [Temporal]
----*/
-
-['bad string', '15:30:45.123456', 'iso8601', 'UTC', 'P1YT1H'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 41);
- assert.throws(RangeError, () => duration.subtract(new Temporal.Duration(0, 0, 0, 10), { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-string-plaindatetime.js b/polyfill/test/Duration/prototype/subtract/relativeto-string-plaindatetime.js
deleted file mode 100644
index 4fe06e34ec..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-string-plaindatetime.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: The relativeTo option accepts a PlainDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-['2000-01-01', '2000-01-01T00:00', '2000-01-01T00:00[u-ca=iso8601]'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 41);
- const result = duration.subtract(new Temporal.Duration(0, 0, 0, 10), { relativeTo });
- TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-string-zoneddatetime.js b/polyfill/test/Duration/prototype/subtract/relativeto-string-zoneddatetime.js
deleted file mode 100644
index db33ebf528..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-string-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: The relativeTo option accepts a ZonedDateTime-like ISO 8601 string
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- '2000-01-01[UTC]',
- '2000-01-01T00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC][u-ca=iso8601]',
-].forEach((relativeTo) => {
- const duration = new Temporal.Duration(1, 0, 0, 41);
- const result = duration.subtract(new Temporal.Duration(0, 0, 0, 10), { relativeTo });
- TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0);
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index d607013e3e..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const relativeTo = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time; in this
-// case via relativeTo.
-
-const result = duration.subtract(duration, { relativeTo });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index b7eda21c40..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.subtract(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 03b9dbffc6..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.subtract(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 1e8b18f509..0000000000
--- a/polyfill/test/Duration/prototype/subtract/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const other = new Temporal.Duration(0, 3);
- const relativeTo = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => duration.subtract(other, { relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/subtract/subclassing-ignored.js b/polyfill/test/Duration/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 622f7f8c6f..0000000000
--- a/polyfill/test/Duration/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, 4, 5, 6, 7, 987, 654, 321],
- "subtract",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 5, 6, 7, 987, 654, 320),
-);
diff --git a/polyfill/test/Duration/prototype/subtract/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/Duration/prototype/subtract/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 1ed510486c..0000000000
--- a/polyfill/test/Duration/prototype/subtract/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.duration.prototype.subtract steps 5–6:
- 5. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- 6. Let _result_ be ? AddDuration(_duration_.[[Years]], [...], _duration_.[[Nanoseconds]], −_other_.[[Years]], [...], −_other_.[[Nanoseconds]], _relativeTo_).
- sec-temporal-torelativetemporalobject step 6.d:
- d. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNs_, _timeZone_, *"compatible"*, *"reject"*).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-addduration steps 7.d–e and 7.g.i:
- d. Let _intermediateNs_ be ? AddZonedDateTime(_relativeTo_.[[Nanoseconds]], _timeZone_, _calendar_, _y1_, [...], _ns1_).
- e. Let _endNs_ be ? AddZonedDateTime(_intermediateNs_, _timeZone_, _calendar_, _y2_, [...], _ns2_).
- [...]
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-differencezoneddatetime step 8:
- 8. Let _intermediateNs_ be ? AddZonedDateTime(_ns1_, _timeZone_, _calendar_, _dateDifference_.[[Years]], _dateDifference_.[[Months]], _dateDifference_.[[Weeks]], 0, 0, 0, 0, 0, 0, 0).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-01-01T09:00:00", // called once on the input relativeTo object
- "2001-01-01T09:00:00", // called once on relativeTo plus the receiver
- "1999-12-01T09:00:00", // called once on relativeTo plus the receiver minus the argument
- "1999-12-01T09:00:00", // called once on relativeTo plus the years, months, and weeks from the difference of relativeTo minus endNs
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const duration1 = new Temporal.Duration(1);
- const duration2 = new Temporal.Duration(0, 13);
- duration1.subtract(duration2, { relativeTo: { year: 2000, month: 1, day: 1, hour: 9, timeZone } });
-}, expected);
diff --git a/polyfill/test/Duration/prototype/subtract/timezone-string-datetime.js b/polyfill/test/Duration/prototype/subtract/timezone-string-datetime.js
deleted file mode 100644
index beeb55cf5a..0000000000
--- a/polyfill/test/Duration/prototype/subtract/timezone-string-datetime.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.subtract
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.subtract(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.subtract(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- instance.subtract(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone } });
- instance.subtract(new Temporal.Duration(1), { relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } });
-});
diff --git a/polyfill/test/Duration/prototype/toJSON/branding.js b/polyfill/test/Duration/prototype/toJSON/branding.js
deleted file mode 100644
index e44c1d5380..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.Duration.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => toJSON.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/toJSON/builtin.js b/polyfill/test/Duration/prototype/toJSON/builtin.js
deleted file mode 100644
index ae71e23797..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: >
- Tests that Temporal.Duration.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/toJSON/length.js b/polyfill/test/Duration/prototype/toJSON/length.js
deleted file mode 100644
index e844f034e8..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: Temporal.Duration.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toJSON/name.js b/polyfill/test/Duration/prototype/toJSON/name.js
deleted file mode 100644
index 1d4e2135fa..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: Temporal.Duration.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toJSON/not-a-constructor.js b/polyfill/test/Duration/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 0211d962ab..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: >
- Temporal.Duration.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.toJSON), false,
- "isConstructor(Temporal.Duration.prototype.toJSON)");
diff --git a/polyfill/test/Duration/prototype/toJSON/prop-desc.js b/polyfill/test/Duration/prototype/toJSON/prop-desc.js
deleted file mode 100644
index 83ffd8eb65..0000000000
--- a/polyfill/test/Duration/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tojson
-description: The "toJSON" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.toJSON,
- "function",
- "`typeof Duration.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toLocaleString/branding.js b/polyfill/test/Duration/prototype/toLocaleString/branding.js
deleted file mode 100644
index 5bc550e8e3..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.Duration.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/toLocaleString/builtin.js b/polyfill/test/Duration/prototype/toLocaleString/builtin.js
deleted file mode 100644
index f46d5d66d6..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: >
- Tests that Temporal.Duration.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/toLocaleString/length.js b/polyfill/test/Duration/prototype/toLocaleString/length.js
deleted file mode 100644
index ea1a8916ae..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: Temporal.Duration.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toLocaleString/name.js b/polyfill/test/Duration/prototype/toLocaleString/name.js
deleted file mode 100644
index aa34057dcd..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: Temporal.Duration.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/Duration/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index f7ec110400..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: >
- Temporal.Duration.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.toLocaleString), false,
- "isConstructor(Temporal.Duration.prototype.toLocaleString)");
diff --git a/polyfill/test/Duration/prototype/toLocaleString/prop-desc.js b/polyfill/test/Duration/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index b253706e0e..0000000000
--- a/polyfill/test/Duration/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.toLocaleString,
- "function",
- "`typeof Duration.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toString/blank-duration-precision.js b/polyfill/test/Duration/prototype/toString/blank-duration-precision.js
deleted file mode 100644
index ffd6179d11..0000000000
--- a/polyfill/test/Duration/prototype/toString/blank-duration-precision.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: >
- Precision is handled correctly for blank durations, whether specified by
- fractionalSecondDigits or smallestUnit
-features: [Temporal]
----*/
-
-const blank = new Temporal.Duration();
-
-assert.sameValue(blank.toString({ fractionalSecondDigits: "auto" }), "PT0S");
-assert.sameValue(blank.toString({ fractionalSecondDigits: 0 }), "PT0S");
-assert.sameValue(blank.toString({ fractionalSecondDigits: 2 }), "PT0.00S");
-assert.sameValue(blank.toString({ fractionalSecondDigits: 9 }), "PT0.000000000S");
-
-assert.sameValue(blank.toString({ smallestUnit: "seconds" }), "PT0S");
-assert.sameValue(blank.toString({ smallestUnit: "milliseconds" }), "PT0.000S");
-assert.sameValue(blank.toString({ smallestUnit: "microseconds" }), "PT0.000000S");
-assert.sameValue(blank.toString({ smallestUnit: "nanoseconds" }), "PT0.000000000S");
diff --git a/polyfill/test/Duration/prototype/toString/branding.js b/polyfill/test/Duration/prototype/toString/branding.js
deleted file mode 100644
index 3bd82646b2..0000000000
--- a/polyfill/test/Duration/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.Duration.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => toString.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/toString/builtin.js b/polyfill/test/Duration/prototype/toString/builtin.js
deleted file mode 100644
index 37c7252fd3..0000000000
--- a/polyfill/test/Duration/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: >
- Tests that Temporal.Duration.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-invalid-string.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-invalid-string.js
deleted file mode 100644
index 1cb51f820e..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option not one of the allowed string values
-info: |
- sec-getstringornumberoption step 4:
- 4. If _stringValues_ is not *undefined* and _stringValues_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-
-assert.throws(RangeError, () => duration.toString({ fractionalSecondDigits: "other string" }));
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-nan.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-nan.js
deleted file mode 100644
index 4229086553..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-assert.throws(RangeError, () => duration.toString({ fractionalSecondDigits: NaN }));
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-non-integer.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-non-integer.js
deleted file mode 100644
index 86d15aa2e8..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-non-integer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Rounding for fractionalSecondDigits option
-info: |
- sec-getstringornumberoption step 3.b:
- b. Return floor(ℝ(_value_)).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-
-const string = duration.toString({ fractionalSecondDigits: 2.5 });
-assert.sameValue(string, "P1Y2M3W4DT5H6M7.98S", "fractionalSecondDigits 2.5 floors to 2");
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-out-of-range.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-out-of-range.js
deleted file mode 100644
index d9f4837d3c..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-out-of-range.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option out of range
-info: |
- sec-getstringornumberoption step 3.a:
- a. If _value_ < _minimum_ or _value_ > _maximum_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-
-assert.throws(RangeError, () => duration.toString({ fractionalSecondDigits: -1 }));
-assert.throws(RangeError, () => duration.toString({ fractionalSecondDigits: 10 }));
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-undefined.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-undefined.js
deleted file mode 100644
index 2c3af23ae9..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Fallback value for fractionalSecondDigits option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-
-const explicit = duration.toString({ fractionalSecondDigits: undefined });
-assert.sameValue(explicit, "P1Y2M3W4DT5H6M7.98765S", "default fractionalSecondDigits is auto");
-
-const implicit = duration.toString({});
-assert.sameValue(implicit, "P1Y2M3W4DT5H6M7.98765S", "default fractionalSecondDigits is auto");
diff --git a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-wrong-type.js b/polyfill/test/Duration/prototype/toString/fractionalseconddigits-wrong-type.js
deleted file mode 100644
index 143de7c344..0000000000
--- a/polyfill/test/Duration/prototype/toString/fractionalseconddigits-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Type conversions for fractionalSecondDigits option
-info: |
- sec-getoption steps 8–9:
- 8. Else if _type_ is Number, then
- a. Set _value_ to ? ToNumber(value).
- b. ...
- 9. Else,
- a. Set _value_ to ? ToString(value).
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.duration.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-TemporalHelpers.checkFractionalSecondDigitsOptionWrongType(duration);
diff --git a/polyfill/test/Duration/prototype/toString/length.js b/polyfill/test/Duration/prototype/toString/length.js
deleted file mode 100644
index 1455cf20b6..0000000000
--- a/polyfill/test/Duration/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Temporal.Duration.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toString/name.js b/polyfill/test/Duration/prototype/toString/name.js
deleted file mode 100644
index 65d4c2d28a..0000000000
--- a/polyfill/test/Duration/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Temporal.Duration.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toString/not-a-constructor.js b/polyfill/test/Duration/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 60e7e37867..0000000000
--- a/polyfill/test/Duration/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: >
- Temporal.Duration.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.toString), false,
- "isConstructor(Temporal.Duration.prototype.toString)");
diff --git a/polyfill/test/Duration/prototype/toString/options-undefined.js b/polyfill/test/Duration/prototype/toString/options-undefined.js
deleted file mode 100644
index c0d7bbfc7f..0000000000
--- a/polyfill/test/Duration/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 650, 0);
-
-const explicit = duration.toString(undefined);
-assert.sameValue(explicit, "P1Y2M3W4DT5H6M7.98765S", "default precision is auto, and rounding is trunc");
-
-const implicit = duration.toString();
-assert.sameValue(implicit, "P1Y2M3W4DT5H6M7.98765S", "default precision is auto, and rounding is trunc");
diff --git a/polyfill/test/Duration/prototype/toString/precision.js b/polyfill/test/Duration/prototype/toString/precision.js
deleted file mode 100644
index 05d79915b4..0000000000
--- a/polyfill/test/Duration/prototype/toString/precision.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: toString() produces a fractional part of the correct length
-features: [Temporal]
----*/
-
-const { Duration } = Temporal;
-
-const durationString = 'PT0.084000159S';
-const duration = Duration.from(durationString);
-const precisionString = duration.toString({
- smallestUnit: 'milliseconds'
-});
-
-assert.sameValue(durationString, duration.toString());
-assert.sameValue(precisionString, "PT0.084S");
diff --git a/polyfill/test/Duration/prototype/toString/prop-desc.js b/polyfill/test/Duration/prototype/toString/prop-desc.js
deleted file mode 100644
index 7d5d7391a9..0000000000
--- a/polyfill/test/Duration/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: The "toString" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.toString,
- "function",
- "`typeof Duration.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/toString/roundingmode-invalid-string.js b/polyfill/test/Duration/prototype/toString/roundingmode-invalid-string.js
deleted file mode 100644
index 983b9a25b6..0000000000
--- a/polyfill/test/Duration/prototype/toString/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => duration.toString({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Duration/prototype/toString/roundingmode-undefined.js b/polyfill/test/Duration/prototype/toString/roundingmode-undefined.js
deleted file mode 100644
index ea7bcdfe7b..0000000000
--- a/polyfill/test/Duration/prototype/toString/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = duration.toString({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1, "PT12H34M56.123987S", "default roundingMode is trunc");
-const implicit1 = duration.toString({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1, "PT12H34M56.123987S", "default roundingMode is trunc");
-
-const explicit2 = duration.toString({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2, "PT12H34M56.123S", "default roundingMode is trunc");
-const implicit2 = duration.toString({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2, "PT12H34M56.123S", "default roundingMode is trunc");
-
-const explicit3 = duration.toString({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3, "PT12H34M56S", "default roundingMode is trunc");
-const implicit3 = duration.toString({ smallestUnit: "second" });
-assert.sameValue(implicit3, "PT12H34M56S", "default roundingMode is trunc");
diff --git a/polyfill/test/Duration/prototype/toString/roundingmode-wrong-type.js b/polyfill/test/Duration/prototype/toString/roundingmode-wrong-type.js
deleted file mode 100644
index 64ad7c4966..0000000000
--- a/polyfill/test/Duration/prototype/toString/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => duration.toString({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result, "PT12H34M56.123987S", descr),
-);
diff --git a/polyfill/test/Duration/prototype/toString/smallestunit-invalid-string.js b/polyfill/test/Duration/prototype/toString/smallestunit-invalid-string.js
deleted file mode 100644
index b41620c1f4..0000000000
--- a/polyfill/test/Duration/prototype/toString/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => duration.toString({ smallestUnit: "other string" }));
diff --git a/polyfill/test/Duration/prototype/toString/smallestunit-plurals-accepted.js b/polyfill/test/Duration/prototype/toString/smallestunit-plurals-accepted.js
deleted file mode 100644
index 5c2fc343d3..0000000000
--- a/polyfill/test/Duration/prototype/toString/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const validUnits = [
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => duration.toString({ smallestUnit }), validUnits);
diff --git a/polyfill/test/Duration/prototype/toString/smallestunit-undefined.js b/polyfill/test/Duration/prototype/toString/smallestunit-undefined.js
deleted file mode 100644
index e5db027863..0000000000
--- a/polyfill/test/Duration/prototype/toString/smallestunit-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Fallback value for smallestUnit option
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = duration.toString({ smallestUnit: undefined, fractionalSecondDigits: 6 });
-assert.sameValue(explicit1, "PT12H34M56.123987S", "default smallestUnit defers to fractionalSecondDigits");
-const implicit1 = duration.toString({ fractionalSecondDigits: 6 });
-assert.sameValue(implicit1, "PT12H34M56.123987S", "default smallestUnit defers to fractionalSecondDigits");
-
-const explicit2 = duration.toString({ smallestUnit: undefined, fractionalSecondDigits: 3 });
-assert.sameValue(explicit2, "PT12H34M56.123S", "default smallestUnit defers to fractionalSecondDigits");
-const implicit2 = duration.toString({ fractionalSecondDigits: 3 });
-assert.sameValue(implicit2, "PT12H34M56.123S", "default smallestUnit defers to fractionalSecondDigits");
diff --git a/polyfill/test/Duration/prototype/toString/smallestunit-valid-units.js b/polyfill/test/Duration/prototype/toString/smallestunit-valid-units.js
deleted file mode 100644
index fce836b31b..0000000000
--- a/polyfill/test/Duration/prototype/toString/smallestunit-valid-units.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Valid units for the smallestUnit option
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-
-assert.sameValue(duration.toString({ smallestUnit: "second" }), "P1Y2M3W4DT5H6M7S");
-assert.sameValue(duration.toString({ smallestUnit: "millisecond" }), "P1Y2M3W4DT5H6M7.987S");
-assert.sameValue(duration.toString({ smallestUnit: "microsecond" }), "P1Y2M3W4DT5H6M7.987654S");
-assert.sameValue(duration.toString({ smallestUnit: "nanosecond" }), "P1Y2M3W4DT5H6M7.987654321S");
-
-const notValid = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
-];
-
-notValid.forEach((smallestUnit) => {
- assert.throws(RangeError, () => duration.toString({ smallestUnit }), smallestUnit);
-});
diff --git a/polyfill/test/Duration/prototype/toString/smallestunit-wrong-type.js b/polyfill/test/Duration/prototype/toString/smallestunit-wrong-type.js
deleted file mode 100644
index 1740901401..0000000000
--- a/polyfill/test/Duration/prototype/toString/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.tostring
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => duration.toString({ smallestUnit }),
- (result, descr) => assert.sameValue(result, "PT12H34M56.123987S", descr),
-);
diff --git a/polyfill/test/Duration/prototype/total/balance-negative-result.js b/polyfill/test/Duration/prototype/total/balance-negative-result.js
deleted file mode 100644
index d1af006425..0000000000
--- a/polyfill/test/Duration/prototype/total/balance-negative-result.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: A negative duration result is balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal.duration.prototype.round step 9:
- 9. Let _balanceResult_ be ? BalanceDuration(_unbalanceResult_.[[Days]], _unbalanceResult_.[[Hours]], _unbalanceResult_.[[Minutes]], _unbalanceResult_.[[Seconds]], _unbalanceResult_.[[Milliseconds]], _unbalanceResult_.[[Microseconds]], _unbalanceResult_.[[Nanoseconds]], _unit_, _intermediate_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 0, -60);
-const result = duration.total({ unit: "days" });
-assert.sameValue(result, -2.5);
diff --git a/polyfill/test/Duration/prototype/total/branding.js b/polyfill/test/Duration/prototype/total/branding.js
deleted file mode 100644
index a6841b0bce..0000000000
--- a/polyfill/test/Duration/prototype/total/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const total = Temporal.Duration.prototype.total;
-
-assert.sameValue(typeof total, "function");
-
-assert.throws(TypeError, () => total.call(undefined), "undefined");
-assert.throws(TypeError, () => total.call(null), "null");
-assert.throws(TypeError, () => total.call(true), "true");
-assert.throws(TypeError, () => total.call(""), "empty string");
-assert.throws(TypeError, () => total.call(Symbol()), "symbol");
-assert.throws(TypeError, () => total.call(1), "1");
-assert.throws(TypeError, () => total.call({}), "plain object");
-assert.throws(TypeError, () => total.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => total.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/total/builtin.js b/polyfill/test/Duration/prototype/total/builtin.js
deleted file mode 100644
index 672799e80a..0000000000
--- a/polyfill/test/Duration/prototype/total/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- Tests that Temporal.Duration.prototype.total
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.total),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.total),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.total),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.total.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/total/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/Duration/prototype/total/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 6ae88e1d94..0000000000
--- a/polyfill/test/Duration/prototype/total/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const relativeTo = new Temporal.ZonedDateTime(0n, timeZone, calendar);
-
-// Total of a calendar unit where larger calendar units have to be converted
-// down, to cover the path that goes through UnbalanceDurationRelative
-// The calls come from these paths:
-// Duration.total() ->
-// UnbalanceDurationRelative -> MoveRelativeDate -> calendar.dateAdd() (3x)
-// BalanceDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-
-const instance1 = new Temporal.Duration(1, 1, 1, 1, 1);
-instance1.total({ unit: "days", relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 8, "converting larger calendar units down");
-
-// Total of a calendar unit where smaller calendar units have to be converted
-// up, to cover the path that goes through MoveRelativeZonedDateTime
-// The calls come from these paths:
-// Duration.total() ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// BalanceDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// MoveRelativeDate -> calendar.dateAdd()
-
-calendar.dateAddCallCount = 0;
-
-const instance2 = new Temporal.Duration(0, 0, 1, 1);
-instance2.total({ unit: "weeks", relativeTo });
-assert.sameValue(calendar.dateAddCallCount, 6, "converting smaller calendar units up");
diff --git a/polyfill/test/Duration/prototype/total/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/Duration/prototype/total/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index d9fb7ec05e..0000000000
--- a/polyfill/test/Duration/prototype/total/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.duration.prototype.total steps 7–11:
- 7. Let _unbalanceResult_ be ? UnbalanceDurationRelative(_duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _unit_, _relativeTo_).
- ...
- 10. Let _balanceResult_ be ? BalanceDuration(_unbalanceResult_.[[Days]], _unbalanceResult_.[[Hours]], _unbalanceResult_.[[Minutes]], _unbalanceResult_.[[Seconds]], _unbalanceResult_.[[Milliseconds]], _unbalanceResult_.[[Microseconds]], _unbalanceResult_.[[Nanoseconds]], _unit_, _intermediate_).
- 11. Let _roundResult_ be ? RoundDuration(_unbalanceResult_.[[Years]], _unbalanceResult_.[[Months]], _unbalanceResult_.[[Weeks]], _balanceResult_.[[Days]], _balanceResult_.[[Hours]], _balanceResult_.[[Minutes]], _balanceResult_.[[Seconds]], _balanceResult_.[[Milliseconds]], _balanceResult_.[[Microseconds]], _balanceResult_.[[Nanoseconds]], 1, _unit_, *"trunc"*, _relativeTo_).
- sec-temporal-unbalancedurationrelative steps 1 and 9.d.iii–v:
- 1. If _largestUnit_ is *"year"*, or _years_, _months_, _weeks_, and _days_ are all 0, then
- a. Return ...
- ...
- 9. If _largestUnit_ is *"month"*, then
- ...
- d. Repeat, while abs(_years_) > 0,
- ...
- iii. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- iv. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"month"*).
- v. Let _untilResult_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _newRelativeTo_, _untilOptions_, _dateUntil_).
- sec-temporal-balanceduration step 3.a:
- 3. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-roundduration steps 5.d and 8.n–p:
- 5. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- ...
- 8. If _unit_ is *"year"*, then
- ...
- n. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- o. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"year"*).
- p. Let _timePassed_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _daysLater_, _untilOptions_)
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Check the paths that go through NanosecondsToDays: one call to dateUntil() in
-// BalanceDuration and one in RoundDuration with largestUnit: "day" when the
-// unit is "year", "month", "week", or "day", and one extra call with
-// largestUnit: "year" in RoundDuration when the unit is "year".
-
-const duration = new Temporal.Duration(0, 1, 1, 1, 1, 1, 1, 1, 1, 1);
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, unit) => {
- const relativeTo = new Temporal.ZonedDateTime(0n, "UTC", calendar);
- duration.total({ unit, relativeTo });
- },
- {
- years: ["day", "day", "year"],
- months: ["day", "day"],
- weeks: ["day", "day"],
- days: ["day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Check the path that converts years to months in UnbalanceDurationRelative.
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, unit) => {
- const duration = new Temporal.Duration(5);
- const relativeTo = new Temporal.PlainDateTime(2000, 5, 2, 0, 0, 0, 0, 0, 0, calendar);
- duration.total({ unit, relativeTo });
- },
- {
- years: ["year"],
- months: ["month", "month", "month", "month", "month"],
- weeks: [],
- days: [],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
diff --git a/polyfill/test/Duration/prototype/total/calendar-fields-iterable.js b/polyfill/test/Duration/prototype/total/calendar-fields-iterable.js
deleted file mode 100644
index 0bd730fca5..0000000000
--- a/polyfill/test/Duration/prototype/total/calendar-fields-iterable.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.duration.prototype.total step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
-duration.total({ unit: 'seconds', relativeTo: { year: 2000, month: 1, day: 1, calendar } });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/Duration/prototype/total/calendar-temporal-object.js b/polyfill/test/Duration/prototype/total/calendar-temporal-object.js
deleted file mode 100644
index 22b3939e17..0000000000
--- a/polyfill/test/Duration/prototype/total/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.duration.prototype.total step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
- duration.total({ unit: 'seconds', relativeTo: { year: 2000, month: 1, day: 1, calendar: temporalObject } });
-});
diff --git a/polyfill/test/Duration/prototype/total/dateuntil-field.js b/polyfill/test/Duration/prototype/total/dateuntil-field.js
deleted file mode 100644
index 847c9e775c..0000000000
--- a/polyfill/test/Duration/prototype/total/dateuntil-field.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- When consulting calendar.dateUntil() to calculate the number of months in a
- year, the months property is not accessed on the result Duration
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "call dateUntil",
- "call dateUntil",
-];
-
-const duration = new Temporal.Duration(0, 12);
-TemporalHelpers.observeProperty(actual, duration, "months", 1);
-
-const calendar = TemporalHelpers.calendarDateUntilObservable(actual, duration);
-const relativeTo = new Temporal.PlainDateTime(2018, 10, 12, 0, 0, 0, 0, 0, 0, calendar);
-
-const years = new Temporal.Duration(2);
-const result = years.total({ unit: "months", relativeTo });
-assert.sameValue(result, 24, "result");
-assert.compareArray(actual, expected, "operations");
diff --git a/polyfill/test/Duration/prototype/total/length.js b/polyfill/test/Duration/prototype/total/length.js
deleted file mode 100644
index c3ba5a6ad4..0000000000
--- a/polyfill/test/Duration/prototype/total/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Temporal.Duration.prototype.total.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.total, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/total/name.js b/polyfill/test/Duration/prototype/total/name.js
deleted file mode 100644
index 988dc62191..0000000000
--- a/polyfill/test/Duration/prototype/total/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Temporal.Duration.prototype.total.name is "total".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.total, "name", {
- value: "total",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/total/not-a-constructor.js b/polyfill/test/Duration/prototype/total/not-a-constructor.js
deleted file mode 100644
index ea7d0d0da5..0000000000
--- a/polyfill/test/Duration/prototype/total/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- Temporal.Duration.prototype.total does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.total();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.total), false,
- "isConstructor(Temporal.Duration.prototype.total)");
diff --git a/polyfill/test/Duration/prototype/total/options-wrong-type.js b/polyfill/test/Duration/prototype/total/options-wrong-type.js
deleted file mode 100644
index 671a9d7319..0000000000
--- a/polyfill/test/Duration/prototype/total/options-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: TypeError thrown when options argument is missing or a primitive
-features: [BigInt, Symbol, Temporal]
----*/
-
-const values = [
- undefined,
- null,
- true,
- "string",
- Symbol(),
- 1,
- 2n,
-];
-
-const instance = new Temporal.Duration(0, 0, 0, 0, 1);
-assert.throws(TypeError, () => instance.total(), "TypeError on missing argument");
-values.forEach((value) => {
- assert.throws(TypeError, () => instance.total(value), `TypeError on wrong argument type ${typeof(value)}`);
-});
diff --git a/polyfill/test/Duration/prototype/total/prop-desc.js b/polyfill/test/Duration/prototype/total/prop-desc.js
deleted file mode 100644
index f371deda53..0000000000
--- a/polyfill/test/Duration/prototype/total/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: The "total" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.total,
- "function",
- "`typeof Duration.prototype.total` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "total", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/total/read-time-fields-before-datefromfields.js b/polyfill/test/Duration/prototype/total/read-time-fields-before-datefromfields.js
deleted file mode 100644
index ae4f10bcbf..0000000000
--- a/polyfill/test/Duration/prototype/total/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.duration.prototype.total step 4:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- sec-temporal-torelativetemporalobject step 4.g:
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInvalidGettersTime();
-const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
-duration.total({ unit: 'seconds', relativeTo: { year: 2000, month: 1, day: 1, calendar } });
diff --git a/polyfill/test/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index d2b4f125ff..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.total
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.total({ unit: "seconds", relativeTo: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.total({ unit: "seconds", relativeTo: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 216d9aadc8..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(RangeError, () => duration.total({ unit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index a797532706..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(RangeError, () => duration.total({ unit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index dcd73d3525..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- assert.throws(TypeError, () => duration.total({ unit: "seconds", relativeTo: { year: 2000, month: 5, day: 2, hour: 12, timeZone } }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-string-datetime.js b/polyfill/test/Duration/prototype/total/relativeto-string-datetime.js
deleted file mode 100644
index 4572db8d09..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-string-datetime.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- Conversion of ISO date-time strings as relativeTo option to
- Temporal.ZonedDateTime or Temporal.PlainDateTime instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 0, 0, 0, 24);
-
-let relativeTo = "2019-11-01T00:00";
-const result1 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result1, 367, "bare date-time string is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00Z";
-const result2 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result2, 367, "date-time + Z is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00";
-const result3 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result3, 367, "date-time + offset is a plain relativeTo");
-
-relativeTo = "2019-11-01T00:00[America/Vancouver]";
-const result4 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result4, 366.96, "date-time + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00Z[America/Vancouver]";
-const result5 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result5, 366.96, "date-time + Z + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00-07:00[America/Vancouver]";
-const result6 = instance.total({ unit: "days", relativeTo });
-assert.sameValue(result6, 366.96, "date-time + offset + IANA annotation is a zoned relativeTo");
-
-relativeTo = "2019-11-01T00:00+04:15[America/Vancouver]";
-assert.throws(RangeError, () => instance.total({ unit: "days", relativeTo }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/Duration/prototype/total/relativeto-string-invalid.js b/polyfill/test/Duration/prototype/total/relativeto-string-invalid.js
deleted file mode 100644
index fa321241bb..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-string-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: RangeError thrown if relativeTo is a string with the wrong format
-features: [Temporal]
----*/
-
-['bad string', '15:30:45.123456', 'iso8601', 'UTC', 'P1YT1H'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- assert.throws(RangeError, () => duration.total({ unit: "months", relativeTo }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-string-plaindatetime.js b/polyfill/test/Duration/prototype/total/relativeto-string-plaindatetime.js
deleted file mode 100644
index b37250d710..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-string-plaindatetime.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: The relativeTo option accepts a PlainDateTime-like ISO 8601 string
-features: [Temporal]
----*/
-
-['2000-01-01', '2000-01-01T00:00', '2000-01-01T00:00[u-ca=iso8601]'].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- const result = duration.total({ unit: "months", relativeTo });
- assert.sameValue(result, 1);
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-string-zoneddatetime.js b/polyfill/test/Duration/prototype/total/relativeto-string-zoneddatetime.js
deleted file mode 100644
index ebbd3d3f47..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-string-zoneddatetime.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: The relativeTo option accepts a ZonedDateTime-like ISO 8601 string
-features: [Temporal]
----*/
-
-[
- '2000-01-01[UTC]',
- '2000-01-01T00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC]',
- '2000-01-01T00:00+00:00[UTC][u-ca=iso8601]',
-].forEach((relativeTo) => {
- const duration = new Temporal.Duration(0, 0, 0, 31);
- const result = duration.total({ unit: "months", relativeTo });
- assert.sameValue(result, 1);
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-undefined-throw-on-calendar-units.js b/polyfill/test/Duration/prototype/total/relativeto-undefined-throw-on-calendar-units.js
deleted file mode 100644
index 7014f4fcde..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-undefined-throw-on-calendar-units.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: >
- The relativeTo option is required when the Duration contains years, months,
- or weeks, and largestUnit is days; or largestUnit is weeks or months
-features: [Temporal]
----*/
-
-const oneYear = new Temporal.Duration(1);
-const oneMonth = new Temporal.Duration(0, 1);
-const oneWeek = new Temporal.Duration(0, 0, 1);
-const oneDay = new Temporal.Duration(0, 0, 0, 1);
-
-const options = { unit: "days" };
-assert.sameValue(oneDay.total(options), 1, "days do not require relativeTo");
-assert.throws(RangeError, () => oneWeek.total(options), "total days of weeks requires relativeTo");
-assert.throws(RangeError, () => oneMonth.total(options), "total days of months requires relativeTo");
-assert.throws(RangeError, () => oneYear.total(options), "total days of years requires relativeTo");
-
-["months", "weeks"].forEach((unit) => {
- [oneDay, oneWeek, oneMonth, oneYear].forEach((duration) => {
- assert.throws(RangeError, () => duration.total({ unit }), `${duration} total ${unit} requires relativeTo`);
- });
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 8b44f7747b..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const relativeTo = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time; in this
-// case via relativeTo.
-
-const result = duration.total({ relativeTo, unit: "days" });
-assert.sameValue(result, 1);
diff --git a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 826dde446d..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.total({ unit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 88835003fb..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => duration.total({ unit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 2172e06507..0000000000
--- a/polyfill/test/Duration/prototype/total/relativeto-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => duration.total({ unit: "seconds", relativeTo: datetime }));
-});
diff --git a/polyfill/test/Duration/prototype/total/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/Duration/prototype/total/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index bc13e0bd9d..0000000000
--- a/polyfill/test/Duration/prototype/total/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.duration.prototype.total steps 4 and 10:
- 4. Let _relativeTo_ be ? ToRelativeTemporalObject(_options_).
- 10. Let _balanceResult_ be ? BalanceDuration(_unbalanceResult_.[[Days]], [...], _unbalanceResult_.[[Nanoseconds]], _unit_, _intermediate_).
- sec-temporal-torelativetemporalobject step 6.d:
- d. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNs_, _timeZone_, *"compatible"*, *"reject"*).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-01-01T00:00:00", // called once on the input relativeTo if ZonedDateTime
- "2001-02-09T00:00:00", // called once on the intermediate ZonedDateTime with the calendar parts of the Duration added
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const duration = new Temporal.Duration(1, 1, 1, 1, 1, 1, 1);
- duration.total({ unit: 'seconds', relativeTo: { year: 2000, month: 1, day: 1, timeZone } });
-}, expected);
diff --git a/polyfill/test/Duration/prototype/total/timezone-string-datetime.js b/polyfill/test/Duration/prototype/total/timezone-string-datetime.js
deleted file mode 100644
index 80984d9930..0000000000
--- a/polyfill/test/Duration/prototype/total/timezone-string-datetime.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.total({ unit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone } }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.total({ unit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- instance.total({ unit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone } });
- instance.total({ unit: "months", relativeTo: { year: 2000, month: 5, day: 2, timeZone: { timeZone } } });
-});
diff --git a/polyfill/test/Duration/prototype/total/unit-invalid-string.js b/polyfill/test/Duration/prototype/total/unit-invalid-string.js
deleted file mode 100644
index 0b156a7ec1..0000000000
--- a/polyfill/test/Duration/prototype/total/unit-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.protoype.total
-description: RangeError thrown when unit option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaldurationtotal step 1:
- 1. Let _unit_ be ? GetOption(_normalizedOptions_, *"unit"*, « String », « *"year"*, *"years"*, *"month"*, *"months"*, *"week"*, *"weeks"*, *"day"*, *"days"*, *"hour"*, *"hours"*, *"minute"*, *"minutes"*, *"second"*, *"seconds"*, *"millisecond"*, *"milliseconds"*, *"microsecond"*, *"microseconds"*, *"nanosecond"*, *"nanoseconds"* », *undefined*).
- sec-temporal.duration.protoype.total step 5:
- 5. Let _unit_ be ? ToTemporalDurationTotalUnit(_options_).
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 1);
-assert.throws(RangeError, () => duration.total({ unit: "other string" }));
diff --git a/polyfill/test/Duration/prototype/total/unit-plurals-accepted.js b/polyfill/test/Duration/prototype/total/unit-plurals-accepted.js
deleted file mode 100644
index fec9bc2064..0000000000
--- a/polyfill/test/Duration/prototype/total/unit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Plural units are accepted as well for the unit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const relativeTo = new Temporal.PlainDate(2000, 1, 1);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((unit) => duration.total({ unit, relativeTo }), validUnits);
diff --git a/polyfill/test/Duration/prototype/total/unit-wrong-type.js b/polyfill/test/Duration/prototype/total/unit-wrong-type.js
deleted file mode 100644
index 15bb0823cf..0000000000
--- a/polyfill/test/Duration/prototype/total/unit-wrong-type.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.total
-description: Type conversions for unit option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaldurationtotal step 1:
- 1. Let _unit_ be ? GetOption(_normalizedOptions_, *"unit"*, « String », « *"year"*, *"years"*, *"month"*, *"months"*, *"week"*, *"weeks"*, *"day"*, *"days"*, *"hour"*, *"hours"*, *"minute"*, *"minutes"*, *"second"*, *"seconds"*, *"millisecond"*, *"milliseconds"*, *"microsecond"*, *"microseconds"*, *"nanosecond"*, *"nanoseconds"* », *undefined*).
- sec-temporal.duration.protoype.total step 5:
- 5. Let _unit_ be ? ToTemporalDurationTotalUnit(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const duration = new Temporal.Duration(0, 0, 0, 1);
-TemporalHelpers.checkStringOptionWrongType("unit", "hour",
- (unit) => duration.total({ unit }),
- (result, descr) => assert.sameValue(result, 24, descr),
-);
diff --git a/polyfill/test/Duration/prototype/valueOf/branding.js b/polyfill/test/Duration/prototype/valueOf/branding.js
deleted file mode 100644
index a4146cf9f1..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.Duration.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => valueOf.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/valueOf/builtin.js b/polyfill/test/Duration/prototype/valueOf/builtin.js
deleted file mode 100644
index 96907e526a..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: >
- Tests that Temporal.Duration.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/valueOf/length.js b/polyfill/test/Duration/prototype/valueOf/length.js
deleted file mode 100644
index 2cbc90b3b7..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: Temporal.Duration.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/valueOf/name.js b/polyfill/test/Duration/prototype/valueOf/name.js
deleted file mode 100644
index 8ca02c4451..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: Temporal.Duration.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/valueOf/not-a-constructor.js b/polyfill/test/Duration/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index 12242b8e62..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: >
- Temporal.Duration.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.valueOf), false,
- "isConstructor(Temporal.Duration.prototype.valueOf)");
diff --git a/polyfill/test/Duration/prototype/valueOf/prop-desc.js b/polyfill/test/Duration/prototype/valueOf/prop-desc.js
deleted file mode 100644
index 511a6b30a8..0000000000
--- a/polyfill/test/Duration/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.valueof
-description: The "valueOf" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.valueOf,
- "function",
- "`typeof Duration.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/weeks/branding.js b/polyfill/test/Duration/prototype/weeks/branding.js
deleted file mode 100644
index 42a837aadf..0000000000
--- a/polyfill/test/Duration/prototype/weeks/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.weeks
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const weeks = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "weeks").get;
-
-assert.sameValue(typeof weeks, "function");
-
-assert.throws(TypeError, () => weeks.call(undefined), "undefined");
-assert.throws(TypeError, () => weeks.call(null), "null");
-assert.throws(TypeError, () => weeks.call(true), "true");
-assert.throws(TypeError, () => weeks.call(""), "empty string");
-assert.throws(TypeError, () => weeks.call(Symbol()), "symbol");
-assert.throws(TypeError, () => weeks.call(1), "1");
-assert.throws(TypeError, () => weeks.call({}), "plain object");
-assert.throws(TypeError, () => weeks.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => weeks.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/weeks/prop-desc.js b/polyfill/test/Duration/prototype/weeks/prop-desc.js
deleted file mode 100644
index c8fc13986c..0000000000
--- a/polyfill/test/Duration/prototype/weeks/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.weeks
-description: The "weeks" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "weeks");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Duration/prototype/with/branding.js b/polyfill/test/Duration/prototype/with/branding.js
deleted file mode 100644
index 2bc9af85bf..0000000000
--- a/polyfill/test/Duration/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.Duration.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => with_.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/with/builtin.js b/polyfill/test/Duration/prototype/with/builtin.js
deleted file mode 100644
index 023b5c1c95..0000000000
--- a/polyfill/test/Duration/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: >
- Tests that Temporal.Duration.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Duration.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Duration.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Duration.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Duration.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Duration/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 3816d895af..0000000000
--- a/polyfill/test/Duration/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.with handles a property bag if any value is Infinity
-esid: sec-temporal.duration.prototype.with
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.with({ [field]: Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.with({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/with/length.js b/polyfill/test/Duration/prototype/with/length.js
deleted file mode 100644
index d53ba91b86..0000000000
--- a/polyfill/test/Duration/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: Temporal.Duration.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/with/name.js b/polyfill/test/Duration/prototype/with/name.js
deleted file mode 100644
index 0e83341a90..0000000000
--- a/polyfill/test/Duration/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: Temporal.Duration.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Duration.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/with/negative-infinity-throws-rangeerror.js b/polyfill/test/Duration/prototype/with/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index d1fd8e5d9a..0000000000
--- a/polyfill/test/Duration/prototype/with/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Duration.prototype.with throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.duration.prototype.with
-features: [Temporal]
----*/
-
-const fields = ['years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds', 'nanoseconds'];
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.with({ [field]: -Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.with({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Duration/prototype/with/non-integer-throws-rangeerror.js b/polyfill/test/Duration/prototype/with/non-integer-throws-rangeerror.js
deleted file mode 100644
index db746ccaa0..0000000000
--- a/polyfill/test/Duration/prototype/with/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.with({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.with({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Duration/prototype/with/not-a-constructor.js b/polyfill/test/Duration/prototype/with/not-a-constructor.js
deleted file mode 100644
index 3849a56c16..0000000000
--- a/polyfill/test/Duration/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: >
- Temporal.Duration.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Duration.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Duration.prototype.with), false,
- "isConstructor(Temporal.Duration.prototype.with)");
diff --git a/polyfill/test/Duration/prototype/with/order-of-operations.js b/polyfill/test/Duration/prototype/with/order-of-operations.js
deleted file mode 100644
index acb83dc952..0000000000
--- a/polyfill/test/Duration/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertDuration(result, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Duration/prototype/with/prop-desc.js b/polyfill/test/Duration/prototype/with/prop-desc.js
deleted file mode 100644
index 811e7652ad..0000000000
--- a/polyfill/test/Duration/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: The "with" property of Temporal.Duration.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Duration.prototype.with,
- "function",
- "`typeof Duration.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.Duration.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Duration/prototype/with/subclassing-ignored.js b/polyfill/test/Duration/prototype/with/subclassing-ignored.js
deleted file mode 100644
index 330ca3ea6c..0000000000
--- a/polyfill/test/Duration/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.duration.prototype.with
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Duration,
- [0, 0, 0, 4, 5, 6, 7, 987, 654, 321],
- "with",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 5, 6, 7, 987, 654, 1),
-);
diff --git a/polyfill/test/Duration/prototype/years/branding.js b/polyfill/test/Duration/prototype/years/branding.js
deleted file mode 100644
index 2d95a26327..0000000000
--- a/polyfill/test/Duration/prototype/years/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.years
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const years = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "years").get;
-
-assert.sameValue(typeof years, "function");
-
-assert.throws(TypeError, () => years.call(undefined), "undefined");
-assert.throws(TypeError, () => years.call(null), "null");
-assert.throws(TypeError, () => years.call(true), "true");
-assert.throws(TypeError, () => years.call(""), "empty string");
-assert.throws(TypeError, () => years.call(Symbol()), "symbol");
-assert.throws(TypeError, () => years.call(1), "1");
-assert.throws(TypeError, () => years.call({}), "plain object");
-assert.throws(TypeError, () => years.call(Temporal.Duration), "Temporal.Duration");
-assert.throws(TypeError, () => years.call(Temporal.Duration.prototype), "Temporal.Duration.prototype");
diff --git a/polyfill/test/Duration/prototype/years/prop-desc.js b/polyfill/test/Duration/prototype/years/prop-desc.js
deleted file mode 100644
index 9fb001cedb..0000000000
--- a/polyfill/test/Duration/prototype/years/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.duration.prototype.years
-description: The "years" property of Temporal.Duration.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Duration.prototype, "years");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Instant/constructor/compare/argument-zoneddatetime.js b/polyfill/test/Instant/constructor/compare/argument-zoneddatetime.js
deleted file mode 100644
index c521b0241c..0000000000
--- a/polyfill/test/Instant/constructor/compare/argument-zoneddatetime.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.instant.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalInstant(_one_).
- 2. Set _two_ to ? ToTemporalInstant(_two_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_000_000_000n);
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const result = Temporal.Instant.compare(datetime, instant);
- assert.sameValue(result, 1, "comparison result");
-});
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const result = Temporal.Instant.compare(instant, datetime);
- assert.sameValue(result, -1, "comparison result");
-});
diff --git a/polyfill/test/Instant/constructor/compare/builtin.js b/polyfill/test/Instant/constructor/compare/builtin.js
deleted file mode 100644
index 34b4d20e0d..0000000000
--- a/polyfill/test/Instant/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Tests that Temporal.Instant.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/compare/instant-string.js b/polyfill/test/Instant/constructor/compare/instant-string.js
deleted file mode 100644
index 641585b742..0000000000
--- a/polyfill/test/Instant/constructor/compare/instant-string.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-features: [Temporal]
----*/
-
-const epoch = new Temporal.Instant(0n);
-const hourBefore = new Temporal.Instant(-3600_000_000_000n);
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => Temporal.Instant.compare(str, epoch), "bare date-time string is not an instant (first argument)");
-assert.throws(RangeError, () => Temporal.Instant.compare(epoch, str), "bare date-time string is not an instant (second argument)");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => Temporal.Instant.compare(str, epoch), "date-time + IANA annotation is not an instant (first argument)");
-assert.throws(RangeError, () => Temporal.Instant.compare(epoch, str), "date-time + IANA annotation is not an instant (second argument)");
-
-str = "1970-01-01T00:00Z";
-assert.sameValue(Temporal.Instant.compare(str, epoch), 0, "date-time + Z preserves exact time (first argument)");
-assert.sameValue(Temporal.Instant.compare(epoch, str), 0, "date-time + Z preserves exact time (second argument)");
-
-str = "1970-01-01T00:00+01:00";
-assert.sameValue(Temporal.Instant.compare(str, hourBefore), 0, "date-time + offset preserves exact time with offset (first argument)");
-assert.sameValue(Temporal.Instant.compare(hourBefore, str), 0, "date-time + offset preserves exact time with offset (second argument)");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-assert.sameValue(Temporal.Instant.compare(str, epoch), 0, "date-time + Z + IANA annotation ignores the IANA annotation (first argument)");
-assert.sameValue(Temporal.Instant.compare(epoch, str), 0, "date-time + Z + IANA annotation ignores the IANA annotation (second argument)");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-assert.sameValue(Temporal.Instant.compare(str, hourBefore), 0, "date-time + offset + IANA annotation ignores the IANA annotation (first argument)");
-assert.sameValue(Temporal.Instant.compare(hourBefore, str), 0, "date-time + offset + IANA annotation ignores the IANA annotation (second argument)");
diff --git a/polyfill/test/Instant/constructor/compare/length.js b/polyfill/test/Instant/constructor/compare/length.js
deleted file mode 100644
index 40ab567e7e..0000000000
--- a/polyfill/test/Instant/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Temporal.Instant.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/compare/name.js b/polyfill/test/Instant/constructor/compare/name.js
deleted file mode 100644
index 549d71a751..0000000000
--- a/polyfill/test/Instant/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Temporal.Instant.compare.name is "compare"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/compare/not-a-constructor.js b/polyfill/test/Instant/constructor/compare/not-a-constructor.js
deleted file mode 100644
index 169fb1ece4..0000000000
--- a/polyfill/test/Instant/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: Temporal.Instant.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.compare), false,
- "isConstructor(Temporal.Instant.compare)");
diff --git a/polyfill/test/Instant/constructor/compare/prop-desc.js b/polyfill/test/Instant/constructor/compare/prop-desc.js
deleted file mode 100644
index 6375c4951a..0000000000
--- a/polyfill/test/Instant/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.compare
-description: The "compare" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.compare,
- "function",
- "`typeof Instant.compare` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/constructor/argument.js b/polyfill/test/Instant/constructor/constructor/argument.js
deleted file mode 100644
index c967ee1daf..0000000000
--- a/polyfill/test/Instant/constructor/constructor/argument.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: TypeError thrown if input is of wrong primitive type
-features: [Symbol, Temporal]
----*/
-
-assert.throws(TypeError, () => new Temporal.Instant(), "undefined");
-assert.throws(TypeError, () => new Temporal.Instant(undefined), "undefined");
-assert.throws(TypeError, () => new Temporal.Instant(null), "null");
-assert.throws(TypeError, () => new Temporal.Instant(42), "number");
-assert.throws(TypeError, () => new Temporal.Instant(Symbol()), "symbol");
diff --git a/polyfill/test/Instant/constructor/constructor/basic.js b/polyfill/test/Instant/constructor/constructor/basic.js
deleted file mode 100644
index 2e99e5ef5e..0000000000
--- a/polyfill/test/Instant/constructor/constructor/basic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: Basic functionality of the Temporal.Instant constructor
-features: [Temporal]
----*/
-
-const bigIntInstant = new Temporal.Instant(217175010123456789n);
-assert(bigIntInstant instanceof Temporal.Instant, "BigInt instanceof");
-assert.sameValue(bigIntInstant.epochSeconds, 217175010, "BigInt epochSeconds");
-assert.sameValue(bigIntInstant.epochMilliseconds, 217175010123, "BigInt epochMilliseconds");
-
-const stringInstant = new Temporal.Instant("217175010123456789");
-assert(stringInstant instanceof Temporal.Instant, "String instanceof");
-assert.sameValue(stringInstant.epochSeconds, 217175010, "String epochSeconds");
-assert.sameValue(stringInstant.epochMilliseconds, 217175010123, "String epochMilliseconds");
-
-assert.throws(SyntaxError, () => new Temporal.Instant("abc123"), "invalid BigInt syntax");
diff --git a/polyfill/test/Instant/constructor/constructor/builtin.js b/polyfill/test/Instant/constructor/constructor/builtin.js
deleted file mode 100644
index 03f0273f22..0000000000
--- a/polyfill/test/Instant/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: Tests that Temporal.Instant meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.Instant.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/Instant/constructor/constructor/constructor.js b/polyfill/test/Instant/constructor/constructor/constructor.js
deleted file mode 100644
index ec1d0d7a51..0000000000
--- a/polyfill/test/Instant/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: Temporal.Instant constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.Instant());
diff --git a/polyfill/test/Instant/constructor/constructor/length.js b/polyfill/test/Instant/constructor/constructor/length.js
deleted file mode 100644
index 7e05ca7a04..0000000000
--- a/polyfill/test/Instant/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: Temporal.Instant.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/constructor/name.js b/polyfill/test/Instant/constructor/constructor/name.js
deleted file mode 100644
index 03f0f41413..0000000000
--- a/polyfill/test/Instant/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: Temporal.Instant.name is "Instant"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant, "name", {
- value: "Instant",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/constructor/prop-desc.js b/polyfill/test/Instant/constructor/constructor/prop-desc.js
deleted file mode 100644
index e2afc93926..0000000000
--- a/polyfill/test/Instant/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant
-description: The "Instant" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant,
- "function",
- "`typeof Instant` is `function`"
-);
-
-verifyProperty(Temporal, "Instant", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/from/argument-zoneddatetime.js b/polyfill/test/Instant/constructor/from/argument-zoneddatetime.js
deleted file mode 100644
index 99fb204277..0000000000
--- a/polyfill/test/Instant/constructor/from/argument-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.instant.from step 2:
- 2. Return ? ToTemporalInstant(_item_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const result = Temporal.Instant.from(datetime);
- assert.sameValue(result.epochNanoseconds, result.epochNanoseconds, "epochNanoseconds result");
-});
diff --git a/polyfill/test/Instant/constructor/from/builtin.js b/polyfill/test/Instant/constructor/from/builtin.js
deleted file mode 100644
index c9fb283aec..0000000000
--- a/polyfill/test/Instant/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Tests that Temporal.Instant.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/from/instant-string.js b/polyfill/test/Instant/constructor/from/instant-string.js
deleted file mode 100644
index a113187543..0000000000
--- a/polyfill/test/Instant/constructor/from/instant-string.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-features: [Temporal]
----*/
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => Temporal.Instant.from(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => Temporal.Instant.from(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = Temporal.Instant.from(str);
-assert.sameValue(result1.epochNanoseconds, 0n, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = Temporal.Instant.from(str);
-assert.sameValue(result2.epochNanoseconds, -3600_000_000_000n, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = Temporal.Instant.from(str);
-assert.sameValue(result3.epochNanoseconds, 0n, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = Temporal.Instant.from(str);
-assert.sameValue(result4.epochNanoseconds, -3600_000_000_000n, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/Instant/constructor/from/length.js b/polyfill/test/Instant/constructor/from/length.js
deleted file mode 100644
index 80c58fff0c..0000000000
--- a/polyfill/test/Instant/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Temporal.Instant.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/from/name.js b/polyfill/test/Instant/constructor/from/name.js
deleted file mode 100644
index 37e951c9da..0000000000
--- a/polyfill/test/Instant/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Temporal.Instant.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/from/not-a-constructor.js b/polyfill/test/Instant/constructor/from/not-a-constructor.js
deleted file mode 100644
index a508a14d1c..0000000000
--- a/polyfill/test/Instant/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Temporal.Instant.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.from), false,
- "isConstructor(Temporal.Instant.from)");
diff --git a/polyfill/test/Instant/constructor/from/prop-desc.js b/polyfill/test/Instant/constructor/from/prop-desc.js
deleted file mode 100644
index ef65d799d4..0000000000
--- a/polyfill/test/Instant/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: The "from" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.from,
- "function",
- "`typeof Instant.from` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/from/subclassing-ignored.js b/polyfill/test/Instant/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 46593de5b3..0000000000
--- a/polyfill/test/Instant/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Instant,
- "from",
- ["1976-11-18T14:23:30.123456789Z"],
- (result) => assert.sameValue(result.epochNanoseconds, 217_175_010_123_456_789n, "epochNanoseconds result"),
-);
diff --git a/polyfill/test/Instant/constructor/from/timezone-custom.js b/polyfill/test/Instant/constructor/from/timezone-custom.js
deleted file mode 100644
index 6063d6f5c8..0000000000
--- a/polyfill/test/Instant/constructor/from/timezone-custom.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.from
-description: Time zone annotation is ignored in input ISO string
-features: [Temporal]
----*/
-
-const dateTimeString = "1975-02-02T14:25:36.123456789";
-
-Object.defineProperty(Temporal.TimeZone, "from", {
- get() {
- throw new Test262Error("should not get Temporal.TimeZone.from");
- },
-});
-
-const instant = Temporal.Instant.from(dateTimeString + "+01:00[Custom/TimeZone]");
-assert.sameValue(instant.epochMilliseconds, 160579536123);
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/basic.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/basic.js
deleted file mode 100644
index 73ffb79e09..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: Basic tests for Instant.fromEpochMicroseconds().
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = Temporal.Instant.fromEpochMicroseconds(217175010_123_456n);
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_123_456_000n, "fromEpochMicroseconds post epoch");
-
-const beforeEpoch = Temporal.Instant.fromEpochMicroseconds(-217175010_876_543n);
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_876_543_000n, "fromEpochMicroseconds pre epoch");
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/builtin.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/builtin.js
deleted file mode 100644
index 073b7f21b2..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: Tests that Temporal.Instant.fromEpochMicroseconds meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.fromEpochMicroseconds),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.fromEpochMicroseconds),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.fromEpochMicroseconds),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.fromEpochMicroseconds.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/length.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/length.js
deleted file mode 100644
index a5bb9922d3..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: Temporal.Instant.fromEpochMicroseconds.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochMicroseconds, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/name.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/name.js
deleted file mode 100644
index 4ed946db31..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: Temporal.Instant.fromEpochMicroseconds.name is "fromEpochMicroseconds"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochMicroseconds, "name", {
- value: "fromEpochMicroseconds",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/not-a-constructor.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/not-a-constructor.js
deleted file mode 100644
index 7bb9615fc5..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: Temporal.Instant.fromEpochMicroseconds does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.fromEpochMicroseconds();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.fromEpochMicroseconds), false,
- "isConstructor(Temporal.Instant.fromEpochMicroseconds)");
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/prop-desc.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/prop-desc.js
deleted file mode 100644
index bdb25776b4..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: The "fromEpochMicroseconds" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.fromEpochMicroseconds,
- "function",
- "`typeof Instant.fromEpochMicroseconds` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "fromEpochMicroseconds", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMicroseconds/subclassing-ignored.js b/polyfill/test/Instant/constructor/fromEpochMicroseconds/subclassing-ignored.js
deleted file mode 100644
index b2542670ac..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMicroseconds/subclassing-ignored.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmicroseconds
-description: The receiver is never called by fromEpochMicroseconds()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Instant,
- "fromEpochMicroseconds",
- [10n],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10_000n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/basic.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/basic.js
deleted file mode 100644
index 2da12ffb4f..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: Basic tests for Instant.fromEpochMilliseconds().
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = Temporal.Instant.fromEpochMilliseconds(217175010_123);
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_123_000_000n, "fromEpochMilliseconds post epoch");
-
-const beforeEpoch = Temporal.Instant.fromEpochMilliseconds(-217175010_876);
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_876_000_000n, "fromEpochMilliseconds pre epoch");
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/builtin.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/builtin.js
deleted file mode 100644
index a081407a9f..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: Tests that Temporal.Instant.fromEpochMilliseconds meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.fromEpochMilliseconds),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.fromEpochMilliseconds),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.fromEpochMilliseconds),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.fromEpochMilliseconds.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/length.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/length.js
deleted file mode 100644
index a1186693ad..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: Temporal.Instant.fromEpochMilliseconds.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochMilliseconds, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/name.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/name.js
deleted file mode 100644
index 1d3cc439fb..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: Temporal.Instant.fromEpochMilliseconds.name is "fromEpochMilliseconds"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochMilliseconds, "name", {
- value: "fromEpochMilliseconds",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/not-a-constructor.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/not-a-constructor.js
deleted file mode 100644
index 58e8573b1b..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: Temporal.Instant.fromEpochMilliseconds does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.fromEpochMilliseconds();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.fromEpochMilliseconds), false,
- "isConstructor(Temporal.Instant.fromEpochMilliseconds)");
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/prop-desc.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/prop-desc.js
deleted file mode 100644
index 378a91e5b2..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: The "fromEpochMilliseconds" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.fromEpochMilliseconds,
- "function",
- "`typeof Instant.fromEpochMilliseconds` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "fromEpochMilliseconds", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochMilliseconds/subclassing-ignored.js b/polyfill/test/Instant/constructor/fromEpochMilliseconds/subclassing-ignored.js
deleted file mode 100644
index 6ea5bf1fd1..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochMilliseconds/subclassing-ignored.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochmilliseconds
-description: The receiver is never called by fromEpochMilliseconds()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Instant,
- "fromEpochMilliseconds",
- [10],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10_000_000n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/basic.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/basic.js
deleted file mode 100644
index 229c408940..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: Basic tests for Instant.fromEpochNanoseconds().
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = Temporal.Instant.fromEpochNanoseconds(217175010_123_456_789n);
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_123_456_789n, "fromEpochNanoseconds post epoch");
-
-const beforeEpoch = Temporal.Instant.fromEpochNanoseconds(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_876_543_211n, "fromEpochNanoseconds pre epoch");
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/builtin.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/builtin.js
deleted file mode 100644
index c07dae9f1c..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: Tests that Temporal.Instant.fromEpochNanoseconds meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.fromEpochNanoseconds),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.fromEpochNanoseconds),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.fromEpochNanoseconds),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.fromEpochNanoseconds.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/length.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/length.js
deleted file mode 100644
index 7168cc80c0..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: Temporal.Instant.fromEpochNanoseconds.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochNanoseconds, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/name.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/name.js
deleted file mode 100644
index 9423536878..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: Temporal.Instant.fromEpochNanoseconds.name is "fromEpochNanoseconds"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochNanoseconds, "name", {
- value: "fromEpochNanoseconds",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/not-a-constructor.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/not-a-constructor.js
deleted file mode 100644
index d265ebf3f8..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: Temporal.Instant.fromEpochNanoseconds does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.fromEpochNanoseconds();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.fromEpochNanoseconds), false,
- "isConstructor(Temporal.Instant.fromEpochNanoseconds)");
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/prop-desc.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/prop-desc.js
deleted file mode 100644
index 8a5e414644..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: The "fromEpochNanoseconds" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.fromEpochNanoseconds,
- "function",
- "`typeof Instant.fromEpochNanoseconds` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "fromEpochNanoseconds", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochNanoseconds/subclassing-ignored.js b/polyfill/test/Instant/constructor/fromEpochNanoseconds/subclassing-ignored.js
deleted file mode 100644
index 9cda20d6fe..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochNanoseconds/subclassing-ignored.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochnanoseconds
-description: The receiver is never called by fromEpochNanoseconds()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Instant,
- "fromEpochNanoseconds",
- [10n],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/basic.js b/polyfill/test/Instant/constructor/fromEpochSeconds/basic.js
deleted file mode 100644
index ad9f175660..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: Basic tests for Instant.fromEpochSeconds().
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = Temporal.Instant.fromEpochSeconds(217175010);
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_000_000_000n, "fromEpochSeconds post epoch");
-
-const beforeEpoch = Temporal.Instant.fromEpochSeconds(-217175010);
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_000_000_000n, "fromEpochSeconds pre epoch");
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/builtin.js b/polyfill/test/Instant/constructor/fromEpochSeconds/builtin.js
deleted file mode 100644
index 6fba9b7255..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: Tests that Temporal.Instant.fromEpochSeconds meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.fromEpochSeconds),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.fromEpochSeconds),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.fromEpochSeconds),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.fromEpochSeconds.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/length.js b/polyfill/test/Instant/constructor/fromEpochSeconds/length.js
deleted file mode 100644
index 5d0a1b1d79..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: Temporal.Instant.fromEpochSeconds.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochSeconds, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/name.js b/polyfill/test/Instant/constructor/fromEpochSeconds/name.js
deleted file mode 100644
index 75720d6294..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: Temporal.Instant.fromEpochSeconds.name is "fromEpochSeconds"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.fromEpochSeconds, "name", {
- value: "fromEpochSeconds",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/not-a-constructor.js b/polyfill/test/Instant/constructor/fromEpochSeconds/not-a-constructor.js
deleted file mode 100644
index 800103e638..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: Temporal.Instant.fromEpochSeconds does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.fromEpochSeconds();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.fromEpochSeconds), false,
- "isConstructor(Temporal.Instant.fromEpochSeconds)");
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/prop-desc.js b/polyfill/test/Instant/constructor/fromEpochSeconds/prop-desc.js
deleted file mode 100644
index 48d51e344d..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: The "fromEpochSeconds" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.fromEpochSeconds,
- "function",
- "`typeof Instant.fromEpochSeconds` is `function`"
-);
-
-verifyProperty(Temporal.Instant, "fromEpochSeconds", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/constructor/fromEpochSeconds/subclassing-ignored.js b/polyfill/test/Instant/constructor/fromEpochSeconds/subclassing-ignored.js
deleted file mode 100644
index 334950198b..0000000000
--- a/polyfill/test/Instant/constructor/fromEpochSeconds/subclassing-ignored.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.fromepochseconds
-description: The receiver is never called by fromEpochSeconds()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.Instant,
- "fromEpochSeconds",
- [10],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10_000_000_000n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/Instant/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 9fee0fa701..0000000000
--- a/polyfill/test/Instant/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
-
-const resultHours = instance.add("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_201n, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_621n, "negative fractional minutes");
diff --git a/polyfill/test/Instant/prototype/add/argument-string.js b/polyfill/test/Instant/prototype/add/argument-string.js
deleted file mode 100644
index 3dec39fc63..0000000000
--- a/polyfill/test/Instant/prototype/add/argument-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: A string is parsed into the correct object when passed as the argument
-features: [Temporal]
----*/
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-const result = instance.add("PT3H");
-assert.sameValue(result.epochNanoseconds, 10_810_000_000_000n, "epochNanoseconds result");
diff --git a/polyfill/test/Instant/prototype/add/branding.js b/polyfill/test/Instant/prototype/add/branding.js
deleted file mode 100644
index cb6b1158c6..0000000000
--- a/polyfill/test/Instant/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.Instant.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => add.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/add/builtin.js b/polyfill/test/Instant/prototype/add/builtin.js
deleted file mode 100644
index a792511228..0000000000
--- a/polyfill/test/Instant/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: >
- Tests that Temporal.Instant.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/Instant/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index 2f75efe04c..0000000000
--- a/polyfill/test/Instant/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Instant.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.instant.prototype.add
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Instant/prototype/add/length.js b/polyfill/test/Instant/prototype/add/length.js
deleted file mode 100644
index dbc005d39b..0000000000
--- a/polyfill/test/Instant/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Temporal.Instant.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/add/name.js b/polyfill/test/Instant/prototype/add/name.js
deleted file mode 100644
index ebff49cb69..0000000000
--- a/polyfill/test/Instant/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Temporal.Instant.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/Instant/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 57d3bb46e2..0000000000
--- a/polyfill/test/Instant/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Instant.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.instant.prototype.add
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Instant/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/Instant/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 2406115474..0000000000
--- a/polyfill/test/Instant/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Instant/prototype/add/not-a-constructor.js b/polyfill/test/Instant/prototype/add/not-a-constructor.js
deleted file mode 100644
index 8c5e702b8f..0000000000
--- a/polyfill/test/Instant/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: >
- Temporal.Instant.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.add), false,
- "isConstructor(Temporal.Instant.prototype.add)");
diff --git a/polyfill/test/Instant/prototype/add/order-of-operations.js b/polyfill/test/Instant/prototype/add/order-of-operations.js
deleted file mode 100644
index aec517d484..0000000000
--- a/polyfill/test/Instant/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(10n);
-const expected = [
- "get days",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get years",
-];
-const actual = [];
-const fields = {
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument);
-assert.sameValue(result.epochNanoseconds, 3661001001011n, "epochNanoseconds result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Instant/prototype/add/prop-desc.js b/polyfill/test/Instant/prototype/add/prop-desc.js
deleted file mode 100644
index 8860a79d82..0000000000
--- a/polyfill/test/Instant/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: The "add" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.add,
- "function",
- "`typeof Instant.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/add/result-out-of-range.js b/polyfill/test/Instant/prototype/add/result-out-of-range.js
deleted file mode 100644
index 63f6bba22a..0000000000
--- a/polyfill/test/Instant/prototype/add/result-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: RangeError thrown if result is outside representable range
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochNanoseconds(8640000_000_000_000_000_000n);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1 }));
-});
diff --git a/polyfill/test/Instant/prototype/add/subclassing-ignored.js b/polyfill/test/Instant/prototype/add/subclassing-ignored.js
deleted file mode 100644
index 62bd095bc5..0000000000
--- a/polyfill/test/Instant/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: Objects of a subclass are never created as return values for add()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Instant,
- [10n],
- "add",
- [{ nanoseconds: 5 }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 15n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/prototype/builtin.js b/polyfill/test/Instant/prototype/builtin.js
deleted file mode 100644
index 30d427cae3..0000000000
--- a/polyfill/test/Instant/prototype/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-instant-objects
-description: Temporal.Instant.prototype meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const { Instant } = Temporal;
-
-assert.sameValue(Object.isExtensible(Instant.prototype), true,
- "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Instant.prototype),
- "[object Temporal.Instant]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Instant.prototype), Object.prototype,
- "Built-in prototype objects must have Object.prototype as their prototype.");
-
-assert.sameValue(Instant.prototype.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/epochMicroseconds/basic.js b/polyfill/test/Instant/prototype/epochMicroseconds/basic.js
deleted file mode 100644
index ca4a582ab6..0000000000
--- a/polyfill/test/Instant/prototype/epochMicroseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmicroseconds
-description: Basic tests for epochMicroseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.Instant(217175010_123_456_789n);
-assert.sameValue(afterEpoch.epochMicroseconds, 217175010_123_456n, "epochMicroseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochMicroseconds, "bigint", "epochMicroseconds value is a bigint");
-
-const beforeEpoch = new Temporal.Instant(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.epochMicroseconds, -217175010_876_543n, "epochMicroseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochMicroseconds, "bigint", "epochMicroseconds value is a bigint");
diff --git a/polyfill/test/Instant/prototype/epochMicroseconds/branding.js b/polyfill/test/Instant/prototype/epochMicroseconds/branding.js
deleted file mode 100644
index 654833ba08..0000000000
--- a/polyfill/test/Instant/prototype/epochMicroseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmicroseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochMicroseconds = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochMicroseconds").get;
-
-assert.sameValue(typeof epochMicroseconds, "function");
-
-assert.throws(TypeError, () => epochMicroseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochMicroseconds.call(null), "null");
-assert.throws(TypeError, () => epochMicroseconds.call(true), "true");
-assert.throws(TypeError, () => epochMicroseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochMicroseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochMicroseconds.call(1), "1");
-assert.throws(TypeError, () => epochMicroseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochMicroseconds.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => epochMicroseconds.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/epochMicroseconds/prop-desc.js b/polyfill/test/Instant/prototype/epochMicroseconds/prop-desc.js
deleted file mode 100644
index c64fe27972..0000000000
--- a/polyfill/test/Instant/prototype/epochMicroseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmicroseconds
-description: The "epochMicroseconds" property of Temporal.Instant.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochMicroseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Instant/prototype/epochMilliseconds/basic.js b/polyfill/test/Instant/prototype/epochMilliseconds/basic.js
deleted file mode 100644
index 418a5a95e4..0000000000
--- a/polyfill/test/Instant/prototype/epochMilliseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmilliseconds
-description: Basic tests for epochMilliseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.Instant(217175010_123_456_789n);
-assert.sameValue(afterEpoch.epochMilliseconds, 217175010_123, "epochMilliseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochMilliseconds, "number", "epochMilliseconds value is a number");
-
-const beforeEpoch = new Temporal.Instant(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.epochMilliseconds, -217175010_876, "epochMilliseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochMilliseconds, "number", "epochMilliseconds value is a number");
diff --git a/polyfill/test/Instant/prototype/epochMilliseconds/branding.js b/polyfill/test/Instant/prototype/epochMilliseconds/branding.js
deleted file mode 100644
index 04188ecd84..0000000000
--- a/polyfill/test/Instant/prototype/epochMilliseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmilliseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochMilliseconds = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochMilliseconds").get;
-
-assert.sameValue(typeof epochMilliseconds, "function");
-
-assert.throws(TypeError, () => epochMilliseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochMilliseconds.call(null), "null");
-assert.throws(TypeError, () => epochMilliseconds.call(true), "true");
-assert.throws(TypeError, () => epochMilliseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochMilliseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochMilliseconds.call(1), "1");
-assert.throws(TypeError, () => epochMilliseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochMilliseconds.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => epochMilliseconds.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/epochMilliseconds/prop-desc.js b/polyfill/test/Instant/prototype/epochMilliseconds/prop-desc.js
deleted file mode 100644
index e4370f4ecb..0000000000
--- a/polyfill/test/Instant/prototype/epochMilliseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochmilliseconds
-description: The "epochMilliseconds" property of Temporal.Instant.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochMilliseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Instant/prototype/epochNanoseconds/basic.js b/polyfill/test/Instant/prototype/epochNanoseconds/basic.js
deleted file mode 100644
index dcbbfe4aab..0000000000
--- a/polyfill/test/Instant/prototype/epochNanoseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochnanoseconds
-description: Basic tests for epochNanoseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.Instant(217175010_123_456_789n);
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_123_456_789n, "epochNanoseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochNanoseconds, "bigint", "epochNanoseconds value is a bigint");
-
-const beforeEpoch = new Temporal.Instant(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_876_543_211n, "epochNanoseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochNanoseconds, "bigint", "epochNanoseconds value is a bigint");
diff --git a/polyfill/test/Instant/prototype/epochNanoseconds/branding.js b/polyfill/test/Instant/prototype/epochNanoseconds/branding.js
deleted file mode 100644
index 44d4989ff9..0000000000
--- a/polyfill/test/Instant/prototype/epochNanoseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochnanoseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochNanoseconds = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochNanoseconds").get;
-
-assert.sameValue(typeof epochNanoseconds, "function");
-
-assert.throws(TypeError, () => epochNanoseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochNanoseconds.call(null), "null");
-assert.throws(TypeError, () => epochNanoseconds.call(true), "true");
-assert.throws(TypeError, () => epochNanoseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochNanoseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochNanoseconds.call(1), "1");
-assert.throws(TypeError, () => epochNanoseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochNanoseconds.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => epochNanoseconds.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/epochNanoseconds/prop-desc.js b/polyfill/test/Instant/prototype/epochNanoseconds/prop-desc.js
deleted file mode 100644
index dd1c655c7d..0000000000
--- a/polyfill/test/Instant/prototype/epochNanoseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochnanoseconds
-description: The "epochNanoseconds" property of Temporal.Instant.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochNanoseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Instant/prototype/epochSeconds/basic.js b/polyfill/test/Instant/prototype/epochSeconds/basic.js
deleted file mode 100644
index 7c3e8ab798..0000000000
--- a/polyfill/test/Instant/prototype/epochSeconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochseconds
-description: Basic tests for epochSeconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.Instant(217175010_123_456_789n);
-assert.sameValue(afterEpoch.epochSeconds, 217175010, "epochSeconds post epoch");
-assert.sameValue(typeof afterEpoch.epochSeconds, "number", "epochSeconds value is a number");
-
-const beforeEpoch = new Temporal.Instant(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.epochSeconds, -217175010, "epochSeconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochSeconds, "number", "epochSeconds value is a number");
diff --git a/polyfill/test/Instant/prototype/epochSeconds/branding.js b/polyfill/test/Instant/prototype/epochSeconds/branding.js
deleted file mode 100644
index a6c30b798b..0000000000
--- a/polyfill/test/Instant/prototype/epochSeconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochSeconds = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochSeconds").get;
-
-assert.sameValue(typeof epochSeconds, "function");
-
-assert.throws(TypeError, () => epochSeconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochSeconds.call(null), "null");
-assert.throws(TypeError, () => epochSeconds.call(true), "true");
-assert.throws(TypeError, () => epochSeconds.call(""), "empty string");
-assert.throws(TypeError, () => epochSeconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochSeconds.call(1), "1");
-assert.throws(TypeError, () => epochSeconds.call({}), "plain object");
-assert.throws(TypeError, () => epochSeconds.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => epochSeconds.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/epochSeconds/prop-desc.js b/polyfill/test/Instant/prototype/epochSeconds/prop-desc.js
deleted file mode 100644
index 2b92c7f65b..0000000000
--- a/polyfill/test/Instant/prototype/epochSeconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.instant.prototype.epochseconds
-description: The "epochSeconds" property of Temporal.Instant.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.Instant.prototype, "epochSeconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Instant/prototype/equals/argument-wrong-type.js b/polyfill/test/Instant/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index 04d3d188ba..0000000000
--- a/polyfill/test/Instant/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.Instant.fromEpochSeconds(0);
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(RangeError, () => instance.equals({}), "plain object");
-assert.throws(RangeError, () => instance.equals(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => instance.equals(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/equals/argument-zoneddatetime.js b/polyfill/test/Instant/prototype/equals/argument-zoneddatetime.js
deleted file mode 100644
index 20e299ca7e..0000000000
--- a/polyfill/test/Instant/prototype/equals/argument-zoneddatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.instant.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalInstant(_other_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert(instant.equals(datetime));
-});
diff --git a/polyfill/test/Instant/prototype/equals/branding.js b/polyfill/test/Instant/prototype/equals/branding.js
deleted file mode 100644
index 5aafe306d1..0000000000
--- a/polyfill/test/Instant/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.Instant.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => equals.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/equals/builtin.js b/polyfill/test/Instant/prototype/equals/builtin.js
deleted file mode 100644
index a0e0945d45..0000000000
--- a/polyfill/test/Instant/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: >
- Tests that Temporal.Instant.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/equals/instant-string.js b/polyfill/test/Instant/prototype/equals/instant-string.js
deleted file mode 100644
index b3924fe83d..0000000000
--- a/polyfill/test/Instant/prototype/equals/instant-string.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.equals(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.equals(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = instance.equals(str);
-assert.sameValue(result1, true, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = instance.equals(str);
-assert.sameValue(result2, false, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = instance.equals(str);
-assert.sameValue(result3, true, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = instance.equals(str);
-assert.sameValue(result4, false, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/Instant/prototype/equals/length.js b/polyfill/test/Instant/prototype/equals/length.js
deleted file mode 100644
index 8206960957..0000000000
--- a/polyfill/test/Instant/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: Temporal.Instant.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/equals/name.js b/polyfill/test/Instant/prototype/equals/name.js
deleted file mode 100644
index e1c3d7c7d1..0000000000
--- a/polyfill/test/Instant/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: Temporal.Instant.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/equals/not-a-constructor.js b/polyfill/test/Instant/prototype/equals/not-a-constructor.js
deleted file mode 100644
index db2b3293dc..0000000000
--- a/polyfill/test/Instant/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: >
- Temporal.Instant.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.equals), false,
- "isConstructor(Temporal.Instant.prototype.equals)");
diff --git a/polyfill/test/Instant/prototype/equals/prop-desc.js b/polyfill/test/Instant/prototype/equals/prop-desc.js
deleted file mode 100644
index c34110ba21..0000000000
--- a/polyfill/test/Instant/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.equals
-description: The "equals" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.equals,
- "function",
- "`typeof Instant.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/prop-desc.js b/polyfill/test/Instant/prototype/prop-desc.js
deleted file mode 100644
index 69c73f5930..0000000000
--- a/polyfill/test/Instant/prototype/prop-desc.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-instant-objects
-description: The "prototype" property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const { Instant } = Temporal;
-
-assert.sameValue(typeof Instant.prototype, "object");
-assert.notSameValue(Instant.prototype, null);
-
-verifyProperty(Instant, "prototype", {
- writable: false,
- enumerable: false,
- configurable: false,
-});
diff --git a/polyfill/test/Instant/prototype/round/branding.js b/polyfill/test/Instant/prototype/round/branding.js
deleted file mode 100644
index 116f31b767..0000000000
--- a/polyfill/test/Instant/prototype/round/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const round = Temporal.Instant.prototype.round;
-
-assert.sameValue(typeof round, "function");
-
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => round.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/round/builtin.js b/polyfill/test/Instant/prototype/round/builtin.js
deleted file mode 100644
index 42779f4180..0000000000
--- a/polyfill/test/Instant/prototype/round/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: >
- Tests that Temporal.Instant.prototype.round
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.round),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.round),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.round),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.round.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/round/length.js b/polyfill/test/Instant/prototype/round/length.js
deleted file mode 100644
index 1be5bec8c9..0000000000
--- a/polyfill/test/Instant/prototype/round/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Temporal.Instant.prototype.round.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.round, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/round/name.js b/polyfill/test/Instant/prototype/round/name.js
deleted file mode 100644
index 9d1f03e7c6..0000000000
--- a/polyfill/test/Instant/prototype/round/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Temporal.Instant.prototype.round.name is "round".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.round, "name", {
- value: "round",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/round/not-a-constructor.js b/polyfill/test/Instant/prototype/round/not-a-constructor.js
deleted file mode 100644
index eec9f33586..0000000000
--- a/polyfill/test/Instant/prototype/round/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: >
- Temporal.Instant.prototype.round does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.round();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.round), false,
- "isConstructor(Temporal.Instant.prototype.round)");
diff --git a/polyfill/test/Instant/prototype/round/options-wrong-type.js b/polyfill/test/Instant/prototype/round/options-wrong-type.js
deleted file mode 100644
index 455401e261..0000000000
--- a/polyfill/test/Instant/prototype/round/options-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: TypeError thrown when options argument is missing or a primitive
-features: [Symbol, Temporal]
----*/
-
-const values = [
- undefined,
- null,
- true,
- "string",
- Symbol(),
- 1,
- 2n,
-];
-
-const instance = new Temporal.Instant(0n);
-assert.throws(TypeError, () => instance.round(), "missing argument");
-for (const value of values) {
- assert.throws(TypeError, () => instance.round(value), `argument ${String(value)}`);
-}
diff --git a/polyfill/test/Instant/prototype/round/prop-desc.js b/polyfill/test/Instant/prototype/round/prop-desc.js
deleted file mode 100644
index fda6d47cd3..0000000000
--- a/polyfill/test/Instant/prototype/round/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: The "round" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.round,
- "function",
- "`typeof Instant.prototype.round` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "round", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/round/roundingincrement-nan.js b/polyfill/test/Instant/prototype/round/roundingincrement-nan.js
deleted file mode 100644
index d76a859a9a..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingincrement-nan.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.round step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *true*).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
-assert.throws(RangeError, () => instant.round({ smallestUnit: 'second', roundingIncrement: NaN }));
diff --git a/polyfill/test/Instant/prototype/round/roundingincrement-non-integer.js b/polyfill/test/Instant/prototype/round/roundingincrement-non-integer.js
deleted file mode 100644
index 859b767b10..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_000_000_005n);
-const result = instant.round({ smallestUnit: "nanosecond", roundingIncrement: 2.5 });
-assert.sameValue(result.epochNanoseconds, 1_000_000_000_000_000_006n, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/Instant/prototype/round/roundingincrement-out-of-range.js b/polyfill/test/Instant/prototype/round/roundingincrement-out-of-range.js
deleted file mode 100644
index 93f3e3273a..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_000_000_005n);
-assert.throws(RangeError, () => instant.round({ smallestUnit: "nanoseconds", roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => instant.round({ smallestUnit: "nanoseconds", roundingIncrement: -1 }));
-assert.throws(RangeError, () => instant.round({ smallestUnit: "nanoseconds", roundingIncrement: 0 }));
-assert.throws(RangeError, () => instant.round({ smallestUnit: "nanoseconds", roundingIncrement: Infinity }));
diff --git a/polyfill/test/Instant/prototype/round/roundingincrement-undefined.js b/polyfill/test/Instant/prototype/round/roundingincrement-undefined.js
deleted file mode 100644
index 918b377243..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingincrement-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.round step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *true*).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
-
-const explicit = instant.round({ smallestUnit: 'second', roundingIncrement: undefined });
-assert.sameValue(explicit.epochNanoseconds, 1_000_000_001_000_000_000n, "default roundingIncrement is 1");
-
-const implicit = instant.round({ smallestUnit: 'second' });
-assert.sameValue(implicit.epochNanoseconds, 1_000_000_001_000_000_000n, "default roundingIncrement is 1");
diff --git a/polyfill/test/Instant/prototype/round/roundingincrement-wrong-type.js b/polyfill/test/Instant/prototype/round/roundingincrement-wrong-type.js
deleted file mode 100644
index b7c862ff00..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.round step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => instant.round({ smallestUnit: 'second', roundingIncrement }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_001_000_000_000n, descr),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_000_000_000n, descr),
-);
diff --git a/polyfill/test/Instant/prototype/round/roundingmode-invalid-string.js b/polyfill/test/Instant/prototype/round/roundingmode-invalid-string.js
deleted file mode 100644
index 7f3ed29f4a..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-assert.throws(RangeError, () => instant.round({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Instant/prototype/round/roundingmode-undefined.js b/polyfill/test/Instant/prototype/round/roundingmode-undefined.js
deleted file mode 100644
index 7421d6a1fb..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-
-const explicit1 = instant.round({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1.epochNanoseconds, 1_000_000_000_123_988_000n, "default roundingMode is halfExpand");
-const implicit1 = instant.round({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1.epochNanoseconds, 1_000_000_000_123_988_000n, "default roundingMode is halfExpand");
-
-const explicit2 = instant.round({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2.epochNanoseconds, 1_000_000_000_124_000_000n, "default roundingMode is halfExpand");
-const implicit2 = instant.round({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2.epochNanoseconds, 1_000_000_000_124_000_000n, "default roundingMode is halfExpand");
-
-const explicit3 = instant.round({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3.epochNanoseconds, 1_000_000_000_000_000_000n, "default roundingMode is halfExpand");
-const implicit3 = instant.round({ smallestUnit: "second" });
-assert.sameValue(implicit3.epochNanoseconds, 1_000_000_000_000_000_000n, "default roundingMode is halfExpand");
diff --git a/polyfill/test/Instant/prototype/round/roundingmode-wrong-type.js b/polyfill/test/Instant/prototype/round/roundingmode-wrong-type.js
deleted file mode 100644
index e21ad2a845..0000000000
--- a/polyfill/test/Instant/prototype/round/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "halfExpand",
- (roundingMode) => instant.round({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_123_988_000n, descr),
-);
diff --git a/polyfill/test/Instant/prototype/round/smallestunit-invalid-string.js b/polyfill/test/Instant/prototype/round/smallestunit-invalid-string.js
deleted file mode 100644
index 298c3ce64d..0000000000
--- a/polyfill/test/Instant/prototype/round/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-assert.throws(RangeError, () => instant.round({ smallestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/round/smallestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/round/smallestunit-plurals-accepted.js
deleted file mode 100644
index 67765e46c1..0000000000
--- a/polyfill/test/Instant/prototype/round/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => instant.round({ smallestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/round/smallestunit-wrong-type.js b/polyfill/test/Instant/prototype/round/smallestunit-wrong-type.js
deleted file mode 100644
index b7297b688d..0000000000
--- a/polyfill/test/Instant/prototype/round/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => instant.round({ smallestUnit }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_123_988_000n, descr),
-);
diff --git a/polyfill/test/Instant/prototype/round/subclassing-ignored.js b/polyfill/test/Instant/prototype/round/subclassing-ignored.js
deleted file mode 100644
index ad9297663c..0000000000
--- a/polyfill/test/Instant/prototype/round/subclassing-ignored.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.round
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Instant,
- [10n],
- "round",
- [{ smallestUnit: 'second', roundingMode: 'ceil' }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 1_000_000_000n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/prototype/since/argument-zoneddatetime.js b/polyfill/test/Instant/prototype/since/argument-zoneddatetime.js
deleted file mode 100644
index af59801832..0000000000
--- a/polyfill/test/Instant/prototype/since/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.instant.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalInstant(_other_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const instant = new Temporal.Instant(1_000_000_000_000_000_000n);
- const result = instant.since(datetime);
- assert.sameValue(result.total({ unit: "nanoseconds" }), -987654321, "nanoseconds result");
-});
diff --git a/polyfill/test/Instant/prototype/since/branding.js b/polyfill/test/Instant/prototype/since/branding.js
deleted file mode 100644
index 0716c625d0..0000000000
--- a/polyfill/test/Instant/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.Instant.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => since.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/since/builtin.js b/polyfill/test/Instant/prototype/since/builtin.js
deleted file mode 100644
index ee873bee6e..0000000000
--- a/polyfill/test/Instant/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: >
- Tests that Temporal.Instant.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/since/instant-string.js b/polyfill/test/Instant/prototype/since/instant-string.js
deleted file mode 100644
index 002fbb6257..0000000000
--- a/polyfill/test/Instant/prototype/since/instant-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.since(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.since(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = instance.since(str);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = instance.since(str);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 0, 0, 3600, 0, 0, 0, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = instance.since(str);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = instance.since(str);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 0, 0, 3600, 0, 0, 0, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/Instant/prototype/since/largestunit-invalid-string.js b/polyfill/test/Instant/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index aa57965230..0000000000
--- a/polyfill/test/Instant/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-assert.throws(RangeError, () => later.since(earlier, { largestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index ef3cce24c1..0000000000
--- a/polyfill/test/Instant/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_086_403_661_988_655_322n);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/since/largestunit-undefined.js b/polyfill/test/Instant/prototype/since/largestunit-undefined.js
deleted file mode 100644
index 71dfed5710..0000000000
--- a/polyfill/test/Instant/prototype/since/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-
-const explicit = later.since(earlier, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default largestUnit is second");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default largestUnit is second");
diff --git a/polyfill/test/Instant/prototype/since/largestunit-wrong-type.js b/polyfill/test/Instant/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index 1d12bef6eb..0000000000
--- a/polyfill/test/Instant/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "hour",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/Instant/prototype/since/length.js b/polyfill/test/Instant/prototype/since/length.js
deleted file mode 100644
index 558c134b71..0000000000
--- a/polyfill/test/Instant/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Temporal.Instant.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/since/name.js b/polyfill/test/Instant/prototype/since/name.js
deleted file mode 100644
index 64e3efa7cb..0000000000
--- a/polyfill/test/Instant/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Temporal.Instant.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/since/not-a-constructor.js b/polyfill/test/Instant/prototype/since/not-a-constructor.js
deleted file mode 100644
index ead085706c..0000000000
--- a/polyfill/test/Instant/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: >
- Temporal.Instant.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.since), false,
- "isConstructor(Temporal.Instant.prototype.since)");
diff --git a/polyfill/test/Instant/prototype/since/options-undefined.js b/polyfill/test/Instant/prototype/since/options-undefined.js
deleted file mode 100644
index d631ec2214..0000000000
--- a/polyfill/test/Instant/prototype/since/options-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const earlier = new Temporal.Instant(957270896_987_654_321n);
-const later = new Temporal.Instant(959949296_987_654_322n);
-
-const explicit = later.since(earlier, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is seconds");
-assert.sameValue(explicit.months, 0, "default largest unit is seconds");
-assert.sameValue(explicit.weeks, 0, "default largest unit is seconds");
-assert.sameValue(explicit.days, 0, "default largest unit is seconds");
-assert.sameValue(explicit.hours, 0, "default largest unit is seconds");
-assert.sameValue(explicit.minutes, 0, "default largest unit is seconds");
-assert.sameValue(explicit.seconds, 2678400, "default largest unit is seconds");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = later.since(earlier);
-assert.sameValue(implicit.years, 0, "default largest unit is seconds");
-assert.sameValue(implicit.months, 0, "default largest unit is seconds");
-assert.sameValue(implicit.weeks, 0, "default largest unit is seconds");
-assert.sameValue(implicit.days, 0, "default largest unit is seconds");
-assert.sameValue(implicit.hours, 0, "default largest unit is seconds");
-assert.sameValue(implicit.minutes, 0, "default largest unit is seconds");
-assert.sameValue(implicit.seconds, 2678400, "default largest unit is seconds");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/Instant/prototype/since/prop-desc.js b/polyfill/test/Instant/prototype/since/prop-desc.js
deleted file mode 100644
index c2d01ec43a..0000000000
--- a/polyfill/test/Instant/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: The "since" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.since,
- "function",
- "`typeof Instant.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/since/roundingincrement-nan.js b/polyfill/test/Instant/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index dd38a0fcbd..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/Instant/prototype/since/roundingincrement-non-integer.js b/polyfill/test/Instant/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index 4df25adc67..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_000_000_000_000_005n);
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/Instant/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/Instant/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index a82d37683e..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_000_000_000_000_005n);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/Instant/prototype/since/roundingincrement-undefined.js b/polyfill/test/Instant/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index 7292eb9f64..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/Instant/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/Instant/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index 1993f95373..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/since/roundingmode-invalid-string.js b/polyfill/test/Instant/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index 66f94cf2ca..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Instant/prototype/since/roundingmode-undefined.js b/polyfill/test/Instant/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index 3489a14844..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-
-const explicit1 = later.since(earlier, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = later.since(earlier, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = later.since(earlier, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 0, 0, 90061, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = later.since(earlier, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 0, 0, 90061, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = later.since(earlier, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 0, 0, 90061, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = later.since(earlier, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 0, 0, 90061, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/Instant/prototype/since/roundingmode-wrong-type.js b/polyfill/test/Instant/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index 45a673ad92..0000000000
--- a/polyfill/test/Instant/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/since/smallestunit-invalid-string.js b/polyfill/test/Instant/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 64b00b99bc..0000000000
--- a/polyfill/test/Instant/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index bd38110299..0000000000
--- a/polyfill/test/Instant/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_086_403_661_988_655_322n);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/since/smallestunit-undefined.js b/polyfill/test/Instant/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index 2193dbd54a..0000000000
--- a/polyfill/test/Instant/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/Instant/prototype/since/smallestunit-wrong-type.js b/polyfill/test/Instant/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 685d67dc34..0000000000
--- a/polyfill/test/Instant/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/Instant/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 4ae54767a6..0000000000
--- a/polyfill/test/Instant/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
-
-const resultHours = instance.subtract("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_799n, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_379n, "negative fractional minutes");
diff --git a/polyfill/test/Instant/prototype/subtract/argument-string.js b/polyfill/test/Instant/prototype/subtract/argument-string.js
deleted file mode 100644
index 92fcec8b55..0000000000
--- a/polyfill/test/Instant/prototype/subtract/argument-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: A string is parsed into the correct object when passed as the argument
-features: [Temporal]
----*/
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-const result = instance.subtract("PT3H");
-assert.sameValue(result.epochNanoseconds, -10_790_000_000_000n, "epochNanoseconds result");
diff --git a/polyfill/test/Instant/prototype/subtract/branding.js b/polyfill/test/Instant/prototype/subtract/branding.js
deleted file mode 100644
index d7c307e3f9..0000000000
--- a/polyfill/test/Instant/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.Instant.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => subtract.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/subtract/builtin.js b/polyfill/test/Instant/prototype/subtract/builtin.js
deleted file mode 100644
index 6943c7d8f5..0000000000
--- a/polyfill/test/Instant/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: >
- Tests that Temporal.Instant.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/Instant/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index 17fa7b25df..0000000000
--- a/polyfill/test/Instant/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Instant.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.instant.prototype.subtract
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Instant/prototype/subtract/length.js b/polyfill/test/Instant/prototype/subtract/length.js
deleted file mode 100644
index dc4716b66e..0000000000
--- a/polyfill/test/Instant/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Temporal.Instant.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/subtract/name.js b/polyfill/test/Instant/prototype/subtract/name.js
deleted file mode 100644
index 7803eda270..0000000000
--- a/polyfill/test/Instant/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Temporal.Instant.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/Instant/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 2aca9588ff..0000000000
--- a/polyfill/test/Instant/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.Instant.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.instant.prototype.subtract
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochSeconds(10);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }));
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/Instant/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/Instant/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 544377aad0..0000000000
--- a/polyfill/test/Instant/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(1_000_000_000_000_000_000n);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/Instant/prototype/subtract/not-a-constructor.js b/polyfill/test/Instant/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 82745c49d9..0000000000
--- a/polyfill/test/Instant/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: >
- Temporal.Instant.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.subtract), false,
- "isConstructor(Temporal.Instant.prototype.subtract)");
diff --git a/polyfill/test/Instant/prototype/subtract/order-of-operations.js b/polyfill/test/Instant/prototype/subtract/order-of-operations.js
deleted file mode 100644
index 4ffe499d70..0000000000
--- a/polyfill/test/Instant/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(10n);
-const expected = [
- "get days",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get years",
-];
-const actual = [];
-const fields = {
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument);
-assert.sameValue(result.epochNanoseconds, -3661001000991n, "epochNanoseconds result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/Instant/prototype/subtract/prop-desc.js b/polyfill/test/Instant/prototype/subtract/prop-desc.js
deleted file mode 100644
index a6057946a9..0000000000
--- a/polyfill/test/Instant/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: The "subtract" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.subtract,
- "function",
- "`typeof Instant.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/subtract/result-out-of-range.js b/polyfill/test/Instant/prototype/subtract/result-out-of-range.js
deleted file mode 100644
index 83804b758c..0000000000
--- a/polyfill/test/Instant/prototype/subtract/result-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.add
-description: RangeError thrown if result is outside representable range
-features: [Temporal]
----*/
-
-const fields = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.Instant.fromEpochNanoseconds(-8640000_000_000_000_000_000n);
-
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1 }));
-});
diff --git a/polyfill/test/Instant/prototype/subtract/subclassing-ignored.js b/polyfill/test/Instant/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 8fe33354a3..0000000000
--- a/polyfill/test/Instant/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.subtract
-description: Objects of a subclass are never created as return values for subtract()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.Instant,
- [10n],
- "subtract",
- [{ nanoseconds: 5 }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 5n, "epochNanoseconds result");
- },
-);
diff --git a/polyfill/test/Instant/prototype/toJSON/basic.js b/polyfill/test/Instant/prototype/toJSON/basic.js
deleted file mode 100644
index 9e654434dc..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: Basic tests for toJSON()
-features: [Temporal]
----*/
-
-const instantBeforeEpoch = Temporal.Instant.from("1963-02-13T10:36:29.123456789+01:00");
-assert.sameValue(instantBeforeEpoch.toJSON(), "1963-02-13T09:36:29.123456789Z");
-
-const instantAfterEpoch = Temporal.Instant.from("1976-11-18T15:23:30.123456789+01:00");
-assert.sameValue(instantAfterEpoch.toJSON(), "1976-11-18T14:23:30.123456789Z");
-assert.sameValue(instantAfterEpoch.toJSON("+01:00"), "1976-11-18T14:23:30.123456789Z",
- "after epoch with ignored argument");
diff --git a/polyfill/test/Instant/prototype/toJSON/branding.js b/polyfill/test/Instant/prototype/toJSON/branding.js
deleted file mode 100644
index be2d3461e7..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.Instant.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toJSON.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/toJSON/builtin.js b/polyfill/test/Instant/prototype/toJSON/builtin.js
deleted file mode 100644
index 725f5f43b3..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: >
- Tests that Temporal.Instant.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/toJSON/length.js b/polyfill/test/Instant/prototype/toJSON/length.js
deleted file mode 100644
index 9fbcb1fe55..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: Temporal.Instant.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toJSON/name.js b/polyfill/test/Instant/prototype/toJSON/name.js
deleted file mode 100644
index 4cd6d5af4d..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: Temporal.Instant.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toJSON/negative-epochnanoseconds.js b/polyfill/test/Instant/prototype/toJSON/negative-epochnanoseconds.js
deleted file mode 100644
index 18d9cd8a47..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.Instant(-13849764_999_999_999n);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toJSON();
-assert.sameValue(result, "1969-07-24T16:50:35.000000001Z");
diff --git a/polyfill/test/Instant/prototype/toJSON/not-a-constructor.js b/polyfill/test/Instant/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 12fcee1be7..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: >
- Temporal.Instant.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.toJSON), false,
- "isConstructor(Temporal.Instant.prototype.toJSON)");
diff --git a/polyfill/test/Instant/prototype/toJSON/prop-desc.js b/polyfill/test/Instant/prototype/toJSON/prop-desc.js
deleted file mode 100644
index 05b9d082d7..0000000000
--- a/polyfill/test/Instant/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tojson
-description: The "toJSON" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.toJSON,
- "function",
- "`typeof Instant.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toLocaleString/branding.js b/polyfill/test/Instant/prototype/toLocaleString/branding.js
deleted file mode 100644
index aa3f053759..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.Instant.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/toLocaleString/builtin.js b/polyfill/test/Instant/prototype/toLocaleString/builtin.js
deleted file mode 100644
index 7f6f392a1a..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: >
- Tests that Temporal.Instant.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/toLocaleString/length.js b/polyfill/test/Instant/prototype/toLocaleString/length.js
deleted file mode 100644
index 9e8b438c00..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: Temporal.Instant.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toLocaleString/locales-undefined.js b/polyfill/test/Instant/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index c00ac294a4..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [BigInt, Temporal]
----*/
-
-const instant = new Temporal.Instant(957270896_987_650_000n);
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const expected = defaultFormatter.format(instant);
-
-const actualExplicit = instant.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = instant.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/Instant/prototype/toLocaleString/name.js b/polyfill/test/Instant/prototype/toLocaleString/name.js
deleted file mode 100644
index af3b8f82c0..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: Temporal.Instant.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/Instant/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index a61747563d..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: >
- Temporal.Instant.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.toLocaleString), false,
- "isConstructor(Temporal.Instant.prototype.toLocaleString)");
diff --git a/polyfill/test/Instant/prototype/toLocaleString/options-conflict.js b/polyfill/test/Instant/prototype/toLocaleString/options-conflict.js
deleted file mode 100644
index 490d6c27df..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/options-conflict.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Kate Miháliková. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sup-temporal.instant.prototype.tolocalestring
-description: >
- Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
-info: |
- Using sec-temporal-getdatetimeformatpattern:
- GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
-
- 1. If dateStyle is not undefined or timeStyle is not undefined, then
- a. For each row in Table 7, except the header row, do
- i. Let prop be the name given in the Property column of the row.
- ii. Let p be opt.[[]].
- iii. If p is not undefined, then
- 1. Throw a TypeError exception.
-features: [BigInt, Temporal]
----*/
-
-// Table 14 - Supported fields + example value for each field
-const conflictingOptions = [
- [ "weekday", "short" ],
- [ "era", "short" ],
- [ "year", "numeric" ],
- [ "month", "numeric" ],
- [ "day", "numeric" ],
- [ "hour", "numeric" ],
- [ "minute", "numeric" ],
- [ "second", "numeric" ],
- [ "dayPeriod", "short" ],
- [ "fractionalSecondDigits", 3 ],
-];
-const instant = new Temporal.Instant(957270896_987_650_000n);
-
-assert.sameValue(typeof instant.toLocaleString("en", { dateStyle: "short" }), "string");
-assert.sameValue(typeof instant.toLocaleString("en", { timeStyle: "short" }), "string");
-
-for (const [ option, value ] of conflictingOptions) {
- assert.throws(TypeError, function() {
- instant.toLocaleString("en", { [option]: value, dateStyle: "short" });
- }, `instant.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
-
- assert.throws(TypeError, function() {
- instant.toLocaleString("en", { [option]: value, timeStyle: "short" });
- }, `instant.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
-}
diff --git a/polyfill/test/Instant/prototype/toLocaleString/options-undefined.js b/polyfill/test/Instant/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 85a9adb2c4..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const instant = new Temporal.Instant(957270896_987_650_000n);
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const expected = defaultFormatter.format(instant);
-
-const actualExplicit = instant.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = instant.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/Instant/prototype/toLocaleString/prop-desc.js b/polyfill/test/Instant/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index 1b2f50916d..0000000000
--- a/polyfill/test/Instant/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.toLocaleString,
- "function",
- "`typeof Instant.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toString/basic.js b/polyfill/test/Instant/prototype/toString/basic.js
deleted file mode 100644
index 8b4ca47a84..0000000000
--- a/polyfill/test/Instant/prototype/toString/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Basic tests for toString().
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.Instant(217175010_123_456_789n);
-assert.sameValue(afterEpoch.toString(), "1976-11-18T14:23:30.123456789Z", "basic toString() after epoch");
-
-const beforeEpoch = new Temporal.Instant(-217175010_876_543_211n);
-assert.sameValue(beforeEpoch.toString(), "1963-02-13T09:36:29.123456789Z", "basic toString() before epoch");
diff --git a/polyfill/test/Instant/prototype/toString/branding.js b/polyfill/test/Instant/prototype/toString/branding.js
deleted file mode 100644
index 55a72d9a49..0000000000
--- a/polyfill/test/Instant/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.Instant.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toString.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/toString/builtin.js b/polyfill/test/Instant/prototype/toString/builtin.js
deleted file mode 100644
index 8be3de6aa3..0000000000
--- a/polyfill/test/Instant/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: >
- Tests that Temporal.Instant.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-invalid-string.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-invalid-string.js
deleted file mode 100644
index f75db5a7ff..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option not one of the allowed string values
-info: |
- sec-getstringornumberoption step 4:
- 4. If _stringValues_ is not *undefined* and _stringValues_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: "other string" }));
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-nan.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-nan.js
deleted file mode 100644
index a374669e1e..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: NaN }));
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-non-integer.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-non-integer.js
deleted file mode 100644
index beb567b688..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-non-integer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Rounding for fractionalSecondDigits option
-info: |
- sec-getstringornumberoption step 3.b:
- b. Return floor(ℝ(_value_)).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-
-const string = instant.toString({ fractionalSecondDigits: 2.5 });
-assert.sameValue(string, "2001-09-09T01:46:40.98Z", "fractionalSecondDigits 2.5 floors to 2");
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-out-of-range.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-out-of-range.js
deleted file mode 100644
index 4506d3ef21..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-out-of-range.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option out of range
-info: |
- sec-getstringornumberoption step 3.a:
- a. If _value_ < _minimum_ or _value_ > _maximum_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: -1 }));
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: 10 }));
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: -Infinity }));
-assert.throws(RangeError, () => instant.toString({ fractionalSecondDigits: Infinity }));
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-undefined.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-undefined.js
deleted file mode 100644
index 7bed467685..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Fallback value for fractionalSecondDigits option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, *"stringOrNumber"*, *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-
-const explicit = instant.toString({ fractionalSecondDigits: undefined });
-assert.sameValue(explicit, "2001-09-09T01:46:40.98765Z", "default fractionalSecondDigits is auto");
-
-const implicit = instant.toString({});
-assert.sameValue(implicit, "2001-09-09T01:46:40.98765Z", "default fractionalSecondDigits is auto");
diff --git a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-wrong-type.js b/polyfill/test/Instant/prototype/toString/fractionalseconddigits-wrong-type.js
deleted file mode 100644
index 26eb23a303..0000000000
--- a/polyfill/test/Instant/prototype/toString/fractionalseconddigits-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Type conversions for fractionalSecondDigits option
-info: |
- sec-getoption steps 8–9:
- 8. Else if _type_ is Number, then
- a. Set _value_ to ? ToNumber(value).
- b. ...
- 9. Else,
- a. Set _value_ to ? ToString(value).
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 6:
- 6. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_987_650_000n);
-TemporalHelpers.checkFractionalSecondDigitsOptionWrongType(instant);
diff --git a/polyfill/test/Instant/prototype/toString/length.js b/polyfill/test/Instant/prototype/toString/length.js
deleted file mode 100644
index 9e3d79fd03..0000000000
--- a/polyfill/test/Instant/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Temporal.Instant.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toString/name.js b/polyfill/test/Instant/prototype/toString/name.js
deleted file mode 100644
index 987192428d..0000000000
--- a/polyfill/test/Instant/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Temporal.Instant.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toString/negative-epochnanoseconds.js b/polyfill/test/Instant/prototype/toString/negative-epochnanoseconds.js
deleted file mode 100644
index 7839fd6336..0000000000
--- a/polyfill/test/Instant/prototype/toString/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.Instant(-13849764_999_999_999n);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toString();
-assert.sameValue(result, "1969-07-24T16:50:35.000000001Z");
diff --git a/polyfill/test/Instant/prototype/toString/not-a-constructor.js b/polyfill/test/Instant/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 424b2abdc1..0000000000
--- a/polyfill/test/Instant/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: >
- Temporal.Instant.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.toString), false,
- "isConstructor(Temporal.Instant.prototype.toString)");
diff --git a/polyfill/test/Instant/prototype/toString/options-undefined.js b/polyfill/test/Instant/prototype/toString/options-undefined.js
deleted file mode 100644
index 08dcbab63c..0000000000
--- a/polyfill/test/Instant/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-includes: [compareArray.js]
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [];
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.12345Z");
-
-Object.defineProperty(Temporal.TimeZone, "from", {
- get() {
- actual.push("get Temporal.TimeZone.from");
- return function(identifier) {
- actual.push("call Temporal.TimeZone.from");
- assert.sameValue(identifier, "UTC");
- };
- },
-});
-
-assert.sameValue(
- instant.toString(),
- "1975-02-02T14:25:36.12345Z",
- "default time zone is none, precision is auto, and rounding is trunc"
-);
-assert.compareArray(actual, expected);
-
-assert.sameValue(
- instant.toString(undefined),
- "1975-02-02T14:25:36.12345Z",
- "default time zone is none, precision is auto, and rounding is trunc"
-);
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Instant/prototype/toString/precision.js b/polyfill/test/Instant/prototype/toString/precision.js
deleted file mode 100644
index 469d806b4a..0000000000
--- a/polyfill/test/Instant/prototype/toString/precision.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: toString() produces a fractional part of the correct length
-features: [Temporal]
----*/
-
-const { Instant } = Temporal;
-
-const isoString = '2020-01-01T23:58:57.012034Z';
-const instant = Instant.from(isoString);
-const instantIsoStrMicros = instant.toString({
- smallestUnit: 'microseconds'
-});
-
-assert.sameValue(instantIsoStrMicros, isoString);
diff --git a/polyfill/test/Instant/prototype/toString/prop-desc.js b/polyfill/test/Instant/prototype/toString/prop-desc.js
deleted file mode 100644
index 9e175913a6..0000000000
--- a/polyfill/test/Instant/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: The "toString" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.toString,
- "function",
- "`typeof Instant.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toString/roundingmode-invalid-string.js b/polyfill/test/Instant/prototype/toString/roundingmode-invalid-string.js
deleted file mode 100644
index 4a4099b108..0000000000
--- a/polyfill/test/Instant/prototype/toString/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-assert.throws(RangeError, () => instant.toString({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Instant/prototype/toString/roundingmode-undefined.js b/polyfill/test/Instant/prototype/toString/roundingmode-undefined.js
deleted file mode 100644
index 43a23b933e..0000000000
--- a/polyfill/test/Instant/prototype/toString/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-
-const explicit1 = instant.toString({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1, "2001-09-09T01:46:40.123987Z", "default roundingMode is trunc");
-const implicit1 = instant.toString({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1, "2001-09-09T01:46:40.123987Z", "default roundingMode is trunc");
-
-const explicit2 = instant.toString({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2, "2001-09-09T01:46:40.123Z", "default roundingMode is trunc");
-const implicit2 = instant.toString({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2, "2001-09-09T01:46:40.123Z", "default roundingMode is trunc");
-
-const explicit3 = instant.toString({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3, "2001-09-09T01:46:40Z", "default roundingMode is trunc");
-const implicit3 = instant.toString({ smallestUnit: "second" });
-assert.sameValue(implicit3, "2001-09-09T01:46:40Z", "default roundingMode is trunc");
diff --git a/polyfill/test/Instant/prototype/toString/roundingmode-wrong-type.js b/polyfill/test/Instant/prototype/toString/roundingmode-wrong-type.js
deleted file mode 100644
index 661b63a743..0000000000
--- a/polyfill/test/Instant/prototype/toString/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => instant.toString({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.123987Z", descr),
-);
diff --git a/polyfill/test/Instant/prototype/toString/smallestunit-invalid-string.js b/polyfill/test/Instant/prototype/toString/smallestunit-invalid-string.js
deleted file mode 100644
index f6ba6e30cc..0000000000
--- a/polyfill/test/Instant/prototype/toString/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-assert.throws(RangeError, () => instant.toString({ smallestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/toString/smallestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/toString/smallestunit-plurals-accepted.js
deleted file mode 100644
index 314bbb55b0..0000000000
--- a/polyfill/test/Instant/prototype/toString/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_456_789n);
-const validUnits = [
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => instant.toString({ smallestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/toString/smallestunit-undefined.js b/polyfill/test/Instant/prototype/toString/smallestunit-undefined.js
deleted file mode 100644
index 0a448b8dc3..0000000000
--- a/polyfill/test/Instant/prototype/toString/smallestunit-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Fallback value for smallestUnit option
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-
-const explicit1 = instant.toString({ smallestUnit: undefined, fractionalSecondDigits: 6 });
-assert.sameValue(explicit1, "2001-09-09T01:46:40.123987Z", "default smallestUnit defers to fractionalSecondDigits");
-const implicit1 = instant.toString({ fractionalSecondDigits: 6 });
-assert.sameValue(implicit1, "2001-09-09T01:46:40.123987Z", "default smallestUnit defers to fractionalSecondDigits");
-
-const explicit2 = instant.toString({ smallestUnit: undefined, fractionalSecondDigits: 3 });
-assert.sameValue(explicit2, "2001-09-09T01:46:40.123Z", "default smallestUnit defers to fractionalSecondDigits");
-const implicit2 = instant.toString({ fractionalSecondDigits: 3 });
-assert.sameValue(implicit2, "2001-09-09T01:46:40.123Z", "default smallestUnit defers to fractionalSecondDigits");
diff --git a/polyfill/test/Instant/prototype/toString/smallestunit-valid-units.js b/polyfill/test/Instant/prototype/toString/smallestunit-valid-units.js
deleted file mode 100644
index 191eec97ed..0000000000
--- a/polyfill/test/Instant/prototype/toString/smallestunit-valid-units.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Valid units for the smallestUnit option
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_456_789n);
-
-assert.sameValue(instant.toString({ smallestUnit: "minute" }), "2001-09-09T01:46Z");
-assert.sameValue(instant.toString({ smallestUnit: "second" }), "2001-09-09T01:46:40Z");
-assert.sameValue(instant.toString({ smallestUnit: "millisecond" }), "2001-09-09T01:46:40.123Z");
-assert.sameValue(instant.toString({ smallestUnit: "microsecond" }), "2001-09-09T01:46:40.123456Z");
-assert.sameValue(instant.toString({ smallestUnit: "nanosecond" }), "2001-09-09T01:46:40.123456789Z");
-
-const notValid = [
- "era",
- "year",
- "month",
- "week",
- "day",
- "hour",
-];
-
-notValid.forEach((smallestUnit) => {
- assert.throws(RangeError, () => instant.toString({ smallestUnit }), smallestUnit);
-});
diff --git a/polyfill/test/Instant/prototype/toString/smallestunit-wrong-type.js b/polyfill/test/Instant/prototype/toString/smallestunit-wrong-type.js
deleted file mode 100644
index 2c82e66cbd..0000000000
--- a/polyfill/test/Instant/prototype/toString/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = new Temporal.Instant(1_000_000_000_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => instant.toString({ smallestUnit }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.123987Z", descr),
-);
diff --git a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index fbed542c45..0000000000
--- a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => instant.toString({ timeZone }));
-});
diff --git a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 6697790419..0000000000
--- a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => instant.toString({ timeZone }));
-});
diff --git a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 1c76fea6e2..0000000000
--- a/polyfill/test/Instant/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(TypeError, () => instant.toString({ timeZone }));
-});
diff --git a/polyfill/test/Instant/prototype/toString/timezone-string-datetime.js b/polyfill/test/Instant/prototype/toString/timezone-string-datetime.js
deleted file mode 100644
index 7097708233..0000000000
--- a/polyfill/test/Instant/prototype/toString/timezone-string-datetime.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-includes: [arrayContains.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toString({ timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toString({ timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toString({ timeZone });
-arrayContains(result1, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toString({ timeZone: { timeZone } });
-arrayContains(result2, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toString({ timeZone });
-arrayContains(result3, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toString({ timeZone: { timeZone } });
-arrayContains(result4, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toString({ timeZone });
-arrayContains(result5, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toString({ timeZone: { timeZone } });
-arrayContains(result6, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toString({ timeZone });
-arrayContains(result7, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toString({ timeZone: { timeZone } });
-arrayContains(result8, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toString({ timeZone });
-arrayContains(result9, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toString({ timeZone: { timeZone } });
-arrayContains(result10, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/Instant/prototype/toString/timezone.js b/polyfill/test/Instant/prototype/toString/timezone.js
deleted file mode 100644
index 0be6957a22..0000000000
--- a/polyfill/test/Instant/prototype/toString/timezone.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tostring
-description: Passing a TimeZone to options calls getOffsetNanosecondsFor twice, but not toString
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456Z");
-const timeZone = new Proxy({
- name: "Custom/TimeZone",
-
- toString() {
- actual.push("call timeZone.toString");
- return TemporalHelpers.toPrimitiveObserver(actual, "Custom/TimeZone", "name");
- },
-
- getOffsetNanosecondsFor(instantArg) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instantArg.epochNanoseconds, instant.epochNanoseconds);
- return -8735135801679;
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-Object.defineProperty(Temporal.TimeZone, "from", {
- get() {
- actual.push("get Temporal.TimeZone.from");
- return undefined;
- },
-});
-
-assert.sameValue(instant.toString({ timeZone }), "1975-02-02T12:00:00.987654321-02:25:35.135801679");
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Instant/prototype/toStringTag/prop-desc.js b/polyfill/test/Instant/prototype/toStringTag/prop-desc.js
deleted file mode 100644
index 90e55d4b64..0000000000
--- a/polyfill/test/Instant/prototype/toStringTag/prop-desc.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype-@@tostringtag
-description: The @@toStringTag property of Temporal.Instant
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const { Instant } = Temporal;
-verifyProperty(Instant.prototype, Symbol.toStringTag, {
- value: "Temporal.Instant",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/branding.js b/polyfill/test/Instant/prototype/toZonedDateTime/branding.js
deleted file mode 100644
index 71409a387b..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toZonedDateTime = Temporal.Instant.prototype.toZonedDateTime;
-
-assert.sameValue(typeof toZonedDateTime, "function");
-
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/builtin.js b/polyfill/test/Instant/prototype/toZonedDateTime/builtin.js
deleted file mode 100644
index dad9a45457..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: >
- Tests that Temporal.Instant.prototype.toZonedDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.toZonedDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.toZonedDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.toZonedDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.toZonedDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/calendar-temporal-object.js b/polyfill/test/Instant/prototype/toZonedDateTime/calendar-temporal-object.js
deleted file mode 100644
index f747c690a9..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.instant.prototype.tozoneddatetime step 6:
- 6. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- const result = instant.toZonedDateTime({ timeZone: "UTC", calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/length.js b/polyfill/test/Instant/prototype/toZonedDateTime/length.js
deleted file mode 100644
index 58e8a326b4..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Temporal.Instant.prototype.toZonedDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toZonedDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/name.js b/polyfill/test/Instant/prototype/toZonedDateTime/name.js
deleted file mode 100644
index e2611e375c..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Temporal.Instant.prototype.toZonedDateTime.name is "toZonedDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toZonedDateTime, "name", {
- value: "toZonedDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/not-a-constructor.js b/polyfill/test/Instant/prototype/toZonedDateTime/not-a-constructor.js
deleted file mode 100644
index 5c6dcb5193..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: >
- Temporal.Instant.prototype.toZonedDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.toZonedDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.toZonedDateTime), false,
- "isConstructor(Temporal.Instant.prototype.toZonedDateTime)");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/plain-custom-timezone.js b/polyfill/test/Instant/prototype/toZonedDateTime/plain-custom-timezone.js
deleted file mode 100644
index 0c2d574e16..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/plain-custom-timezone.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: TimeZone.getPlainDateTimeFor is not called
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
-];
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z");
-const dateTime = Temporal.PlainDateTime.from("1963-07-02T12:00:00.987654321");
-const calendar = Temporal.Calendar.from("iso8601");
-const timeZone = new Proxy({
- getPlainDateTimeFor() {
- actual.push("call timeZone.getPlainDateTimeFor");
- return dateTime;
- }
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = instant.toZonedDateTime({ timeZone, calendar });
-assert.sameValue(result.epochNanoseconds, instant.epochNanoseconds);
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/prop-desc.js b/polyfill/test/Instant/prototype/toZonedDateTime/prop-desc.js
deleted file mode 100644
index 9269d9fbc4..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: The "toZonedDateTime" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.toZonedDateTime,
- "function",
- "`typeof Instant.prototype.toZonedDateTime` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "toZonedDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTime/timezone-string-datetime.js b/polyfill/test/Instant/prototype/toZonedDateTime/timezone-string-datetime.js
deleted file mode 100644
index 650765c7ed..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone, calendar: "iso8601" }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toZonedDateTime({ timeZone, calendar: "iso8601" });
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toZonedDateTime({ timeZone, calendar: "iso8601" });
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toZonedDateTime({ timeZone, calendar: "iso8601" });
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toZonedDateTime({ timeZone, calendar: "iso8601" });
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toZonedDateTime({ timeZone, calendar: "iso8601" });
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toZonedDateTime({ timeZone: { timeZone }, calendar: "iso8601" });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/branding.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/branding.js
deleted file mode 100644
index 091591a1ce..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toZonedDateTimeISO = Temporal.Instant.prototype.toZonedDateTimeISO;
-
-assert.sameValue(typeof toZonedDateTimeISO, "function");
-
-assert.throws(TypeError, () => toZonedDateTimeISO.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTimeISO.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => toZonedDateTimeISO.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/builtin.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/builtin.js
deleted file mode 100644
index f3b1670bcc..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: >
- Tests that Temporal.Instant.prototype.toZonedDateTimeISO
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.toZonedDateTimeISO),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.toZonedDateTimeISO),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.toZonedDateTimeISO),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.toZonedDateTimeISO.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/length.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/length.js
deleted file mode 100644
index b3de7d8384..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: Temporal.Instant.prototype.toZonedDateTimeISO.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toZonedDateTimeISO, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/name.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/name.js
deleted file mode 100644
index 70918b4bd1..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: Temporal.Instant.prototype.toZonedDateTimeISO.name is "toZonedDateTimeISO".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.toZonedDateTimeISO, "name", {
- value: "toZonedDateTimeISO",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/not-a-constructor.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/not-a-constructor.js
deleted file mode 100644
index 72f0327911..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: >
- Temporal.Instant.prototype.toZonedDateTimeISO does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.toZonedDateTimeISO();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.toZonedDateTimeISO), false,
- "isConstructor(Temporal.Instant.prototype.toZonedDateTimeISO)");
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/prop-desc.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/prop-desc.js
deleted file mode 100644
index 652a9dcc78..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: The "toZonedDateTimeISO" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.toZonedDateTimeISO,
- "function",
- "`typeof Instant.prototype.toZonedDateTimeISO` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "toZonedDateTimeISO", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/toZonedDateTimeISO/timezone-string-datetime.js b/polyfill/test/Instant/prototype/toZonedDateTimeISO/timezone-string-datetime.js
deleted file mode 100644
index 37b241b728..0000000000
--- a/polyfill/test/Instant/prototype/toZonedDateTimeISO/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetimeiso
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toZonedDateTimeISO(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toZonedDateTimeISO({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toZonedDateTimeISO(timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toZonedDateTimeISO({ timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toZonedDateTimeISO(timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toZonedDateTimeISO({ timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toZonedDateTimeISO(timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toZonedDateTimeISO({ timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toZonedDateTimeISO(timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toZonedDateTimeISO({ timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toZonedDateTimeISO(timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toZonedDateTimeISO({ timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/Instant/prototype/until/argument-zoneddatetime.js b/polyfill/test/Instant/prototype/until/argument-zoneddatetime.js
deleted file mode 100644
index de0305a810..0000000000
--- a/polyfill/test/Instant/prototype/until/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.instant.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalInstant(_other_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const instant = new Temporal.Instant(1_000_000_000_000_000_000n);
- const result = instant.until(datetime);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 987654321, "nanoseconds result");
-});
diff --git a/polyfill/test/Instant/prototype/until/branding.js b/polyfill/test/Instant/prototype/until/branding.js
deleted file mode 100644
index 70fb066c5e..0000000000
--- a/polyfill/test/Instant/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.Instant.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => until.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/until/builtin.js b/polyfill/test/Instant/prototype/until/builtin.js
deleted file mode 100644
index 53899eb07d..0000000000
--- a/polyfill/test/Instant/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: >
- Tests that Temporal.Instant.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/until/instant-string.js b/polyfill/test/Instant/prototype/until/instant-string.js
deleted file mode 100644
index c300ad57cc..0000000000
--- a/polyfill/test/Instant/prototype/until/instant-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Instant(0n);
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.until(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.until(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = instance.until(str);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = instance.until(str);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 0, 0, -3600, 0, 0, 0, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = instance.until(str);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = instance.until(str);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 0, 0, -3600, 0, 0, 0, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/Instant/prototype/until/largestunit-invalid-string.js b/polyfill/test/Instant/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index fc9ab07b5e..0000000000
--- a/polyfill/test/Instant/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-assert.throws(RangeError, () => earlier.until(later, { largestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index ac3e5ba325..0000000000
--- a/polyfill/test/Instant/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_086_403_661_988_655_322n);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/until/largestunit-undefined.js b/polyfill/test/Instant/prototype/until/largestunit-undefined.js
deleted file mode 100644
index b769ac2e81..0000000000
--- a/polyfill/test/Instant/prototype/until/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-
-const explicit = earlier.until(later, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default largestUnit is second");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default largestUnit is second");
diff --git a/polyfill/test/Instant/prototype/until/largestunit-wrong-type.js b/polyfill/test/Instant/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index c5c9c2c084..0000000000
--- a/polyfill/test/Instant/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "hour",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/Instant/prototype/until/length.js b/polyfill/test/Instant/prototype/until/length.js
deleted file mode 100644
index a226c7a24f..0000000000
--- a/polyfill/test/Instant/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Temporal.Instant.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/until/name.js b/polyfill/test/Instant/prototype/until/name.js
deleted file mode 100644
index c2dd28a663..0000000000
--- a/polyfill/test/Instant/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Temporal.Instant.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/until/not-a-constructor.js b/polyfill/test/Instant/prototype/until/not-a-constructor.js
deleted file mode 100644
index 1df57185ba..0000000000
--- a/polyfill/test/Instant/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: >
- Temporal.Instant.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.until), false,
- "isConstructor(Temporal.Instant.prototype.until)");
diff --git a/polyfill/test/Instant/prototype/until/options-undefined.js b/polyfill/test/Instant/prototype/until/options-undefined.js
deleted file mode 100644
index c5f1469de2..0000000000
--- a/polyfill/test/Instant/prototype/until/options-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const earlier = new Temporal.Instant(957270896_987_654_321n);
-const later = new Temporal.Instant(959949296_987_654_322n);
-
-const explicit = earlier.until(later, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is seconds");
-assert.sameValue(explicit.months, 0, "default largest unit is seconds");
-assert.sameValue(explicit.weeks, 0, "default largest unit is seconds");
-assert.sameValue(explicit.days, 0, "default largest unit is seconds");
-assert.sameValue(explicit.hours, 0, "default largest unit is seconds");
-assert.sameValue(explicit.minutes, 0, "default largest unit is seconds");
-assert.sameValue(explicit.seconds, 2678400, "default largest unit is seconds");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = earlier.until(later);
-assert.sameValue(implicit.years, 0, "default largest unit is seconds");
-assert.sameValue(implicit.months, 0, "default largest unit is seconds");
-assert.sameValue(implicit.weeks, 0, "default largest unit is seconds");
-assert.sameValue(implicit.days, 0, "default largest unit is seconds");
-assert.sameValue(implicit.hours, 0, "default largest unit is seconds");
-assert.sameValue(implicit.minutes, 0, "default largest unit is seconds");
-assert.sameValue(implicit.seconds, 2678400, "default largest unit is seconds");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/Instant/prototype/until/prop-desc.js b/polyfill/test/Instant/prototype/until/prop-desc.js
deleted file mode 100644
index 7bde5ec90f..0000000000
--- a/polyfill/test/Instant/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: The "until" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.until,
- "function",
- "`typeof Instant.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/until/roundingincrement-nan.js b/polyfill/test/Instant/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index f4dd4f4ccc..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/Instant/prototype/until/roundingincrement-non-integer.js b/polyfill/test/Instant/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index 0f5e2acbf8..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_000_000_000_000_005n);
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/Instant/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/Instant/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index 738a8070e3..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_000_000_000_000_005n);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/Instant/prototype/until/roundingincrement-undefined.js b/polyfill/test/Instant/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index 447dc90302..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/Instant/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/Instant/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index 95431bc320..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.instant.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_000_090_061_988_655_322n);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/until/roundingmode-invalid-string.js b/polyfill/test/Instant/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index fc8aaed464..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/Instant/prototype/until/roundingmode-undefined.js b/polyfill/test/Instant/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index f133f8ce60..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-
-const explicit1 = earlier.until(later, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = earlier.until(later, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 0, 0, 90061, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 0, 0, 90061, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = earlier.until(later, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 0, 0, 90061, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = earlier.until(later, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 0, 0, 90061, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/Instant/prototype/until/roundingmode-wrong-type.js b/polyfill/test/Instant/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index 6a6620d2c4..0000000000
--- a/polyfill/test/Instant/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_123_987_500n);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/until/smallestunit-invalid-string.js b/polyfill/test/Instant/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index c6901a4911..0000000000
--- a/polyfill/test/Instant/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "other string" }));
diff --git a/polyfill/test/Instant/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/Instant/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index 04fb18fe84..0000000000
--- a/polyfill/test/Instant/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_987_654_321n);
-const later = new Temporal.Instant(1_086_403_661_988_655_322n);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/Instant/prototype/until/smallestunit-undefined.js b/polyfill/test/Instant/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index 2a8586f10e..0000000000
--- a/polyfill/test/Instant/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/Instant/prototype/until/smallestunit-wrong-type.js b/polyfill/test/Instant/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index 564392a892..0000000000
--- a/polyfill/test/Instant/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.Instant(1_000_000_000_000_000_000n);
-const later = new Temporal.Instant(1_000_090_061_987_654_321n);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 90061, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/Instant/prototype/valueOf/branding.js b/polyfill/test/Instant/prototype/valueOf/branding.js
deleted file mode 100644
index 4fc03e390e..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.Instant.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.Instant), "Temporal.Instant");
-assert.throws(TypeError, () => valueOf.call(Temporal.Instant.prototype), "Temporal.Instant.prototype");
diff --git a/polyfill/test/Instant/prototype/valueOf/builtin.js b/polyfill/test/Instant/prototype/valueOf/builtin.js
deleted file mode 100644
index fb57bf3043..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: >
- Tests that Temporal.Instant.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.Instant.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.Instant.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.Instant.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.Instant.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/Instant/prototype/valueOf/length.js b/polyfill/test/Instant/prototype/valueOf/length.js
deleted file mode 100644
index 83d5edcf79..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: Temporal.Instant.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/valueOf/name.js b/polyfill/test/Instant/prototype/valueOf/name.js
deleted file mode 100644
index 16b67068d3..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: Temporal.Instant.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Instant.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Instant/prototype/valueOf/not-a-constructor.js b/polyfill/test/Instant/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index a21b57926a..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: >
- Temporal.Instant.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.Instant.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.Instant.prototype.valueOf), false,
- "isConstructor(Temporal.Instant.prototype.valueOf)");
diff --git a/polyfill/test/Instant/prototype/valueOf/prop-desc.js b/polyfill/test/Instant/prototype/valueOf/prop-desc.js
deleted file mode 100644
index dd6a1670bf..0000000000
--- a/polyfill/test/Instant/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.valueof
-description: The "valueOf" property of Temporal.Instant.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.Instant.prototype.valueOf,
- "function",
- "`typeof Instant.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.Instant.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/instant/length.js b/polyfill/test/Now/instant/length.js
deleted file mode 100644
index 82b7bfb762..0000000000
--- a/polyfill/test/Now/instant/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.instant
-description: Temporal.Now.instant.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.instant, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainDate/calendar-temporal-object.js b/polyfill/test/Now/plainDate/calendar-temporal-object.js
deleted file mode 100644
index 3de185cbf0..0000000000
--- a/polyfill/test/Now/plainDate/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.now.plaindate step 1:
- 1. Let _dateTime_ be ? SystemDateTime(_temporalTimeZoneLike_, _calendar_).
- sec-temporal-systemdatetime step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.Now.plainDate(temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/Now/plainDate/length.js b/polyfill/test/Now/plainDate/length.js
deleted file mode 100644
index 0b9112b7d0..0000000000
--- a/polyfill/test/Now/plainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: Temporal.Now.plainDate.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.plainDate, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 93144329fa..0000000000
--- a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDate("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 4361571356..0000000000
--- a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDate("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 388e9e0e17..0000000000
--- a/polyfill/test/Now/plainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.Now.plainDate("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDate/timezone-string-datetime.js b/polyfill/test/Now/plainDate/timezone-string-datetime.js
deleted file mode 100644
index 440b2c391d..0000000000
--- a/polyfill/test/Now/plainDate/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.plainDate("iso8601", timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.plainDate("iso8601", { timeZone }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Now.plainDate("iso8601", timeZone);
- Temporal.Now.plainDate("iso8601", { timeZone });
-});
diff --git a/polyfill/test/Now/plainDate/toPlainDate-override.js b/polyfill/test/Now/plainDate/toPlainDate-override.js
deleted file mode 100644
index d63fd75556..0000000000
--- a/polyfill/test/Now/plainDate/toPlainDate-override.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindate
-description: PlainDateTime.toPlainDate is not observably called
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-Object.defineProperty(Temporal.PlainDateTime.prototype, "toPlainDate", {
- get() {
- actual.push("get Temporal.PlainDateTime.prototype.toPlainDate");
- return function() {
- actual.push("call Temporal.PlainDateTime.prototype.toPlainDate");
- };
- },
-});
-
-const timeZone = new Proxy({
- getOffsetNanosecondsFor(instant) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instant instanceof Temporal.Instant, true, "Instant");
- return 86399_999_999_999;
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = Temporal.Now.plainDate("iso8601", timeZone);
-assert.notSameValue(result, undefined);
-assert.sameValue(result instanceof Temporal.PlainDate, true);
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Now/plainDateISO/length.js b/polyfill/test/Now/plainDateISO/length.js
deleted file mode 100644
index 6906572e83..0000000000
--- a/polyfill/test/Now/plainDateISO/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindateiso
-description: Temporal.Now.plainDateISO.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.plainDateISO, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8986a6dcbe..0000000000
--- a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindateiso
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c69d1b46ec..0000000000
--- a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindateiso
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 3f66b8492d..0000000000
--- a/polyfill/test/Now/plainDateISO/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindateiso
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.Now.plainDateISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateISO/timezone-string-datetime.js b/polyfill/test/Now/plainDateISO/timezone-string-datetime.js
deleted file mode 100644
index 4a2c2ae01f..0000000000
--- a/polyfill/test/Now/plainDateISO/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindateiso
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.plainDateISO(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.plainDateISO({ timeZone }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Now.plainDateISO(timeZone);
- Temporal.Now.plainDateISO({ timeZone });
-});
diff --git a/polyfill/test/Now/plainDateTime/calendar-temporal-object.js b/polyfill/test/Now/plainDateTime/calendar-temporal-object.js
deleted file mode 100644
index 92e8dafcee..0000000000
--- a/polyfill/test/Now/plainDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.now.plaindatetime step 1:
- 1. Return ? SystemDateTime(_temporalTimeZoneLike_, _calendar_).
- sec-temporal-systemdatetime step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.Now.plainDateTime(temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/Now/plainDateTime/length.js b/polyfill/test/Now/plainDateTime/length.js
deleted file mode 100644
index 8c3d4de0f6..0000000000
--- a/polyfill/test/Now/plainDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: Temporal.Now.plainDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.plainDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 20dd7a7bc1..0000000000
--- a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateTime("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 027f9567f0..0000000000
--- a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateTime("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index c0a2c12d09..0000000000
--- a/polyfill/test/Now/plainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.Now.plainDateTime("iso8601", timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTime/timezone-string-datetime.js b/polyfill/test/Now/plainDateTime/timezone-string-datetime.js
deleted file mode 100644
index 71a18e3059..0000000000
--- a/polyfill/test/Now/plainDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.plainDateTime("iso8601", timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.plainDateTime("iso8601", { timeZone }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Now.plainDateTime("iso8601", timeZone);
- Temporal.Now.plainDateTime("iso8601", { timeZone });
-});
diff --git a/polyfill/test/Now/plainDateTime/timezone.js b/polyfill/test/Now/plainDateTime/timezone.js
deleted file mode 100644
index c290189922..0000000000
--- a/polyfill/test/Now/plainDateTime/timezone.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetime
-description: The value returned by TimeZone.getOffsetNanosecondsFor affects the result
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-const timeZone = new Proxy({
- getOffsetNanosecondsFor(instant) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instant instanceof Temporal.Instant, true, "Instant");
- return -Number(instant.epochNanoseconds % 86400_000_000_000n);
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const calendar = Temporal.Calendar.from("iso8601");
-
-const result = Temporal.Now.plainDateTime(calendar, timeZone);
-for (const property of ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"]) {
- assert.sameValue(result[property], 0, property);
-}
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Now/plainDateTimeISO/length.js b/polyfill/test/Now/plainDateTimeISO/length.js
deleted file mode 100644
index 7bc27a8e57..0000000000
--- a/polyfill/test/Now/plainDateTimeISO/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetimeiso
-description: Temporal.Now.plainDateTimeISO.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.plainDateTimeISO, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index d4d90429f4..0000000000
--- a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetimeiso
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 125819b8e5..0000000000
--- a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetimeiso
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainDateTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 42b4adf1c5..0000000000
--- a/polyfill/test/Now/plainDateTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetimeiso
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.Now.plainDateTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainDateTimeISO/timezone-string-datetime.js b/polyfill/test/Now/plainDateTimeISO/timezone-string-datetime.js
deleted file mode 100644
index 6e7b486bfe..0000000000
--- a/polyfill/test/Now/plainDateTimeISO/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaindatetimeiso
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.plainDateTimeISO(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.plainDateTimeISO({ timeZone }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Now.plainDateTimeISO(timeZone);
- Temporal.Now.plainDateTimeISO({ timeZone });
-});
diff --git a/polyfill/test/Now/plainTimeISO/length.js b/polyfill/test/Now/plainTimeISO/length.js
deleted file mode 100644
index 88563248e6..0000000000
--- a/polyfill/test/Now/plainTimeISO/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: Temporal.Now.plainTimeISO.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.plainTimeISO, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e1e9914043..0000000000
--- a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index e72e1cca10..0000000000
--- a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.Now.plainTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index dc9e9957ae..0000000000
--- a/polyfill/test/Now/plainTimeISO/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.Now.plainTimeISO(timeZone));
-});
diff --git a/polyfill/test/Now/plainTimeISO/timezone-string-datetime.js b/polyfill/test/Now/plainTimeISO/timezone-string-datetime.js
deleted file mode 100644
index 1aaa5979c9..0000000000
--- a/polyfill/test/Now/plainTimeISO/timezone-string-datetime.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.plainTimeISO(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.plainTimeISO({ timeZone }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.Now.plainTimeISO(timeZone);
- Temporal.Now.plainTimeISO({ timeZone });
-});
diff --git a/polyfill/test/Now/plainTimeISO/timezone.js b/polyfill/test/Now/plainTimeISO/timezone.js
deleted file mode 100644
index 81894b2a6b..0000000000
--- a/polyfill/test/Now/plainTimeISO/timezone.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: The value returned by TimeZone.getOffsetNanosecondsFor affects the result
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-const timeZone = new Proxy({
- getOffsetNanosecondsFor(instant) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instant instanceof Temporal.Instant, true, "Instant");
- return -Number(instant.epochNanoseconds % 86400_000_000_000n);
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = Temporal.Now.plainTimeISO(timeZone);
-assert.sameValue(result instanceof Temporal.PlainTime, true);
-for (const property of ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"]) {
- assert.sameValue(result[property], 0, property);
-}
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Now/plainTimeISO/toPlainTime-override.js b/polyfill/test/Now/plainTimeISO/toPlainTime-override.js
deleted file mode 100644
index 03a856ae9a..0000000000
--- a/polyfill/test/Now/plainTimeISO/toPlainTime-override.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.plaintimeiso
-description: PlainDateTime.toPlainTime is not observably called
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-Object.defineProperty(Temporal.PlainDateTime.prototype, "toPlainTime", {
- get() {
- actual.push("get Temporal.PlainDateTime.prototype.toPlainTime");
- return function() {
- actual.push("call Temporal.PlainDateTime.prototype.toPlainTime");
- };
- },
-});
-
-const timeZone = new Proxy({
- getOffsetNanosecondsFor(instant) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instant instanceof Temporal.Instant, true, "Instant");
- return -Number(instant.epochNanoseconds % 86400_000_000_000n);
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = Temporal.Now.plainTimeISO(timeZone);
-assert.sameValue(result instanceof Temporal.PlainTime, true);
-for (const property of ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"]) {
- assert.sameValue(result[property], 0, property);
-}
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/Now/timeZone/extensible.js b/polyfill/test/Now/timeZone/extensible.js
deleted file mode 100644
index 1a6ac6d6b9..0000000000
--- a/polyfill/test/Now/timeZone/extensible.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Temporal.Now.timeZone is extensible.
-info: |
- ## 17 ECMAScript Standard Built-in Objects
-
- Unless specified otherwise, the [[Extensible]] internal slot
- of a built-in object initially has the value true.
-features: [Temporal]
----*/
-
-assert(Object.isExtensible(Temporal.Now.timeZone));
diff --git a/polyfill/test/Now/timeZone/length.js b/polyfill/test/Now/timeZone/length.js
deleted file mode 100644
index fdf33918f1..0000000000
--- a/polyfill/test/Now/timeZone/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Temporal.Now.timeZone.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.timeZone, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/timeZone/name.js b/polyfill/test/Now/timeZone/name.js
deleted file mode 100644
index 0fb199bab0..0000000000
--- a/polyfill/test/Now/timeZone/name.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Temporal.Now.timeZone.name is "timeZone".
-info: |
- ## 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, 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: [Temporal]
----*/
-
-assert.sameValue(Temporal.Now.timeZone.name, 'timeZone');
-
-verifyProperty(Temporal.Now.timeZone, 'name', {
- enumerable: false,
- writable: false,
- configurable: true
-});
diff --git a/polyfill/test/Now/timeZone/new-object.js b/polyfill/test/Now/timeZone/new-object.js
deleted file mode 100644
index f242db9ea8..0000000000
--- a/polyfill/test/Now/timeZone/new-object.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Each invocation of the function produces a distinct object value
-features: [Temporal]
----*/
-
-const tz = Temporal.Now.timeZone;
-const tz1 = tz();
-const tz2 = tz();
-assert.notSameValue(tz1, tz2);
diff --git a/polyfill/test/Now/timeZone/not-a-constructor.js b/polyfill/test/Now/timeZone/not-a-constructor.js
deleted file mode 100644
index 5d531eaf44..0000000000
--- a/polyfill/test/Now/timeZone/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Temporal.Now.timeZone does not implement [[Construct]]
-info: |
- ECMAScript Function Objects
-
- Built-in function objects that are not identified as constructors do not
- implement the [[Construct]] internal method unless otherwise specified in
- the description of a particular function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.sameValue(isConstructor(Temporal.Now.timeZone), false, 'isConstructor(Temporal.Now.timeZone) must return false');
-
-assert.throws(TypeError, () => {
- new Temporal.Now.timeZone();
-}, '`new Temporal.Now.timeZone()` throws TypeError');
diff --git a/polyfill/test/Now/timeZone/prop-desc.js b/polyfill/test/Now/timeZone/prop-desc.js
deleted file mode 100644
index cc356fbc5a..0000000000
--- a/polyfill/test/Now/timeZone/prop-desc.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: The "timeZone" property of Temporal.Now
-info: |
- Section 17: 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now, 'timeZone', {
- enumerable: false,
- writable: true,
- configurable: true
-});
diff --git a/polyfill/test/Now/timeZone/return-value.js b/polyfill/test/Now/timeZone/return-value.js
deleted file mode 100644
index 11623e149a..0000000000
--- a/polyfill/test/Now/timeZone/return-value.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.timezone
-description: Temporal.Now.timeZone returns an instance of the TimeZone constructor
-info: |
- 1. Return ? SystemTimeZone().
-features: [Temporal]
----*/
-
-assert.sameValue(
- Object.getPrototypeOf(Temporal.Now.timeZone()),
- Temporal.TimeZone.prototype
-);
diff --git a/polyfill/test/Now/toStringTag/prop-desc.js b/polyfill/test/Now/toStringTag/prop-desc.js
deleted file mode 100644
index 4ff032c0a5..0000000000
--- a/polyfill/test/Now/toStringTag/prop-desc.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-now-@@tostringtag
-description: The @@toStringTag property of Temporal.Now
-includes: [propertyHelper.js]
-features: [Symbol.toStringTag, Temporal]
----*/
-
-verifyProperty(Temporal.Now, Symbol.toStringTag, {
- value: "Temporal.Now",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/toStringTag/string.js b/polyfill/test/Now/toStringTag/string.js
deleted file mode 100644
index 33173329cc..0000000000
--- a/polyfill/test/Now/toStringTag/string.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-now-@@tostringtag
-description: The @@toStringTag property of Temporal.Now produces the correct value in toString
-features: [Symbol.toStringTag, Temporal]
----*/
-
-assert.sameValue(String(Temporal.Now), "[object Temporal.Now]");
diff --git a/polyfill/test/Now/zonedDateTime/calendar-temporal-object.js b/polyfill/test/Now/zonedDateTime/calendar-temporal-object.js
deleted file mode 100644
index b4da48ab9a..0000000000
--- a/polyfill/test/Now/zonedDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.zoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.now.plaindatetime step 1:
- 1. Return ? SystemZonedDateTime(_temporalTimeZoneLike_, _calendar_).
- sec-temporal-systemzoneddatetime step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.Now.zonedDateTime(temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/Now/zonedDateTime/length.js b/polyfill/test/Now/zonedDateTime/length.js
deleted file mode 100644
index d5f79cbae0..0000000000
--- a/polyfill/test/Now/zonedDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.zoneddatetime
-description: Temporal.Now.zonedDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.zonedDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/zonedDateTime/timezone-string-datetime.js b/polyfill/test/Now/zonedDateTime/timezone-string-datetime.js
deleted file mode 100644
index 38f6cb00dd..0000000000
--- a/polyfill/test/Now/zonedDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.zoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.zonedDateTime("iso8601", timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.zonedDateTime("iso8601", { timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = Temporal.Now.zonedDateTime("iso8601", timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = Temporal.Now.zonedDateTime("iso8601", { timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = Temporal.Now.zonedDateTime("iso8601", timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = Temporal.Now.zonedDateTime("iso8601", { timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = Temporal.Now.zonedDateTime("iso8601", timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = Temporal.Now.zonedDateTime("iso8601", { timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = Temporal.Now.zonedDateTime("iso8601", timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = Temporal.Now.zonedDateTime("iso8601", { timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = Temporal.Now.zonedDateTime("iso8601", timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = Temporal.Now.zonedDateTime("iso8601", { timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/Now/zonedDateTimeISO/length.js b/polyfill/test/Now/zonedDateTimeISO/length.js
deleted file mode 100644
index 831e328a3d..0000000000
--- a/polyfill/test/Now/zonedDateTimeISO/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.zoneddatetimeiso
-description: Temporal.Now.zonedDateTimeISO.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.Now.zonedDateTimeISO, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Now/zonedDateTimeISO/timezone-string-datetime.js b/polyfill/test/Now/zonedDateTimeISO/timezone-string-datetime.js
deleted file mode 100644
index de88cf693e..0000000000
--- a/polyfill/test/Now/zonedDateTimeISO/timezone-string-datetime.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.now.zoneddatetimeiso
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.Now.zonedDateTimeISO(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.Now.zonedDateTimeISO({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = Temporal.Now.zonedDateTimeISO(timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = Temporal.Now.zonedDateTimeISO({ timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = Temporal.Now.zonedDateTimeISO(timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = Temporal.Now.zonedDateTimeISO({ timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = Temporal.Now.zonedDateTimeISO(timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = Temporal.Now.zonedDateTimeISO({ timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = Temporal.Now.zonedDateTimeISO(timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = Temporal.Now.zonedDateTimeISO({ timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = Temporal.Now.zonedDateTimeISO(timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = Temporal.Now.zonedDateTimeISO({ timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/PlainDate/constructor/compare/argument-plaindatetime.js b/polyfill/test/PlainDate/constructor/compare/argument-plaindatetime.js
deleted file mode 100644
index a41d6b0b08..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/argument-plaindatetime.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindate.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDate(_one_).
- 2. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const result = Temporal.PlainDate.compare(datetime, date);
- assert.sameValue(result, 0, "comparison result");
-});
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const result = Temporal.PlainDate.compare(date, datetime);
- assert.sameValue(result, 0, "comparison result");
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ffa6b96aa5..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, Infinity, -Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
-
- assert.throws(RangeError, () => Temporal.PlainDate.compare(datetime, date));
- assert.throws(RangeError, () => Temporal.PlainDate.compare(date, datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 3d6523e833..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
-
- assert.throws(RangeError, () => Temporal.PlainDate.compare(datetime, date));
- assert.throws(RangeError, () => Temporal.PlainDate.compare(date, datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index bf475a329e..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
-
- assert.throws(TypeError, () => Temporal.PlainDate.compare(datetime, date));
- assert.throws(TypeError, () => Temporal.PlainDate.compare(date, datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/builtin.js b/polyfill/test/PlainDate/constructor/compare/builtin.js
deleted file mode 100644
index 1d68d6eec2..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Tests that Temporal.PlainDate.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/constructor/compare/calendar-fields-iterable.js b/polyfill/test/PlainDate/constructor/compare/calendar-fields-iterable.js
deleted file mode 100644
index e99862540f..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/calendar-fields-iterable.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDate(_one_).
- 2. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainDate.compare(
- { year: 2000, month: 5, day: 2, calendar: calendar1 },
- { year: 2001, month: 6, day: 3, calendar: calendar2 },
-);
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/constructor/compare/calendar-temporal-object.js b/polyfill/test/PlainDate/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index ced0874537..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDate(_one_).
- 2. Set _two_ to ? ToTemporalDate(_two_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- Temporal.PlainDate.compare(
- { year: 2000, month: 5, day: 2, calendar: temporalObject },
- { year: 2001, month: 6, day: 3, calendar: temporalObject },
- );
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index 787600bf3c..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plaindate.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainDate(2000, 5, 2);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => Temporal.PlainDate.compare({ ...base, [prop]: inf }, other), `${prop} property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainDate.compare(other, { ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDate.compare({ ...base, [prop]: obj1 }, other));
- assert.compareArray(calls1, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDate.compare(other, { ...base, [prop]: obj2 }));
- assert.compareArray(calls2, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/length.js b/polyfill/test/PlainDate/constructor/compare/length.js
deleted file mode 100644
index 61b788ad62..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Temporal.PlainDate.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/name.js b/polyfill/test/PlainDate/constructor/compare/name.js
deleted file mode 100644
index 0032ddbfe5..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Temporal.PlainDate.compare.name is "compare"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/not-a-constructor.js b/polyfill/test/PlainDate/constructor/compare/not-a-constructor.js
deleted file mode 100644
index 47fa803406..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: Temporal.PlainDate.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.compare), false,
- "isConstructor(Temporal.PlainDate.compare)");
diff --git a/polyfill/test/PlainDate/constructor/compare/prop-desc.js b/polyfill/test/PlainDate/constructor/compare/prop-desc.js
deleted file mode 100644
index c737cfbcf3..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.compare
-description: The "compare" property of Temporal.PlainDate
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.compare,
- "function",
- "`typeof PlainDate.compare` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/compare/use-internal-slots.js b/polyfill/test/PlainDate/constructor/compare/use-internal-slots.js
deleted file mode 100644
index 8b0cd6af52..0000000000
--- a/polyfill/test/PlainDate/constructor/compare/use-internal-slots.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-compareisodate
-description: compare() ignores the observable properties and uses internal slots
-features: [Temporal]
----*/
-
-function CustomError() {}
-
-class AvoidGettersDate extends Temporal.PlainDate {
- get year() {
- throw new CustomError();
- }
- get month() {
- throw new CustomError();
- }
- get day() {
- throw new CustomError();
- }
-}
-
-const one = new AvoidGettersDate(2000, 5, 2);
-const two = new AvoidGettersDate(2006, 3, 25);
-assert.sameValue(Temporal.PlainDate.compare(one, two), -1);
diff --git a/polyfill/test/PlainDate/constructor/constructor/basic.js b/polyfill/test/PlainDate/constructor/constructor/basic.js
deleted file mode 100644
index 11d5b4ae78..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/basic.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Basic tests for the PlainDate constructor.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const calendar = new Temporal.Calendar("iso8601");
-const plainDateWithObject = new Temporal.PlainDate(2020, 12, 24, calendar);
-TemporalHelpers.assertPlainDate(plainDateWithObject, 2020, 12, "M12", 24, "with object");
-assert.sameValue(plainDateWithObject.calendar, calendar);
-
-const plainDateWithString = new Temporal.PlainDate(2020, 12, 24, "iso8601");
-TemporalHelpers.assertPlainDate(plainDateWithString, 2020, 12, "M12", 24, "with string");
-assert.sameValue(plainDateWithString.calendar.toString(), "iso8601");
-assert.notSameValue(plainDateWithString.calendar, calendar);
diff --git a/polyfill/test/PlainDate/constructor/constructor/builtin.js b/polyfill/test/PlainDate/constructor/constructor/builtin.js
deleted file mode 100644
index 65f77de24b..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Tests that Temporal.PlainDate meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.PlainDate.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/PlainDate/constructor/constructor/calendar-temporal-object.js b/polyfill/test/PlainDate/constructor/constructor/calendar-temporal-object.js
deleted file mode 100644
index 63f72cbc74..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate step 5:
- 5. Let _calendar_ be ? ToTemporalCalendarWithISODefault(_calendarLike_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = new Temporal.PlainDate(2000, 5, 2, temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainDate/constructor/constructor/calendar-undefined.js b/polyfill/test/PlainDate/constructor/constructor/calendar-undefined.js
deleted file mode 100644
index 945fc0dd12..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/calendar-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [Temporal]
----*/
-
-const args = [2020, 12, 24];
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const dateExplicit = new Temporal.PlainDate(...args, undefined);
-assert.sameValue(dateExplicit.calendar.toString(), "iso8601");
-
-const dateImplicit = new Temporal.PlainDate(...args);
-assert.sameValue(dateImplicit.calendar.toString(), "iso8601");
diff --git a/polyfill/test/PlainDate/constructor/constructor/constructor.js b/polyfill/test/PlainDate/constructor/constructor/constructor.js
deleted file mode 100644
index 67400c0e12..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Temporal.PlainDate constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainDate());
diff --git a/polyfill/test/PlainDate/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index f6b7e98fee..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate throws a RangeError if any value is Infinity
-esid: sec-temporal.plaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainDate(Infinity, 1, 1));
-assert.throws(RangeError, () => new Temporal.PlainDate(1970, Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainDate(1970, 1, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(Infinity, "year"), O(1, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf"]
- ],
- [
- "infinite month",
- [O(2, "year"), O(Infinity, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(2, "year"), O(1, "month"), O(Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainDate(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainDate/constructor/constructor/length.js b/polyfill/test/PlainDate/constructor/constructor/length.js
deleted file mode 100644
index 0291a35e1c..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Temporal.PlainDate.length is 3
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate, "length", {
- value: 3,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/constructor/missing-arguments.js b/polyfill/test/PlainDate/constructor/constructor/missing-arguments.js
deleted file mode 100644
index aa8559e8b8..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: RangeError thrown when constructor invoked with no argument
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "valueOf year",
- "valueOf month",
-];
-const actual = [];
-const args = [
- { valueOf() { actual.push("valueOf year"); return 1; } },
- { valueOf() { actual.push("valueOf month"); return 1; } },
-];
-
-assert.throws(RangeError, () => new Temporal.PlainDate(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDate/constructor/constructor/name.js b/polyfill/test/PlainDate/constructor/constructor/name.js
deleted file mode 100644
index 5c2e807260..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: Temporal.PlainDate.name is "PlainDate"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate, "name", {
- value: "PlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDate/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 3eb3c4c7c1..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate throws a RangeError if any value is -Infinity
-esid: sec-temporal.plaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainDate(-Infinity, 1, 1));
-assert.throws(RangeError, () => new Temporal.PlainDate(1970, -Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainDate(1970, 1, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(-Infinity, "year"), O(1, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf"]
- ],
- [
- "infinite month",
- [O(2, "year"), O(-Infinity, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(2, "year"), O(1, "month"), O(-Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainDate(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainDate/constructor/constructor/prop-desc.js b/polyfill/test/PlainDate/constructor/constructor/prop-desc.js
deleted file mode 100644
index dfba70db57..0000000000
--- a/polyfill/test/PlainDate/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate
-description: The "PlainDate" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate,
- "function",
- "`typeof PlainDate` is `function`"
-);
-
-verifyProperty(Temporal, "PlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/from/argument-object.js b/polyfill/test/PlainDate/constructor/from/argument-object.js
deleted file mode 100644
index 9bed48298f..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-object.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Property bag is correctly converted into PlainDate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const dateTimeFields = { year: 2019, month: 10, monthCode: "M10", day: 1, hour: 14, minute: 20, second: 36 };
-const plainDate = Temporal.PlainDate.from(dateTimeFields);
-TemporalHelpers.assertPlainDate(plainDate, 2019, 10, "M10", 1);
diff --git a/polyfill/test/PlainDate/constructor/from/argument-plaindate.js b/polyfill/test/PlainDate/constructor/from/argument-plaindate.js
deleted file mode 100644
index 953393f824..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-plaindate.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: A PlainDate object is copied, not returned directly
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 5, 2);
-const result = Temporal.PlainDate.from(plainDate);
-assert.notSameValue(result, plainDate);
-TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 2);
diff --git a/polyfill/test/PlainDate/constructor/from/argument-plaindatetime.js b/polyfill/test/PlainDate/constructor/from/argument-plaindatetime.js
deleted file mode 100644
index b8b4b0fac3..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-plaindatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindate.from step 3:
- 3. Return ? ToTemporalDate(_item_, _options_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime, calendar) => {
- const result = Temporal.PlainDate.from(datetime);
- TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 2);
- assert.sameValue(result.calendar, calendar, "calendar result");
-});
diff --git a/polyfill/test/PlainDate/constructor/from/argument-string.js b/polyfill/test/PlainDate/constructor/from/argument-string.js
deleted file mode 100644
index 1eee15b7b1..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-string.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: overflow property is extracted with string argument.
-info: |
- 1. If Type(_item_) is Object, then
- 1. ...
- 1. Return ? DateFromFields(_calendar_, _fields_, _options_).
- 1. Perform ? ToTemporalOverflow(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get overflow",
- "get overflow.toString",
- "call overflow.toString",
-];
-
-let actual = [];
-const object = {
- get overflow() {
- actual.push("get overflow");
- return TemporalHelpers.toPrimitiveObserver(actual, "reject", "overflow");
- }
-};
-
-const result = Temporal.PlainDate.from("2021-05-17", object);
-assert.compareArray(actual, expected, "Successful call");
-TemporalHelpers.assertPlainDate(result, 2021, 5, "M05", 17);
-
-actual.splice(0, actual.length); // empty it for the next check
-assert.throws(RangeError, () => Temporal.PlainDate.from(7, object));
-assert.compareArray(actual, expected, "Failing call");
diff --git a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 2564660e58..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainDate.from(datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index a1d2f1b7d5..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainDate.from(datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 9866661ac0..0000000000
--- a/polyfill/test/PlainDate/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => Temporal.PlainDate.from(datetime));
-});
diff --git a/polyfill/test/PlainDate/constructor/from/builtin.js b/polyfill/test/PlainDate/constructor/from/builtin.js
deleted file mode 100644
index 84a3f44334..0000000000
--- a/polyfill/test/PlainDate/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Tests that Temporal.PlainDate.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/constructor/from/calendar-fields-iterable.js b/polyfill/test/PlainDate/constructor/from/calendar-fields-iterable.js
deleted file mode 100644
index a693fe09bc..0000000000
--- a/polyfill/test/PlainDate/constructor/from/calendar-fields-iterable.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.from step 3:
- 3. Return ? ToTemporalDate(_item_, _options_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainDate.from({ year: 2000, month: 5, day: 2, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/constructor/from/calendar-temporal-object.js b/polyfill/test/PlainDate/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index 47a5080614..0000000000
--- a/polyfill/test/PlainDate/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.from step 3:
- 3. Return ? ToTemporalDate(_item_, _options_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainDate/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index cb4ab5c726..0000000000
--- a/polyfill/test/PlainDate/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainDate.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDate.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainDate/constructor/from/length.js b/polyfill/test/PlainDate/constructor/from/length.js
deleted file mode 100644
index ddf1c942c6..0000000000
--- a/polyfill/test/PlainDate/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Temporal.PlainDate.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/from/name.js b/polyfill/test/PlainDate/constructor/from/name.js
deleted file mode 100644
index 7310486151..0000000000
--- a/polyfill/test/PlainDate/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Temporal.PlainDate.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/from/not-a-constructor.js b/polyfill/test/PlainDate/constructor/from/not-a-constructor.js
deleted file mode 100644
index 00f77b3ced..0000000000
--- a/polyfill/test/PlainDate/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Temporal.PlainDate.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.from), false,
- "isConstructor(Temporal.PlainDate.from)");
diff --git a/polyfill/test/PlainDate/constructor/from/options-invalid.js b/polyfill/test/PlainDate/constructor/from/options-invalid.js
deleted file mode 100644
index c3f95ff1d5..0000000000
--- a/polyfill/test/PlainDate/constructor/from/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const fields = { year: 2000, month: 13, day: 2 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => Temporal.PlainDate.from(fields, badOptions));
-}
diff --git a/polyfill/test/PlainDate/constructor/from/options-undefined.js b/polyfill/test/PlainDate/constructor/from/options-undefined.js
deleted file mode 100644
index b2c7ba0cb7..0000000000
--- a/polyfill/test/PlainDate/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const fields = { year: 2000, month: 13, day: 2 };
-
-const explicit = Temporal.PlainDate.from(fields, undefined);
-assert.sameValue(explicit.month, 12, "default overflow is constrain");
-
-const implicit = Temporal.PlainDate.from(fields);
-assert.sameValue(implicit.month, 12, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/constructor/from/order-of-operations.js b/polyfill/test/PlainDate/constructor/from/order-of-operations.js
deleted file mode 100644
index 21d8fb5182..0000000000
--- a/polyfill/test/PlainDate/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- if (key === "calendar") return Temporal.Calendar.from("iso8601");
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.PlainDate.from(argument);
-TemporalHelpers.assertPlainDate(result, 1, 1, "M01", 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDate/constructor/from/overflow-invalid-string.js b/polyfill/test/PlainDate/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index 01f5c913ee..0000000000
--- a/polyfill/test/PlainDate/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporaldate steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Return ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDate]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDate(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDate(2000, 5, 2),
- { year: 2000, month: 5, day: 2 },
- "2000-05-02",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.PlainDate.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/PlainDate/constructor/from/overflow-undefined.js b/polyfill/test/PlainDate/constructor/from/overflow-undefined.js
deleted file mode 100644
index 8e755c5eea..0000000000
--- a/polyfill/test/PlainDate/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporaldate steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Return ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDate]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDate(_item_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDate(2000, 5, 2),
- "2000-05-02",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.PlainDate.from(value, { overflow: undefined });
- TemporalHelpers.assertPlainDate(explicit, 2000, 5, "M05", 2, "overflow is ignored");
- const implicit = Temporal.PlainDate.from(value, {});
- TemporalHelpers.assertPlainDate(implicit, 2000, 5, "M05", 2, "overflow is ignored");
-});
-
-const propertyBag = { year: 2000, month: 13, day: 34 };
-const explicit = Temporal.PlainDate.from(propertyBag, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 2000, 12, "M12", 31, "default overflow is constrain");
-const implicit = Temporal.PlainDate.from(propertyBag, {});
-TemporalHelpers.assertPlainDate(implicit, 2000, 12, "M12", 31, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/constructor/from/overflow-wrong-type.js b/polyfill/test/PlainDate/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index 1a2eb7f4bf..0000000000
--- a/polyfill/test/PlainDate/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporaldate steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Return ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDate]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDate(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDate(2000, 5, 2),
- { year: 2000, month: 5, day: 2 },
- "2000-05-02",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.PlainDate.from(value, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 2, descr),
-));
diff --git a/polyfill/test/PlainDate/constructor/from/prop-desc.js b/polyfill/test/PlainDate/constructor/from/prop-desc.js
deleted file mode 100644
index a19e3f4c09..0000000000
--- a/polyfill/test/PlainDate/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: The "from" property of Temporal.PlainDate
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.from,
- "function",
- "`typeof PlainDate.from` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/constructor/from/subclassing-ignored.js b/polyfill/test/PlainDate/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 6e4cf1d8ba..0000000000
--- a/polyfill/test/PlainDate/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.PlainDate,
- "from",
- ["2000-05-02"],
- (result) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 2),
-);
diff --git a/polyfill/test/PlainDate/prototype/add/argument-not-object.js b/polyfill/test/PlainDate/prototype/add/argument-not-object.js
deleted file mode 100644
index 6a88e4b19e..0000000000
--- a/polyfill/test/PlainDate/prototype/add/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Passing a primitive other than string to add() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-assert.throws(RangeError, () => instance.add(undefined), "undefined");
-assert.throws(RangeError, () => instance.add(null), "null");
-assert.throws(RangeError, () => instance.add(true), "boolean");
-assert.throws(RangeError, () => instance.add(""), "empty string");
-assert.throws(TypeError, () => instance.add(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.add(7), "number");
-assert.throws(RangeError, () => instance.add(7n), "bigint");
diff --git a/polyfill/test/PlainDate/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/PlainDate/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 6a3933fd61..0000000000
--- a/polyfill/test/PlainDate/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-
-const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainDate(resultHours, 2000, 5, "M05", 1, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainDate(resultMinutes, 2000, 5, "M05", 1, "negative fractional minutes");
diff --git a/polyfill/test/PlainDate/prototype/add/argument-string.js b/polyfill/test/PlainDate/prototype/add/argument-string.js
deleted file mode 100644
index 5abb43791b..0000000000
--- a/polyfill/test/PlainDate/prototype/add/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-const result = instance.add("P3D");
-TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 5);
diff --git a/polyfill/test/PlainDate/prototype/add/balance-smaller-units.js b/polyfill/test/PlainDate/prototype/add/balance-smaller-units.js
deleted file mode 100644
index b0c6bd878a..0000000000
--- a/polyfill/test/PlainDate/prototype/add/balance-smaller-units.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Durations with units smaller than days are balanced before adding, in the calendar
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-
-class DateAddCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateAdd(date, duration, options) {
- actual.push(duration);
- return super.dateAdd(date, duration, options);
- }
-}
-
-const calendar = new DateAddCalendar();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-const duration = new Temporal.Duration(0, 0, 0, 1, 24, 1440, 86400, 86400_000, 86400_000_000, 86400_000_000_000);
-
-const result = date.add(duration);
-TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 9, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 1, "calendar.dateAdd called exactly once");
-assert.sameValue(actual[0], duration, "the duration is passed directly to the calendar");
-
-const resultString = date.add("P1DT24H1440M86400S");
-TemporalHelpers.assertPlainDate(resultString, 2000, 5, "M05", 6, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 2, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[1], 0, 0, 0, 1, 24, 1440, 86400, 0, 0, 0, "the duration is not balanced before passing to the calendar");
-
-const resultPropBag = date.add({ days: 1, hours: 24, minutes: 1440, seconds: 86400, milliseconds: 86400_000, microseconds: 86400_000_000, nanoseconds: 86400_000_000_000 });
-TemporalHelpers.assertPlainDate(resultPropBag, 2000, 5, "M05", 9, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 3, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[2], 0, 0, 0, 1, 24, 1440, 86400, 86400_000, 86400_000_000, 86400_000_000_000, "the duration is not balanced before passing to the calendar");
-
-const negativeDuration = new Temporal.Duration(0, 0, 0, -1, -24, -1440, -86400, -86400_000, -86400_000_000, -86400_000_000_000);
-const resultNegative = date.add(negativeDuration);
-TemporalHelpers.assertPlainDate(resultNegative, 2000, 4, "M04", 25, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 4, "calendar.dateAdd called exactly once");
-assert.sameValue(actual[3], negativeDuration, "the duration is passed directly to the calendar");
diff --git a/polyfill/test/PlainDate/prototype/add/branding.js b/polyfill/test/PlainDate/prototype/add/branding.js
deleted file mode 100644
index b60ec44d51..0000000000
--- a/polyfill/test/PlainDate/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.PlainDate.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => add.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/add/builtin.js b/polyfill/test/PlainDate/prototype/add/builtin.js
deleted file mode 100644
index 1a623151bd..0000000000
--- a/polyfill/test/PlainDate/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: >
- Tests that Temporal.PlainDate.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index 9f5d6850cb..0000000000
--- a/polyfill/test/PlainDate/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaindate.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/add/length.js b/polyfill/test/PlainDate/prototype/add/length.js
deleted file mode 100644
index 73b5068793..0000000000
--- a/polyfill/test/PlainDate/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Temporal.PlainDate.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/add/name.js b/polyfill/test/PlainDate/prototype/add/name.js
deleted file mode 100644
index 302109faa0..0000000000
--- a/polyfill/test/PlainDate/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Temporal.PlainDate.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index f50ae005ad..0000000000
--- a/polyfill/test/PlainDate/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaindate.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 0125f388c3..0000000000
--- a/polyfill/test/PlainDate/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainDate/prototype/add/not-a-constructor.js b/polyfill/test/PlainDate/prototype/add/not-a-constructor.js
deleted file mode 100644
index ba78130f34..0000000000
--- a/polyfill/test/PlainDate/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: >
- Temporal.PlainDate.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.add), false,
- "isConstructor(Temporal.PlainDate.prototype.add)");
diff --git a/polyfill/test/PlainDate/prototype/add/options-invalid.js b/polyfill/test/PlainDate/prototype/add/options-invalid.js
deleted file mode 100644
index 6788944370..0000000000
--- a/polyfill/test/PlainDate/prototype/add/options-invalid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 1, 31);
-const duration = { months: 1 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => plainDate.add(duration, badOptions));
-}
diff --git a/polyfill/test/PlainDate/prototype/add/options-undefined.js b/polyfill/test/PlainDate/prototype/add/options-undefined.js
deleted file mode 100644
index df27f6e5af..0000000000
--- a/polyfill/test/PlainDate/prototype/add/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 1, 31);
-const duration = { months: 1 };
-
-const explicit = date.add(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = date.add(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/add/order-of-operations.js b/polyfill/test/PlainDate/prototype/add/order-of-operations.js
deleted file mode 100644
index 4576c59db5..0000000000
--- a/polyfill/test/PlainDate/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument);
-TemporalHelpers.assertPlainDate(result, 2001, 6, "M06", 10);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDate/prototype/add/overflow-invalid-string.js b/polyfill/test/PlainDate/prototype/add/overflow-invalid-string.js
deleted file mode 100644
index e684db9877..0000000000
--- a/polyfill/test/PlainDate/prototype/add/overflow-invalid-string.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.add step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _balancedDuration_, _options_).
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-assert.throws(RangeError, () => date.add(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainDate/prototype/add/overflow-undefined.js b/polyfill/test/PlainDate/prototype/add/overflow-undefined.js
deleted file mode 100644
index 64abf666c1..0000000000
--- a/polyfill/test/PlainDate/prototype/add/overflow-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.add step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _balancedDuration_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 31);
-const duration = new Temporal.Duration(3, 1);
-
-const explicit = date.add(duration, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 2003, 6, "M06", 30, "default overflow is constrain");
-const implicit = date.add(duration, {});
-TemporalHelpers.assertPlainDate(implicit, 2003, 6, "M06", 30, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/add/overflow-wrong-type.js b/polyfill/test/PlainDate/prototype/add/overflow-wrong-type.js
deleted file mode 100644
index aa8b95c065..0000000000
--- a/polyfill/test/PlainDate/prototype/add/overflow-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.add step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _balancedDuration_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => date.add(duration, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 2003, 8, "M08", 5, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/add/prop-desc.js b/polyfill/test/PlainDate/prototype/add/prop-desc.js
deleted file mode 100644
index 3cf4236d04..0000000000
--- a/polyfill/test/PlainDate/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: The "add" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.add,
- "function",
- "`typeof PlainDate.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/add/subclassing-ignored.js b/polyfill/test/PlainDate/prototype/add/subclassing-ignored.js
deleted file mode 100644
index 792cfff6e0..0000000000
--- a/polyfill/test/PlainDate/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.add
-description: Objects of a subclass are never created as return values for add()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDate,
- [2000, 5, 2],
- "add",
- [{ days: 1 }],
- (result) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 3),
-);
diff --git a/polyfill/test/PlainDate/prototype/calendar/branding.js b/polyfill/test/PlainDate/prototype/calendar/branding.js
deleted file mode 100644
index fc28805d6a..0000000000
--- a/polyfill/test/PlainDate/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/calendar/prop-desc.js b/polyfill/test/PlainDate/prototype/calendar/prop-desc.js
deleted file mode 100644
index 6a40d4aa3c..0000000000
--- a/polyfill/test/PlainDate/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.calendar
-description: The "calendar" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/day/branding.js b/polyfill/test/PlainDate/prototype/day/branding.js
deleted file mode 100644
index 39e71bd0be..0000000000
--- a/polyfill/test/PlainDate/prototype/day/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.day
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const day = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "day").get;
-
-assert.sameValue(typeof day, "function");
-
-assert.throws(TypeError, () => day.call(undefined), "undefined");
-assert.throws(TypeError, () => day.call(null), "null");
-assert.throws(TypeError, () => day.call(true), "true");
-assert.throws(TypeError, () => day.call(""), "empty string");
-assert.throws(TypeError, () => day.call(Symbol()), "symbol");
-assert.throws(TypeError, () => day.call(1), "1");
-assert.throws(TypeError, () => day.call({}), "plain object");
-assert.throws(TypeError, () => day.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => day.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/day/calendar-returns-infinity.js b/polyfill/test/PlainDate/prototype/day/calendar-returns-infinity.js
deleted file mode 100644
index f13b182d96..0000000000
--- a/polyfill/test/PlainDate/prototype/day/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.day
-description: Getter throws if the calendar returns ±∞ from its day method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- day() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDate(2000, 5, 2, pos);
-assert.throws(RangeError, () => instance1.day);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDate(2000, 5, 2, neg);
-assert.throws(RangeError, () => instance2.day);
diff --git a/polyfill/test/PlainDate/prototype/day/prop-desc.js b/polyfill/test/PlainDate/prototype/day/prop-desc.js
deleted file mode 100644
index 28a23c8f7b..0000000000
--- a/polyfill/test/PlainDate/prototype/day/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.day
-description: The "day" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "day");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/dayOfWeek/basic.js b/polyfill/test/PlainDate/prototype/dayOfWeek/basic.js
deleted file mode 100644
index 65ee0499b3..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfWeek/basic.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofweek
-description: Basic tests for dayOfWeek().
-features: [Temporal]
----*/
-
-for (let i = 1; i <= 7; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 11, 14 + i);
- assert.sameValue(plainDate.dayOfWeek, i, `${plainDate} should be on day ${i}`);
-}
diff --git a/polyfill/test/PlainDate/prototype/dayOfWeek/branding.js b/polyfill/test/PlainDate/prototype/dayOfWeek/branding.js
deleted file mode 100644
index f88ab596c6..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfWeek = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "dayOfWeek").get;
-
-assert.sameValue(typeof dayOfWeek, "function");
-
-assert.throws(TypeError, () => dayOfWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfWeek.call(null), "null");
-assert.throws(TypeError, () => dayOfWeek.call(true), "true");
-assert.throws(TypeError, () => dayOfWeek.call(""), "empty string");
-assert.throws(TypeError, () => dayOfWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfWeek.call(1), "1");
-assert.throws(TypeError, () => dayOfWeek.call({}), "plain object");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/dayOfWeek/prop-desc.js b/polyfill/test/PlainDate/prototype/dayOfWeek/prop-desc.js
deleted file mode 100644
index 1936b5e477..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofweek
-description: The "dayOfWeek" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "dayOfWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/dayOfYear/basic.js b/polyfill/test/PlainDate/prototype/dayOfYear/basic.js
deleted file mode 100644
index be771cc057..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfYear/basic.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofyear
-description: Basic tests for dayOfYear().
-features: [Temporal]
----*/
-
-for (let i = 1; i <= 7; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 11, 14 + i);
- assert.sameValue(plainDate.dayOfYear, 319 + i, `${plainDate} should be on day ${319 + i}`);
-}
diff --git a/polyfill/test/PlainDate/prototype/dayOfYear/branding.js b/polyfill/test/PlainDate/prototype/dayOfYear/branding.js
deleted file mode 100644
index 5bf0aed3f6..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "dayOfYear").get;
-
-assert.sameValue(typeof dayOfYear, "function");
-
-assert.throws(TypeError, () => dayOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfYear.call(null), "null");
-assert.throws(TypeError, () => dayOfYear.call(true), "true");
-assert.throws(TypeError, () => dayOfYear.call(""), "empty string");
-assert.throws(TypeError, () => dayOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfYear.call(1), "1");
-assert.throws(TypeError, () => dayOfYear.call({}), "plain object");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/dayOfYear/prop-desc.js b/polyfill/test/PlainDate/prototype/dayOfYear/prop-desc.js
deleted file mode 100644
index 116af39764..0000000000
--- a/polyfill/test/PlainDate/prototype/dayOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.dayofyear
-description: The "dayOfYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "dayOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/daysInMonth/branding.js b/polyfill/test/PlainDate/prototype/daysInMonth/branding.js
deleted file mode 100644
index d4568d927c..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInMonth = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInMonth").get;
-
-assert.sameValue(typeof daysInMonth, "function");
-
-assert.throws(TypeError, () => daysInMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInMonth.call(null), "null");
-assert.throws(TypeError, () => daysInMonth.call(true), "true");
-assert.throws(TypeError, () => daysInMonth.call(""), "empty string");
-assert.throws(TypeError, () => daysInMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInMonth.call(1), "1");
-assert.throws(TypeError, () => daysInMonth.call({}), "plain object");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/daysInMonth/prop-desc.js b/polyfill/test/PlainDate/prototype/daysInMonth/prop-desc.js
deleted file mode 100644
index 9517805778..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInMonth/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinmonth
-description: The "daysInMonth" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInMonth");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/daysInWeek/basic.js b/polyfill/test/PlainDate/prototype/daysInWeek/basic.js
deleted file mode 100644
index c3eccf9a10..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInWeek/basic.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinweek
-description: Basic tests for daysInWeek().
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1976, 11, 18);
-assert.sameValue(plainDate.daysInWeek, 7);
diff --git a/polyfill/test/PlainDate/prototype/daysInWeek/branding.js b/polyfill/test/PlainDate/prototype/daysInWeek/branding.js
deleted file mode 100644
index 873b9c86e9..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInWeek = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInWeek").get;
-
-assert.sameValue(typeof daysInWeek, "function");
-
-assert.throws(TypeError, () => daysInWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInWeek.call(null), "null");
-assert.throws(TypeError, () => daysInWeek.call(true), "true");
-assert.throws(TypeError, () => daysInWeek.call(""), "empty string");
-assert.throws(TypeError, () => daysInWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInWeek.call(1), "1");
-assert.throws(TypeError, () => daysInWeek.call({}), "plain object");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/daysInWeek/prop-desc.js b/polyfill/test/PlainDate/prototype/daysInWeek/prop-desc.js
deleted file mode 100644
index 5f1ce2c207..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinweek
-description: The "daysInWeek" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/daysInYear/branding.js b/polyfill/test/PlainDate/prototype/daysInYear/branding.js
deleted file mode 100644
index 7752f95159..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInYear").get;
-
-assert.sameValue(typeof daysInYear, "function");
-
-assert.throws(TypeError, () => daysInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInYear.call(null), "null");
-assert.throws(TypeError, () => daysInYear.call(true), "true");
-assert.throws(TypeError, () => daysInYear.call(""), "empty string");
-assert.throws(TypeError, () => daysInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInYear.call(1), "1");
-assert.throws(TypeError, () => daysInYear.call({}), "plain object");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/daysInYear/prop-desc.js b/polyfill/test/PlainDate/prototype/daysInYear/prop-desc.js
deleted file mode 100644
index 1203f82035..0000000000
--- a/polyfill/test/PlainDate/prototype/daysInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.daysinyear
-description: The "daysInYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "daysInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/equals/argument-plaindatetime.js b/polyfill/test/PlainDate/prototype/equals/argument-plaindatetime.js
deleted file mode 100644
index ba55013f64..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/argument-plaindatetime.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert(date.equals(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/argument-wrong-type.js b/polyfill/test/PlainDate/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index 2e8088d767..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(TypeError, () => instance.equals({}), "plain object");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8eede893fc..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.equals(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c659f87346..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.equals(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index c7e10d641a..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => date.equals(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/branding.js b/polyfill/test/PlainDate/prototype/equals/branding.js
deleted file mode 100644
index 58c78e622f..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.PlainDate.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/equals/builtin.js b/polyfill/test/PlainDate/prototype/equals/builtin.js
deleted file mode 100644
index f8d2443685..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: >
- Tests that Temporal.PlainDate.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/equals/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/equals/calendar-fields-iterable.js
deleted file mode 100644
index 2d4575071e..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-date.equals({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/equals/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 7c0d150b54..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDate(2000, 5, 2, temporalObject);
- date.equals({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index 594555e775..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/length.js b/polyfill/test/PlainDate/prototype/equals/length.js
deleted file mode 100644
index 39cb50a576..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Temporal.PlainDate.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/name.js b/polyfill/test/PlainDate/prototype/equals/name.js
deleted file mode 100644
index 82462da094..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: Temporal.PlainDate.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/equals/not-a-constructor.js b/polyfill/test/PlainDate/prototype/equals/not-a-constructor.js
deleted file mode 100644
index 753f944e17..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: >
- Temporal.PlainDate.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.equals), false,
- "isConstructor(Temporal.PlainDate.prototype.equals)");
diff --git a/polyfill/test/PlainDate/prototype/equals/prop-desc.js b/polyfill/test/PlainDate/prototype/equals/prop-desc.js
deleted file mode 100644
index a325792524..0000000000
--- a/polyfill/test/PlainDate/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.equals
-description: The "equals" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.equals,
- "function",
- "`typeof PlainDate.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/era/branding.js b/polyfill/test/PlainDate/prototype/era/branding.js
deleted file mode 100644
index c0f33337d3..0000000000
--- a/polyfill/test/PlainDate/prototype/era/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.era
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const era = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "era").get;
-
-assert.sameValue(typeof era, "function");
-
-assert.throws(TypeError, () => era.call(undefined), "undefined");
-assert.throws(TypeError, () => era.call(null), "null");
-assert.throws(TypeError, () => era.call(true), "true");
-assert.throws(TypeError, () => era.call(""), "empty string");
-assert.throws(TypeError, () => era.call(Symbol()), "symbol");
-assert.throws(TypeError, () => era.call(1), "1");
-assert.throws(TypeError, () => era.call({}), "plain object");
-assert.throws(TypeError, () => era.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => era.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/era/prop-desc.js b/polyfill/test/PlainDate/prototype/era/prop-desc.js
deleted file mode 100644
index 8bffec1dd5..0000000000
--- a/polyfill/test/PlainDate/prototype/era/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.era
-description: The "era" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "era");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/eraYear/branding.js b/polyfill/test/PlainDate/prototype/eraYear/branding.js
deleted file mode 100644
index 0b370869c7..0000000000
--- a/polyfill/test/PlainDate/prototype/eraYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.erayear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const eraYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "eraYear").get;
-
-assert.sameValue(typeof eraYear, "function");
-
-assert.throws(TypeError, () => eraYear.call(undefined), "undefined");
-assert.throws(TypeError, () => eraYear.call(null), "null");
-assert.throws(TypeError, () => eraYear.call(true), "true");
-assert.throws(TypeError, () => eraYear.call(""), "empty string");
-assert.throws(TypeError, () => eraYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => eraYear.call(1), "1");
-assert.throws(TypeError, () => eraYear.call({}), "plain object");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/eraYear/prop-desc.js b/polyfill/test/PlainDate/prototype/eraYear/prop-desc.js
deleted file mode 100644
index f1a182524a..0000000000
--- a/polyfill/test/PlainDate/prototype/eraYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.erayear
-description: The "eraYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "eraYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/branding.js b/polyfill/test/PlainDate/prototype/getISOFields/branding.js
deleted file mode 100644
index f24b13c225..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.PlainDate.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/builtin.js b/polyfill/test/PlainDate/prototype/getISOFields/builtin.js
deleted file mode 100644
index 1d51121d4d..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: >
- Tests that Temporal.PlainDate.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/field-names.js b/polyfill/test/PlainDate/prototype/getISOFields/field-names.js
deleted file mode 100644
index 1b8e5a9444..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-const result = date.getISOFields();
-assert.sameValue(result.isoYear, 2000, "isoYear result");
-assert.sameValue(result.isoMonth, 5, "isoMonth result");
-assert.sameValue(result.isoDay, 2, "isoDay result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/field-prop-desc.js b/polyfill/test/PlainDate/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index 139af2c021..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const result = date.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/field-traversal-order.js b/polyfill/test/PlainDate/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index 10b631991c..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const result = date.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/length.js b/polyfill/test/PlainDate/prototype/getISOFields/length.js
deleted file mode 100644
index 679f49fec8..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Temporal.PlainDate.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/name.js b/polyfill/test/PlainDate/prototype/getISOFields/name.js
deleted file mode 100644
index 67e6a28e50..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: Temporal.PlainDate.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/not-a-constructor.js b/polyfill/test/PlainDate/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index 265576e0cb..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: >
- Temporal.PlainDate.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.getISOFields), false,
- "isConstructor(Temporal.PlainDate.prototype.getISOFields)");
diff --git a/polyfill/test/PlainDate/prototype/getISOFields/prop-desc.js b/polyfill/test/PlainDate/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index 89d42869c1..0000000000
--- a/polyfill/test/PlainDate/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.getisofields
-description: The "getISOFields" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.getISOFields,
- "function",
- "`typeof PlainDate.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/inLeapYear/branding.js b/polyfill/test/PlainDate/prototype/inLeapYear/branding.js
deleted file mode 100644
index 88345ea8a1..0000000000
--- a/polyfill/test/PlainDate/prototype/inLeapYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.inleapyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const inLeapYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "inLeapYear").get;
-
-assert.sameValue(typeof inLeapYear, "function");
-
-assert.throws(TypeError, () => inLeapYear.call(undefined), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null), "null");
-assert.throws(TypeError, () => inLeapYear.call(true), "true");
-assert.throws(TypeError, () => inLeapYear.call(""), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1), "1");
-assert.throws(TypeError, () => inLeapYear.call({}), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/inLeapYear/prop-desc.js b/polyfill/test/PlainDate/prototype/inLeapYear/prop-desc.js
deleted file mode 100644
index 70bed354ce..0000000000
--- a/polyfill/test/PlainDate/prototype/inLeapYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.inleapyear
-description: The "inLeapYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "inLeapYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/month/branding.js b/polyfill/test/PlainDate/prototype/month/branding.js
deleted file mode 100644
index 625e88e93b..0000000000
--- a/polyfill/test/PlainDate/prototype/month/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.month
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const month = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "month").get;
-
-assert.sameValue(typeof month, "function");
-
-assert.throws(TypeError, () => month.call(undefined), "undefined");
-assert.throws(TypeError, () => month.call(null), "null");
-assert.throws(TypeError, () => month.call(true), "true");
-assert.throws(TypeError, () => month.call(""), "empty string");
-assert.throws(TypeError, () => month.call(Symbol()), "symbol");
-assert.throws(TypeError, () => month.call(1), "1");
-assert.throws(TypeError, () => month.call({}), "plain object");
-assert.throws(TypeError, () => month.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => month.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/month/calendar-returns-infinity.js b/polyfill/test/PlainDate/prototype/month/calendar-returns-infinity.js
deleted file mode 100644
index 572dbfcea8..0000000000
--- a/polyfill/test/PlainDate/prototype/month/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.month
-description: Getter throws if the calendar returns ±∞ from its month method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- month() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDate(2000, 5, 2, pos);
-assert.throws(RangeError, () => instance1.month);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDate(2000, 5, 2, neg);
-assert.throws(RangeError, () => instance2.month);
diff --git a/polyfill/test/PlainDate/prototype/month/prop-desc.js b/polyfill/test/PlainDate/prototype/month/prop-desc.js
deleted file mode 100644
index f65db7818f..0000000000
--- a/polyfill/test/PlainDate/prototype/month/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.month
-description: The "month" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "month");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/monthCode/branding.js b/polyfill/test/PlainDate/prototype/monthCode/branding.js
deleted file mode 100644
index 225adefef9..0000000000
--- a/polyfill/test/PlainDate/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "monthCode").get;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/monthCode/prop-desc.js b/polyfill/test/PlainDate/prototype/monthCode/prop-desc.js
deleted file mode 100644
index f5d7e182e3..0000000000
--- a/polyfill/test/PlainDate/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.monthcode
-description: The "monthCode" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "monthCode");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/monthsInYear/basic.js b/polyfill/test/PlainDate/prototype/monthsInYear/basic.js
deleted file mode 100644
index 96cb9b6752..0000000000
--- a/polyfill/test/PlainDate/prototype/monthsInYear/basic.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.monthsinyear
-description: Basic tests for monthsInYear().
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1976, 11, 18);
-assert.sameValue(plainDate.monthsInYear, 12);
diff --git a/polyfill/test/PlainDate/prototype/monthsInYear/branding.js b/polyfill/test/PlainDate/prototype/monthsInYear/branding.js
deleted file mode 100644
index 163d5b4581..0000000000
--- a/polyfill/test/PlainDate/prototype/monthsInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.monthsinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthsInYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "monthsInYear").get;
-
-assert.sameValue(typeof monthsInYear, "function");
-
-assert.throws(TypeError, () => monthsInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null), "null");
-assert.throws(TypeError, () => monthsInYear.call(true), "true");
-assert.throws(TypeError, () => monthsInYear.call(""), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1), "1");
-assert.throws(TypeError, () => monthsInYear.call({}), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/monthsInYear/prop-desc.js b/polyfill/test/PlainDate/prototype/monthsInYear/prop-desc.js
deleted file mode 100644
index d591b01b6b..0000000000
--- a/polyfill/test/PlainDate/prototype/monthsInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.monthsinyear
-description: The "monthsInYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "monthsInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/since/argument-plaindatetime.js b/polyfill/test/PlainDate/prototype/since/argument-plaindatetime.js
deleted file mode 100644
index 7ae43e07fe..0000000000
--- a/polyfill/test/PlainDate/prototype/since/argument-plaindatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.since
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- const result = date.since(datetime);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 0, "time part dropped");
-});
diff --git a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ce35b550d6..0000000000
--- a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.since(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 6ae628b48e..0000000000
--- a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.since(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0a3497025f..0000000000
--- a/polyfill/test/PlainDate/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => date.since(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/since/basic.js b/polyfill/test/PlainDate/prototype/since/basic.js
deleted file mode 100644
index 25ef7d7c2b..0000000000
--- a/polyfill/test/PlainDate/prototype/since/basic.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Basic tests for since().
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1969, 7, 24);
-const plainDate2 = Temporal.PlainDate.from({ year: 1969, month: 10, day: 5 });
-TemporalHelpers.assertDuration(plainDate2.since(plainDate), 0, 0, 0, /* days = */ 73, 0, 0, 0, 0, 0, 0, "same year");
-
-const earlier = new Temporal.PlainDate(1969, 7, 24);
-const later = new Temporal.PlainDate(1996, 3, 3);
-const duration = later.since(earlier);
-TemporalHelpers.assertDuration(duration, 0, 0, 0, /* days = */ 9719, 0, 0, 0, 0, 0, 0, "different year");
-
-TemporalHelpers.assertDuration(plainDate.since({ year: 2019, month: 7, day: 24 }), 0, 0, 0, /* days = */ -18262, 0, 0, 0, 0, 0, 0, "option bag");
-TemporalHelpers.assertDuration(plainDate.since("2019-07-24"), 0, 0, 0, /* days = */ -18262, 0, 0, 0, 0, 0, 0, "string");
diff --git a/polyfill/test/PlainDate/prototype/since/branding.js b/polyfill/test/PlainDate/prototype/since/branding.js
deleted file mode 100644
index 7b7ea57483..0000000000
--- a/polyfill/test/PlainDate/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.PlainDate.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => since.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/since/builtin.js b/polyfill/test/PlainDate/prototype/since/builtin.js
deleted file mode 100644
index e739c110cf..0000000000
--- a/polyfill/test/PlainDate/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: >
- Tests that Temporal.PlainDate.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainDate/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index 1d52ad2046..0000000000
--- a/polyfill/test/PlainDate/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plaindate.prototype.since steps 13–14:
- 13. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _largestUnit_).
- 14. Let _result_ be ? CalendarDateUntil(_temporalDate_.[[Calendar]], _other_, _temporalDate_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainDate(2000, 5, 2, calendar);
- const later = new Temporal.PlainDate(2001, 6, 3, calendar);
- later.since(earlier, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"]
- }
-);
diff --git a/polyfill/test/PlainDate/prototype/since/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/since/calendar-fields-iterable.js
deleted file mode 100644
index 0c66704c38..0000000000
--- a/polyfill/test/PlainDate/prototype/since/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-date.since({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/since/calendar-id-match.js b/polyfill/test/PlainDate/prototype/since/calendar-id-match.js
deleted file mode 100644
index 0c2953910c..0000000000
--- a/polyfill/test/PlainDate/prototype/since/calendar-id-match.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Calculation is performed if calendars' toString results match
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-class Calendar1 extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- toString() {
- return "A";
- }
-}
-class Calendar2 extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- toString() {
- return "A";
- }
-}
-
-const plainDate1 = new Temporal.PlainDate(2000, 1, 1, new Calendar1());
-const plainDate2 = new Temporal.PlainDate(2000, 1, 2, new Calendar2());
-TemporalHelpers.assertDuration(plainDate2.since(plainDate1), 0, 0, 0, /* days = */ 1, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/PlainDate/prototype/since/calendar-mismatch.js b/polyfill/test/PlainDate/prototype/since/calendar-mismatch.js
deleted file mode 100644
index eabfb22ad7..0000000000
--- a/polyfill/test/PlainDate/prototype/since/calendar-mismatch.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown if calendars' toString results do not match
-features: [Temporal]
----*/
-
-const calendar1 = { toString() { return "A"; } };
-const calendar2 = { toString() { return "B"; } };
-
-const plainDate1 = new Temporal.PlainDate(2000, 1, 1, calendar1);
-const plainDate2 = new Temporal.PlainDate(2000, 1, 1, calendar2);
-assert.throws(RangeError, () => plainDate1.since(plainDate2));
diff --git a/polyfill/test/PlainDate/prototype/since/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/since/calendar-temporal-object.js
deleted file mode 100644
index 333aee1f87..0000000000
--- a/polyfill/test/PlainDate/prototype/since/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDate(2000, 5, 2, temporalObject);
- date.since({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDate/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 221390ad16..0000000000
--- a/polyfill/test/PlainDate/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-default.js b/polyfill/test/PlainDate/prototype/since/largestunit-default.js
deleted file mode 100644
index dbeb5699d6..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-default.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Default value for largestUnit option is days
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-TemporalHelpers.assertDuration(feb21.since(feb20), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no options");
-TemporalHelpers.assertDuration(feb21.since(feb20, undefined), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "undefined options");
-TemporalHelpers.assertDuration(feb21.since(feb20, {}), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no largestUnit");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: undefined }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "undefined largestUnit");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: "days" }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "days");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: "auto" }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "auto");
-TemporalHelpers.assertDuration(feb21.since(feb20, () => {}), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no largestUnit (function)");
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-higher-units.js b/polyfill/test/PlainDate/prototype/since/largestunit-higher-units.js
deleted file mode 100644
index c1d8068ee4..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-higher-units.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Tests calculations with higher largestUnit than the default of 'days'
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(1969, 7, 24);
-const later = Temporal.PlainDate.from({ year: 2019, month: 7, day: 24 });
-const duration = later.since(date, { largestUnit: "years" });
-TemporalHelpers.assertDuration(duration, /* years = */ 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, "crossing epoch");
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: "years" }), /* years = */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "start of February, years");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: "months" }), 0, /* months = */ 12, 0, 0, 0, 0, 0, 0, 0, 0, "start of February, months");
-TemporalHelpers.assertDuration(feb21.since(feb20, { largestUnit: "weeks" }), 0, 0, /* weeks = */ 52, /* days = */ 2, 0, 0, 0, 0, 0, 0, 0, "start of February, weeks");
-
-const lastFeb20 = Temporal.PlainDate.from("2020-02-29");
-const lastFeb21 = Temporal.PlainDate.from("2021-02-28");
-TemporalHelpers.assertDuration(lastFeb21.since(lastFeb20, { largestUnit: "years" }), 0, /* months = */ 11, 0, /* days = */ 28, 0, 0, 0, 0, 0, 0, 0, "end of February, years");
-TemporalHelpers.assertDuration(lastFeb21.since(lastFeb20, { largestUnit: "months" }), 0, /* months = */ 11, 0, /* days = */ 28, 0, 0, 0, 0, 0, 0, "end of February, months");
-TemporalHelpers.assertDuration(lastFeb21.since(lastFeb20, { largestUnit: "weeks" }), 0, 0, /* weeks = */ 52, /* days = */ 1, 0, 0, 0, 0, 0, 0, "end of February, weeks");
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-invalid-string.js b/polyfill/test/PlainDate/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index ffaa7cb0d8..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-const values = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds", "other string"];
-for (const largestUnit of values) {
- assert.throws(RangeError, () => later.since(earlier, { largestUnit }));
-}
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/PlainDate/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index 41dd5e5afd..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 12);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-smallestunit-mismatch.js b/polyfill/test/PlainDate/prototype/since/largestunit-smallestunit-mismatch.js
deleted file mode 100644
index 8b1894c3fd..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-smallestunit-mismatch.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when smallestUnit is larger than largestUnit
-features: [Temporal]
----*/
-
-const earlier = Temporal.PlainDate.from("2019-01-08");
-const later = Temporal.PlainDate.from("2021-09-07");
-const units = ["years", "months", "weeks", "days"];
-for (let largestIdx = 1; largestIdx < units.length; largestIdx++) {
- for (let smallestIdx = 0; smallestIdx < largestIdx; smallestIdx++) {
- const largestUnit = units[largestIdx];
- const smallestUnit = units[smallestIdx];
- assert.throws(RangeError, () => later.since(earlier, { largestUnit, smallestUnit }));
- }
-}
diff --git a/polyfill/test/PlainDate/prototype/since/largestunit-wrong-type.js b/polyfill/test/PlainDate/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index 2d84b200b3..0000000000
--- a/polyfill/test/PlainDate/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/since/length.js b/polyfill/test/PlainDate/prototype/since/length.js
deleted file mode 100644
index 6938a51053..0000000000
--- a/polyfill/test/PlainDate/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Temporal.PlainDate.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/since/name.js b/polyfill/test/PlainDate/prototype/since/name.js
deleted file mode 100644
index 587c0ef847..0000000000
--- a/polyfill/test/PlainDate/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Temporal.PlainDate.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/since/not-a-constructor.js b/polyfill/test/PlainDate/prototype/since/not-a-constructor.js
deleted file mode 100644
index d6743dd6a5..0000000000
--- a/polyfill/test/PlainDate/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: >
- Temporal.PlainDate.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.since), false,
- "isConstructor(Temporal.PlainDate.prototype.since)");
diff --git a/polyfill/test/PlainDate/prototype/since/options-invalid.js b/polyfill/test/PlainDate/prototype/since/options-invalid.js
deleted file mode 100644
index 58d22815ab..0000000000
--- a/polyfill/test/PlainDate/prototype/since/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => feb21.since(feb20, badOptions));
-}
diff --git a/polyfill/test/PlainDate/prototype/since/prop-desc.js b/polyfill/test/PlainDate/prototype/since/prop-desc.js
deleted file mode 100644
index 3989b670e8..0000000000
--- a/polyfill/test/PlainDate/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: The "since" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.since,
- "function",
- "`typeof PlainDate.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/since/roundingincrement-nan.js b/polyfill/test/PlainDate/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index bddc28e6dd..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.since step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainDate/prototype/since/roundingincrement-non-integer.js b/polyfill/test/PlainDate/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index e1a4608236..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainDate/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/PlainDate/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index 5fef7e40de..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainDate/prototype/since/roundingincrement-undefined.js b/polyfill/test/PlainDate/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index 50bdfeb483..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.since step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/PlainDate/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/PlainDate/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index 852567987d..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.since step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/since/roundingmode-invalid-string.js b/polyfill/test/PlainDate/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index cf9d9e20c7..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDate/prototype/since/roundingmode-undefined.js b/polyfill/test/PlainDate/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index 0d4a088b89..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 1, 1);
-
-const later1 = new Temporal.PlainDate(2005, 2, 20);
-const explicit1 = later1.since(earlier, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit1 = later1.since(earlier, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-
-const later2 = new Temporal.PlainDate(2005, 12, 15);
-const explicit2 = later2.since(earlier, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit2 = later2.since(earlier, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainDate/prototype/since/roundingmode-wrong-type.js b/polyfill/test/PlainDate/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index 9e872fac3a..0000000000
--- a/polyfill/test/PlainDate/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "year", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/since/smallestunit-invalid-string.js b/polyfill/test/PlainDate/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 6f8abc3939..0000000000
--- a/polyfill/test/PlainDate/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-const values = ["era", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds", "other string"];
-for (const smallestUnit of values) {
- assert.throws(RangeError, () => later.since(earlier, { smallestUnit }));
-}
diff --git a/polyfill/test/PlainDate/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/PlainDate/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index 1bed0f656f..0000000000
--- a/polyfill/test/PlainDate/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 12);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDate/prototype/since/smallestunit-undefined.js b/polyfill/test/PlainDate/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index 3a37e05853..0000000000
--- a/polyfill/test/PlainDate/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, "default smallestUnit is day");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, "default smallestUnit is day");
diff --git a/polyfill/test/PlainDate/prototype/since/smallestunit-wrong-type.js b/polyfill/test/PlainDate/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 8f41f5e76b..0000000000
--- a/polyfill/test/PlainDate/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "year",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/subtract/argument-not-object.js b/polyfill/test/PlainDate/prototype/subtract/argument-not-object.js
deleted file mode 100644
index 540356eda7..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Passing a primitive other than string to subtract() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-assert.throws(RangeError, () => instance.subtract(undefined), "undefined");
-assert.throws(RangeError, () => instance.subtract(null), "null");
-assert.throws(RangeError, () => instance.subtract(true), "boolean");
-assert.throws(RangeError, () => instance.subtract(""), "empty string");
-assert.throws(TypeError, () => instance.subtract(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.subtract(7), "number");
-assert.throws(RangeError, () => instance.subtract(7n), "bigint");
diff --git a/polyfill/test/PlainDate/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/PlainDate/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index fb657c460e..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-
-const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainDate(resultHours, 2000, 5, "M05", 3, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainDate(resultMinutes, 2000, 5, "M05", 3, "negative fractional minutes");
diff --git a/polyfill/test/PlainDate/prototype/subtract/argument-string.js b/polyfill/test/PlainDate/prototype/subtract/argument-string.js
deleted file mode 100644
index a78a8ea956..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-const result = instance.subtract("P3D");
-TemporalHelpers.assertPlainDate(result, 2000, 4, "M04", 29);
diff --git a/polyfill/test/PlainDate/prototype/subtract/balance-smaller-units.js b/polyfill/test/PlainDate/prototype/subtract/balance-smaller-units.js
deleted file mode 100644
index aa49cb1cd6..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/balance-smaller-units.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.prototype.dateadd
-description: Durations with units smaller than days are balanced before adding, in the calendar
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-
-class DateAddCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateAdd(date, duration, options) {
- actual.push(duration);
- return super.dateAdd(date, duration, options);
- }
-}
-
-const calendar = new DateAddCalendar();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-const duration = new Temporal.Duration(0, 0, 0, 1, 24, 1440, 86400, 86400_000, 86400_000_000, 86400_000_000_000);
-
-const result = date.subtract(duration);
-TemporalHelpers.assertPlainDate(result, 2000, 4, "M04", 25, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 1, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[0], 0, 0, 0, -1, -24, -1440, -86400, -86400_000, -86400_000_000, -86400_000_000_000, "the duration is negated but not balanced before passing to the calendar");
-assert.notSameValue(actual[0], duration, "the duration is not passed directly to the calendar");
-
-const resultString = date.subtract("P1DT24H1440M86400S");
-TemporalHelpers.assertPlainDate(resultString, 2000, 4, "M04", 28, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 2, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[1], 0, 0, 0, -1, -24, -1440, -86400, 0, 0, 0, "the duration is negated but not balanced before passing to the calendar");
-
-const resultPropBag = date.subtract({ days: 1, hours: 24, minutes: 1440, seconds: 86400, milliseconds: 86400_000, microseconds: 86400_000_000, nanoseconds: 86400_000_000_000 });
-TemporalHelpers.assertPlainDate(resultPropBag, 2000, 4, "M04", 25, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 3, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[2], 0, 0, 0, -1, -24, -1440, -86400, -86400_000, -86400_000_000, -86400_000_000_000, "the duration is not balanced before passing to the calendar");
-
-const negativeDuration = new Temporal.Duration(0, 0, 0, -1, -24, -1440, -86400, -86400_000, -86400_000_000, -86400_000_000_000);
-const resultNegative = date.subtract(negativeDuration);
-TemporalHelpers.assertPlainDate(resultNegative, 2000, 5, "M05", 9, "units smaller than days are balanced");
-
-assert.sameValue(actual.length, 4, "calendar.dateAdd called exactly once");
-TemporalHelpers.assertDuration(actual[3], 0, 0, 0, 1, 24, 1440, 86400, 86400_000, 86400_000_000, 86400_000_000_000, "the duration is negated but not balanced before passing to the calendar");
-assert.notSameValue(actual[3], negativeDuration, "the duration is not passed directly to the calendar");
diff --git a/polyfill/test/PlainDate/prototype/subtract/branding.js b/polyfill/test/PlainDate/prototype/subtract/branding.js
deleted file mode 100644
index fb89bca42b..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.PlainDate.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/subtract/builtin.js b/polyfill/test/PlainDate/prototype/subtract/builtin.js
deleted file mode 100644
index e7e659066c..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: >
- Tests that Temporal.PlainDate.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index d66784adec..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaindate.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/length.js b/polyfill/test/PlainDate/prototype/subtract/length.js
deleted file mode 100644
index 6f4de6acb4..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Temporal.PlainDate.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/name.js b/polyfill/test/PlainDate/prototype/subtract/name.js
deleted file mode 100644
index 82cd31c7b6..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Temporal.PlainDate.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index f3858b47c1..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaindate.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDate.from({ year: 2000, month: 5, day: 2 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 67828b15f8..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/not-a-constructor.js b/polyfill/test/PlainDate/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 5642fc96d0..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: >
- Temporal.PlainDate.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.subtract), false,
- "isConstructor(Temporal.PlainDate.prototype.subtract)");
diff --git a/polyfill/test/PlainDate/prototype/subtract/options-invalid.js b/polyfill/test/PlainDate/prototype/subtract/options-invalid.js
deleted file mode 100644
index 5d4f1c671a..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/options-invalid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 3, 31);
-const duration = { months: 1 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => plainDate.subtract(duration, badOptions));
-}
diff --git a/polyfill/test/PlainDate/prototype/subtract/options-undefined.js b/polyfill/test/PlainDate/prototype/subtract/options-undefined.js
deleted file mode 100644
index baf542fddd..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 3, 31);
-const duration = { months: 1 };
-
-const explicit = date.subtract(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = date.subtract(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/subtract/order-of-operations.js b/polyfill/test/PlainDate/prototype/subtract/order-of-operations.js
deleted file mode 100644
index a59ae9c670..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument);
-TemporalHelpers.assertPlainDate(result, 1999, 3, "M03", 25);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDate/prototype/subtract/overflow-invalid-string.js b/polyfill/test/PlainDate/prototype/subtract/overflow-invalid-string.js
deleted file mode 100644
index 842e02756c..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/overflow-invalid-string.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.subtract step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _negatedDuration_, _options_).
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-assert.throws(RangeError, () => date.subtract(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainDate/prototype/subtract/overflow-undefined.js b/polyfill/test/PlainDate/prototype/subtract/overflow-undefined.js
deleted file mode 100644
index efd011b824..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/overflow-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.subtract step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _negatedDuration_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 31);
-const duration = new Temporal.Duration(3, 1);
-
-const explicit = date.subtract(duration, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 1997, 4, "M04", 30, "default overflow is constrain");
-const implicit = date.subtract(duration, {});
-TemporalHelpers.assertPlainDate(implicit, 1997, 4, "M04", 30, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/subtract/overflow-wrong-type.js b/polyfill/test/PlainDate/prototype/subtract/overflow-wrong-type.js
deleted file mode 100644
index 7b2ad36433..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/overflow-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.subtract step 7:
- 7. Return ? CalendarDateAdd(_temporalDate_.[[Calendar]], _temporalDate_, _negatedDuration_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const duration = new Temporal.Duration(3, 3, 0, 3);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => date.subtract(duration, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 1997, 1, "M01", 30, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/subtract/prop-desc.js b/polyfill/test/PlainDate/prototype/subtract/prop-desc.js
deleted file mode 100644
index aa8522fd16..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: The "subtract" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.subtract,
- "function",
- "`typeof PlainDate.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/subtract/subclassing-ignored.js b/polyfill/test/PlainDate/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 853b98f35d..0000000000
--- a/polyfill/test/PlainDate/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Objects of a subclass are never created as return values for subtract()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDate,
- [2000, 5, 2],
- "subtract",
- [{ days: 1 }],
- (result) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 1),
-);
diff --git a/polyfill/test/PlainDate/prototype/toJSON/branding.js b/polyfill/test/PlainDate/prototype/toJSON/branding.js
deleted file mode 100644
index c384ffedbe..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.PlainDate.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toJSON/builtin.js b/polyfill/test/PlainDate/prototype/toJSON/builtin.js
deleted file mode 100644
index 574d492833..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: >
- Tests that Temporal.PlainDate.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toJSON/length.js b/polyfill/test/PlainDate/prototype/toJSON/length.js
deleted file mode 100644
index a71a8032b9..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: Temporal.PlainDate.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toJSON/name.js b/polyfill/test/PlainDate/prototype/toJSON/name.js
deleted file mode 100644
index 64f6b9ad5e..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: Temporal.PlainDate.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toJSON/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index afed9683c3..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: >
- Temporal.PlainDate.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toJSON), false,
- "isConstructor(Temporal.PlainDate.prototype.toJSON)");
diff --git a/polyfill/test/PlainDate/prototype/toJSON/prop-desc.js b/polyfill/test/PlainDate/prototype/toJSON/prop-desc.js
deleted file mode 100644
index a275732d87..0000000000
--- a/polyfill/test/PlainDate/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tojson
-description: The "toJSON" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toJSON,
- "function",
- "`typeof PlainDate.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/branding.js b/polyfill/test/PlainDate/prototype/toLocaleString/branding.js
deleted file mode 100644
index 8dc444a6da..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.PlainDate.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/builtin.js b/polyfill/test/PlainDate/prototype/toLocaleString/builtin.js
deleted file mode 100644
index eede0bfd2b..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: >
- Tests that Temporal.PlainDate.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/length.js b/polyfill/test/PlainDate/prototype/toLocaleString/length.js
deleted file mode 100644
index 9d6dcb5d1a..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: Temporal.PlainDate.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/locales-undefined.js b/polyfill/test/PlainDate/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index f2928e224e..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const expected = defaultFormatter.format(date);
-
-const actualExplicit = date.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = date.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/name.js b/polyfill/test/PlainDate/prototype/toLocaleString/name.js
deleted file mode 100644
index a15b0dbd5e..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: Temporal.PlainDate.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index 5f3dac64ea..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: >
- Temporal.PlainDate.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toLocaleString), false,
- "isConstructor(Temporal.PlainDate.prototype.toLocaleString)");
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/options-conflict.js b/polyfill/test/PlainDate/prototype/toLocaleString/options-conflict.js
deleted file mode 100644
index 3deb4c2b24..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/options-conflict.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Kate Miháliková. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sup-temporal.plaindate.prototype.tolocalestring
-description: >
- Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
-info: |
- Using sec-temporal-getdatetimeformatpattern:
- GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
-
- 1. If dateStyle is not undefined or timeStyle is not undefined, then
- a. For each row in Table 7, except the header row, do
- i. Let prop be the name given in the Property column of the row.
- ii. Let p be opt.[[]].
- iii. If p is not undefined, then
- 1. Throw a TypeError exception.
-features: [Temporal]
----*/
-
-// Table 14 - Supported fields + example value for each field
-const conflictingOptions = [
- [ "weekday", "short" ],
- [ "era", "short" ],
- [ "year", "numeric" ],
- [ "month", "numeric" ],
- [ "day", "numeric" ],
-];
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-assert.sameValue(typeof date.toLocaleString("en", { dateStyle: "short" }), "string");
-
-for (const [ option, value ] of conflictingOptions) {
- assert.throws(TypeError, function() {
- date.toLocaleString("en", { [option]: value, dateStyle: "short" });
- }, `date.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
-}
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/options-undefined.js b/polyfill/test/PlainDate/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index b95280c882..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const expected = defaultFormatter.format(date);
-
-const actualExplicit = date.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = date.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainDate/prototype/toLocaleString/prop-desc.js b/polyfill/test/PlainDate/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index e9376034a3..0000000000
--- a/polyfill/test/PlainDate/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toLocaleString,
- "function",
- "`typeof PlainDate.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index fa98f2c05d..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindate.prototype.toplaindatetime step 4:
- 4. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const pdt = date.toPlainDateTime(datetime);
-
-TemporalHelpers.assertPlainDateTime(pdt, 2000, 5, "M05", 2, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index ec19024fc1..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const result = instance.toPlainDateTime(datetime);
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ad8dc11155..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 3d522fe48d..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 3af8fa988f..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => date.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/basic.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/basic.js
deleted file mode 100644
index f9bdc52197..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/basic.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Basic tests for toPlainDateTime().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-const string = date.toPlainDateTime("11:30:23");
-TemporalHelpers.assertPlainDateTime(string, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "string");
-
-const optionBag = date.toPlainDateTime({ hour: 11, minute: 30, second: 23 });
-TemporalHelpers.assertPlainDateTime(optionBag, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "option bag");
-
-const plainTime = date.toPlainDateTime(Temporal.PlainTime.from("11:30:23"));
-TemporalHelpers.assertPlainDateTime(plainTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
-
-const plainDateTime = date.toPlainDateTime(Temporal.PlainDateTime.from("1999-07-14T11:30:23"));
-TemporalHelpers.assertPlainDateTime(plainDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
-
-const zonedDateTime = date.toPlainDateTime(Temporal.ZonedDateTime.from("1999-07-14T11:30:23Z[UTC]"));
-TemporalHelpers.assertPlainDateTime(zonedDateTime, 2000, 5, "M05", 2, 11, 30, 23, 0, 0, 0, "PlainTime");
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/branding.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/branding.js
deleted file mode 100644
index c0e812f89f..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDateTime = Temporal.PlainDate.prototype.toPlainDateTime;
-
-assert.sameValue(typeof toPlainDateTime, "function");
-
-assert.throws(TypeError, () => toPlainDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDateTime.call(null), "null");
-assert.throws(TypeError, () => toPlainDateTime.call(true), "true");
-assert.throws(TypeError, () => toPlainDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDateTime.call(1), "1");
-assert.throws(TypeError, () => toPlainDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/builtin.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/builtin.js
deleted file mode 100644
index 0af44ec547..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: >
- Tests that Temporal.PlainDate.prototype.toPlainDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toPlainDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toPlainDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toPlainDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toPlainDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js
deleted file mode 100644
index 5f58688a57..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.toplaindatetime step 4:
- 4. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => date.toPlainDateTime({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/length.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/length.js
deleted file mode 100644
index c44975fd5c..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Temporal.PlainDate.prototype.toPlainDateTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainDateTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/name.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/name.js
deleted file mode 100644
index c39b036ef6..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: Temporal.PlainDate.prototype.toPlainDateTime.name is "toPlainDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainDateTime, "name", {
- value: "toPlainDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/not-a-constructor.js
deleted file mode 100644
index 375a942a45..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: >
- Temporal.PlainDate.prototype.toPlainDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toPlainDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toPlainDateTime), false,
- "isConstructor(Temporal.PlainDate.prototype.toPlainDateTime)");
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/prop-desc.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/prop-desc.js
deleted file mode 100644
index e6542f784d..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: The "toPlainDateTime" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toPlainDateTime,
- "function",
- "`typeof PlainDate.prototype.toPlainDateTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toPlainDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/time-invalid.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/time-invalid.js
deleted file mode 100644
index 9f354b75fb..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/time-invalid.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: TypeError thrown if an invalid property bag passed
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 5, 2);
-assert.throws(TypeError, () => plainDate.toPlainDateTime({}), "empty object");
-assert.throws(TypeError, () => plainDate.toPlainDateTime({ minutes: 30 }), "plural property");
diff --git a/polyfill/test/PlainDate/prototype/toPlainDateTime/time-undefined.js b/polyfill/test/PlainDate/prototype/toPlainDateTime/time-undefined.js
deleted file mode 100644
index ec2032e80a..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainDateTime/time-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplaindatetime
-description: The time is assumed to be midnight if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-
-const explicit = date.toPlainDateTime(undefined);
-TemporalHelpers.assertPlainDateTime(explicit, 2000, 5, "M05", 2, 0, 0, 0, 0, 0, 0, "default time is midnight - explicit");
-
-const implicit = date.toPlainDateTime();
-TemporalHelpers.assertPlainDateTime(implicit, 2000, 5, "M05", 2, 0, 0, 0, 0, 0, 0, "default time is midnight - implicit");
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/branding.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/branding.js
deleted file mode 100644
index 3579da2ba7..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainMonthDay = Temporal.PlainDate.prototype.toPlainMonthDay;
-
-assert.sameValue(typeof toPlainMonthDay, "function");
-
-assert.throws(TypeError, () => toPlainMonthDay.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainMonthDay.call(null), "null");
-assert.throws(TypeError, () => toPlainMonthDay.call(true), "true");
-assert.throws(TypeError, () => toPlainMonthDay.call(""), "empty string");
-assert.throws(TypeError, () => toPlainMonthDay.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainMonthDay.call(1), "1");
-assert.throws(TypeError, () => toPlainMonthDay.call({}), "plain object");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/builtin.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/builtin.js
deleted file mode 100644
index e03db7cead..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: >
- Tests that Temporal.PlainDate.prototype.toPlainMonthDay
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toPlainMonthDay),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toPlainMonthDay),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toPlainMonthDay),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toPlainMonthDay.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-arguments.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-arguments.js
deleted file mode 100644
index b8dda84d66..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: Correct options value is passed to calendar method
-info: |
- MonthDayFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- monthDayFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.monthDayFromFields(...args);
- }
-}
-const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar());
-const result = plainDate.toPlainMonthDay();
-TemporalHelpers.assertPlainMonthDay(result, "M05", 2);
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-fields-iterable.js
deleted file mode 100644
index 96e39b8b35..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.toplainmonthday step 4:
- 4. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"monthCode"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "monthCode",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-date.toPlainMonthDay();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/length.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/length.js
deleted file mode 100644
index 2825073156..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: Temporal.PlainDate.prototype.toPlainMonthDay.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainMonthDay, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/name.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/name.js
deleted file mode 100644
index 7bda93658a..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: Temporal.PlainDate.prototype.toPlainMonthDay.name is "toPlainMonthDay".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainMonthDay, "name", {
- value: "toPlainMonthDay",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/not-a-constructor.js
deleted file mode 100644
index e52949d31c..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: >
- Temporal.PlainDate.prototype.toPlainMonthDay does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toPlainMonthDay();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toPlainMonthDay), false,
- "isConstructor(Temporal.PlainDate.prototype.toPlainMonthDay)");
diff --git a/polyfill/test/PlainDate/prototype/toPlainMonthDay/prop-desc.js b/polyfill/test/PlainDate/prototype/toPlainMonthDay/prop-desc.js
deleted file mode 100644
index 10fe176208..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainMonthDay/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainmonthday
-description: The "toPlainMonthDay" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toPlainMonthDay,
- "function",
- "`typeof PlainDate.prototype.toPlainMonthDay` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toPlainMonthDay", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/branding.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/branding.js
deleted file mode 100644
index a3ee6e2f37..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainYearMonth = Temporal.PlainDate.prototype.toPlainYearMonth;
-
-assert.sameValue(typeof toPlainYearMonth, "function");
-
-assert.throws(TypeError, () => toPlainYearMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainYearMonth.call(null), "null");
-assert.throws(TypeError, () => toPlainYearMonth.call(true), "true");
-assert.throws(TypeError, () => toPlainYearMonth.call(""), "empty string");
-assert.throws(TypeError, () => toPlainYearMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainYearMonth.call(1), "1");
-assert.throws(TypeError, () => toPlainYearMonth.call({}), "plain object");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/builtin.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/builtin.js
deleted file mode 100644
index ff975caeca..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: >
- Tests that Temporal.PlainDate.prototype.toPlainYearMonth
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toPlainYearMonth),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toPlainYearMonth),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toPlainYearMonth),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toPlainYearMonth.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-arguments.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-arguments.js
deleted file mode 100644
index 5dd51a40c1..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: Correct options value is passed to calendar method
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainDate = new Temporal.PlainDate(2000, 5, 2, new CustomCalendar());
-const result = plainDate.toPlainYearMonth();
-TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05");
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-fields-iterable.js
deleted file mode 100644
index 7203335d86..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.toplainyearmonth step 4:
- 4. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-date.toPlainYearMonth();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/length.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/length.js
deleted file mode 100644
index 9e1c0d5a80..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: Temporal.PlainDate.prototype.toPlainYearMonth.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainYearMonth, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/name.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/name.js
deleted file mode 100644
index dddc6f0f91..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: Temporal.PlainDate.prototype.toPlainYearMonth.name is "toPlainYearMonth".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toPlainYearMonth, "name", {
- value: "toPlainYearMonth",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/not-a-constructor.js
deleted file mode 100644
index 31cc670c74..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: >
- Temporal.PlainDate.prototype.toPlainYearMonth does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toPlainYearMonth();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toPlainYearMonth), false,
- "isConstructor(Temporal.PlainDate.prototype.toPlainYearMonth)");
diff --git a/polyfill/test/PlainDate/prototype/toPlainYearMonth/prop-desc.js b/polyfill/test/PlainDate/prototype/toPlainYearMonth/prop-desc.js
deleted file mode 100644
index c7b42f80a6..0000000000
--- a/polyfill/test/PlainDate/prototype/toPlainYearMonth/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.toplainyearmonth
-description: The "toPlainYearMonth" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toPlainYearMonth,
- "function",
- "`typeof PlainDate.prototype.toPlainYearMonth` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toPlainYearMonth", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toString/branding.js b/polyfill/test/PlainDate/prototype/toString/branding.js
deleted file mode 100644
index 30b7ff54c7..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.PlainDate.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toString.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toString/builtin.js b/polyfill/test/PlainDate/prototype/toString/builtin.js
deleted file mode 100644
index 7a9569f947..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: >
- Tests that Temporal.PlainDate.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toString/calendarname-invalid-string.js b/polyfill/test/PlainDate/prototype/toString/calendarname-invalid-string.js
deleted file mode 100644
index bca22e7be7..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/calendarname-invalid-string.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.protoype.tostring
-description: RangeError thrown when calendarName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindate.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const values = ["ALWAYS", "sometimes", "other string"];
-
-for (const calendarName of values) {
- assert.throws(RangeError, () => date.toString({ calendarName }));
-}
diff --git a/polyfill/test/PlainDate/prototype/toString/calendarname-undefined.js b/polyfill/test/PlainDate/prototype/toString/calendarname-undefined.js
deleted file mode 100644
index 0d5e93e787..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/calendarname-undefined.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.protoype.tostring
-description: Fallback value for calendarName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindate.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
-[
- [date1, "2000-05-02"],
- [date2, "2000-05-02[u-ca=custom]"],
-].forEach(([date, expected]) => {
- const explicit = date.toString({ calendarName: undefined });
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = date.toString({});
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-});
diff --git a/polyfill/test/PlainDate/prototype/toString/calendarname-wrong-type.js b/polyfill/test/PlainDate/prototype/toString/calendarname-wrong-type.js
deleted file mode 100644
index 2a621ea31f..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/calendarname-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.protoype.tostring
-description: Type conversions for calendarName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindate.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-
-TemporalHelpers.checkStringOptionWrongType("calendarName", "auto",
- (calendarName) => date.toString({ calendarName }),
- (result, descr) => assert.sameValue(result, "2000-05-02[u-ca=custom]", descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/toString/length.js b/polyfill/test/PlainDate/prototype/toString/length.js
deleted file mode 100644
index 5616608738..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: Temporal.PlainDate.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toString/name.js b/polyfill/test/PlainDate/prototype/toString/name.js
deleted file mode 100644
index 1a66abd66c..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: Temporal.PlainDate.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toString/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toString/not-a-constructor.js
deleted file mode 100644
index abe41cfe1b..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: >
- Temporal.PlainDate.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toString), false,
- "isConstructor(Temporal.PlainDate.prototype.toString)");
diff --git a/polyfill/test/PlainDate/prototype/toString/options-undefined.js b/polyfill/test/PlainDate/prototype/toString/options-undefined.js
deleted file mode 100644
index 389993ae72..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const date1 = new Temporal.PlainDate(2000, 5, 2);
-const date2 = new Temporal.PlainDate(2000, 5, 2, calendar);
-
-[
- [date1, "2000-05-02"],
- [date2, "2000-05-02[u-ca=custom]"],
-].forEach(([date, expected]) => {
- const explicit = date.toString(undefined);
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = date.toString();
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-});
diff --git a/polyfill/test/PlainDate/prototype/toString/prop-desc.js b/polyfill/test/PlainDate/prototype/toString/prop-desc.js
deleted file mode 100644
index 5172e2b005..0000000000
--- a/polyfill/test/PlainDate/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tostring
-description: The "toString" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toString,
- "function",
- "`typeof PlainDate.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index c1ab7725f8..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const result = instance.toZonedDateTime({ plainTime: datetime, timeZone: "UTC" });
-assert.sameValue(result.epochNanoseconds, 957286235_000_000_001n);
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/basic.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/basic.js
deleted file mode 100644
index 052aa88f66..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/basic.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Basic tests for toZonedDateTime().
-features: [Temporal]
----*/
-
-const plainDate = Temporal.PlainDate.from("2020-01-01");
-const timeZone = Temporal.TimeZone.from("America/Los_Angeles");
-const plainTime = Temporal.PlainTime.from("12:00");
-
-let result = plainDate.toZonedDateTime({ timeZone, plainTime });
-assert.sameValue(result.toString(), "2020-01-01T12:00:00-08:00[America/Los_Angeles]", "objects passed");
-
-result = plainDate.toZonedDateTime(timeZone);
-assert.sameValue(result.toString(), "2020-01-01T00:00:00-08:00[America/Los_Angeles]", "time zone object argument");
-
-result = plainDate.toZonedDateTime("America/Los_Angeles");
-assert.sameValue(result.toString(), "2020-01-01T00:00:00-08:00[America/Los_Angeles]", "time zone string argument");
-
-result = plainDate.toZonedDateTime({ timeZone });
-assert.sameValue(result.toString(), "2020-01-01T00:00:00-08:00[America/Los_Angeles]", "time zone object property");
-
-result = plainDate.toZonedDateTime({ timeZone: "America/Los_Angeles", plainTime });
-assert.sameValue(result.toString(), "2020-01-01T12:00:00-08:00[America/Los_Angeles]", "time zone string property");
-
-result = plainDate.toZonedDateTime({ timeZone, plainTime: "12:00" });
-assert.sameValue(result.toString(), "2020-01-01T12:00:00-08:00[America/Los_Angeles]", "time string property");
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/branding.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/branding.js
deleted file mode 100644
index 7d20da46b1..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toZonedDateTime = Temporal.PlainDate.prototype.toZonedDateTime;
-
-assert.sameValue(typeof toZonedDateTime, "function");
-
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/builtin.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/builtin.js
deleted file mode 100644
index a9b6de302b..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: >
- Tests that Temporal.PlainDate.prototype.toZonedDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.toZonedDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.toZonedDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.toZonedDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.toZonedDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 04afc0acd6..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.PlainDate(1970, 1, 1, calendar);
-instance.toZonedDateTime({ timeZone });
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js
deleted file mode 100644
index 0532439421..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.tozoneddatetime step 6.a:
- a. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => date.toZonedDateTime({ timeZone: "UTC", plainTime: { hour: 12, minute: 30, calendar: temporalObject } }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/length.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/length.js
deleted file mode 100644
index 7272e15a99..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Temporal.PlainDate.prototype.toZonedDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toZonedDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/name.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/name.js
deleted file mode 100644
index 7a697df90a..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Temporal.PlainDate.prototype.toZonedDateTime.name is "toZonedDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.toZonedDateTime, "name", {
- value: "toZonedDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/not-a-constructor.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/not-a-constructor.js
deleted file mode 100644
index d27ac5ac74..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: >
- Temporal.PlainDate.prototype.toZonedDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.toZonedDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.toZonedDateTime), false,
- "isConstructor(Temporal.PlainDate.prototype.toZonedDateTime)");
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 2b97bd1b5a..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Negative time fields are balanced upwards in a ZonedDateTime given as plainTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindate.prototype.tozoneddatetime step 6.a:
- a. Set _temporalTime_ to ? ToTemporalTime(_temporalTime_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const otherTimeZone = new Temporal.TimeZone("UTC"); // should not be used to convert datetime to PlainTime
-const date = new Temporal.PlainDate(2000, 5, 2);
-const zdt = date.toZonedDateTime({ timeZone: otherTimeZone, plainTime: datetime });
-
-assert.sameValue(zdt.microsecond, 0);
-assert.sameValue(zdt.nanosecond, 999);
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 1e81443779..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.toZonedDateTime({ plainTime: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 0dd4323644..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.toZonedDateTime({ plainTime: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index c158557b7b..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/plaintime-argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => date.toZonedDateTime({ plainTime: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/prop-desc.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/prop-desc.js
deleted file mode 100644
index 0259ea768b..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: The "toZonedDateTime" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.toZonedDateTime,
- "function",
- "`typeof PlainDate.prototype.toZonedDateTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "toZonedDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index fdadf46551..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => date.toZonedDateTime({ plainTime, timeZone }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 85c1390193..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => date.toZonedDateTime({ plainTime, timeZone }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index da5ce81daf..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(TypeError, () => date.toZonedDateTime({ plainTime, timeZone }));
-});
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index a3d4f47790..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.plaindate.prototype.tozoneddatetime step 7:
- 7. Let _instant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _temporalDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-builtintimezonegetinstantfor step 14:
- 14. Assert: _disambiguation_ is *"compatible"* or *"later"*.
- sec-temporal-builtintimezonegetinstantfor step 16:
- 16. Set _possibleInstants_ to ? GetPossibleInstantsFor(_timeZone_, _later_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "2000-05-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- date.toZonedDateTime(timeZone);
-}, expected1);
-
-// Same, but test the other path where the time doesn't exist and
-// GetPossibleInstantsFor is called again on a later time
-
-const expected2 = [
- "2030-01-01T00:30:00",
- "2030-01-01T01:30:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const date = new Temporal.PlainDate(2030, 1, 1);
- date.toZonedDateTime({ plainTime: new Temporal.PlainTime(0, 30), timeZone });
-}, expected2);
diff --git a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-string-datetime.js b/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-string-datetime.js
deleted file mode 100644
index b5ac42731a..0000000000
--- a/polyfill/test/PlainDate/prototype/toZonedDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toZonedDateTime(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/PlainDate/prototype/until/argument-plaindatetime.js b/polyfill/test/PlainDate/prototype/until/argument-plaindatetime.js
deleted file mode 100644
index 930b4ccf5d..0000000000
--- a/polyfill/test/PlainDate/prototype/until/argument-plaindatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.until
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const date = new Temporal.PlainDate(2000, 5, 2);
- const result = date.until(datetime);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 0, "time part dropped");
-});
diff --git a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index dc983f8cb3..0000000000
--- a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.until(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 88c0cdc398..0000000000
--- a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => date.until(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 326010d3c6..0000000000
--- a/polyfill/test/PlainDate/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const date = new Temporal.PlainDate(2000, 5, 2);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => date.until(datetime));
-});
diff --git a/polyfill/test/PlainDate/prototype/until/basic.js b/polyfill/test/PlainDate/prototype/until/basic.js
deleted file mode 100644
index 08782e0e5a..0000000000
--- a/polyfill/test/PlainDate/prototype/until/basic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Basic tests for until().
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1969, 7, 24);
-const plainDate2 = Temporal.PlainDate.from({ year: 1969, month: 10, day: 5 });
-TemporalHelpers.assertDuration(plainDate.until(plainDate2), 0, 0, 0, /* days = */ 73, 0, 0, 0, 0, 0, 0, "same year");
-
-const earlier = new Temporal.PlainDate(1969, 7, 24);
-const later = new Temporal.PlainDate(1996, 3, 3);
-TemporalHelpers.assertDuration(earlier.until(later), 0, 0, 0, /* days = */ 9719, 0, 0, 0, 0, 0, 0, "different year");
-
-TemporalHelpers.assertDuration(plainDate.until({ year: 2019, month: 7, day: 24 }), 0, 0, 0, /* days = */ 18262, 0, 0, 0, 0, 0, 0, "option bag");
-TemporalHelpers.assertDuration(plainDate.until("2019-07-24"), 0, 0, 0, /* days = */ 18262, 0, 0, 0, 0, 0, 0, "string");
diff --git a/polyfill/test/PlainDate/prototype/until/branding.js b/polyfill/test/PlainDate/prototype/until/branding.js
deleted file mode 100644
index ebbafe59ca..0000000000
--- a/polyfill/test/PlainDate/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.PlainDate.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => until.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/until/builtin.js b/polyfill/test/PlainDate/prototype/until/builtin.js
deleted file mode 100644
index 1c2f645ab3..0000000000
--- a/polyfill/test/PlainDate/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: >
- Tests that Temporal.PlainDate.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainDate/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index 49cfdbbc71..0000000000
--- a/polyfill/test/PlainDate/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plaindate.prototype.until steps 12–13:
- 13. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _largestUnit_).
- 14. Let _result_ be ? CalendarDateUntil(_temporalDate_.[[Calendar]], _temporalDate_, _other_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainDate(2000, 5, 2, calendar);
- const later = new Temporal.PlainDate(2001, 6, 3, calendar);
- earlier.until(later, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"]
- }
-);
diff --git a/polyfill/test/PlainDate/prototype/until/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/until/calendar-fields-iterable.js
deleted file mode 100644
index 9bf9f358ae..0000000000
--- a/polyfill/test/PlainDate/prototype/until/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-date.until({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/until/calendar-id-match.js b/polyfill/test/PlainDate/prototype/until/calendar-id-match.js
deleted file mode 100644
index 9eb1c08578..0000000000
--- a/polyfill/test/PlainDate/prototype/until/calendar-id-match.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Calculation is performed if calendars' toString results match
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-class Calendar1 extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- toString() {
- return "A";
- }
-}
-class Calendar2 extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- toString() {
- return "A";
- }
-}
-
-const plainDate1 = new Temporal.PlainDate(2000, 1, 1, new Calendar1());
-const plainDate2 = new Temporal.PlainDate(2000, 1, 2, new Calendar2());
-TemporalHelpers.assertDuration(plainDate1.until(plainDate2), 0, 0, 0, /* days = */ 1, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/PlainDate/prototype/until/calendar-mismatch.js b/polyfill/test/PlainDate/prototype/until/calendar-mismatch.js
deleted file mode 100644
index 481fff4f39..0000000000
--- a/polyfill/test/PlainDate/prototype/until/calendar-mismatch.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown if calendars' toString results do not match
-features: [Temporal]
----*/
-
-const calendar1 = { toString() { return "A"; } };
-const calendar2 = { toString() { return "B"; } };
-
-const plainDate1 = new Temporal.PlainDate(2000, 1, 1, calendar1);
-const plainDate2 = new Temporal.PlainDate(2000, 1, 1, calendar2);
-assert.throws(RangeError, () => plainDate1.until(plainDate2));
diff --git a/polyfill/test/PlainDate/prototype/until/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/until/calendar-temporal-object.js
deleted file mode 100644
index c14e479674..0000000000
--- a/polyfill/test/PlainDate/prototype/until/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDate(_other_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDate(2000, 5, 2, temporalObject);
- date.until({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDate/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index efeba2f97c..0000000000
--- a/polyfill/test/PlainDate/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-default.js b/polyfill/test/PlainDate/prototype/until/largestunit-default.js
deleted file mode 100644
index ea3f667957..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-default.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Default value for largestUnit option is days
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-TemporalHelpers.assertDuration(feb20.until(feb21), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no options");
-TemporalHelpers.assertDuration(feb20.until(feb21, undefined), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "undefined options");
-TemporalHelpers.assertDuration(feb20.until(feb21, {}), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no largestUnit");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: undefined }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "undefined largestUnit");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: "days" }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "days");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: "auto" }), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "auto");
-TemporalHelpers.assertDuration(feb20.until(feb21, () => {}), 0, 0, 0, /* days = */ 366, 0, 0, 0, 0, 0, 0, 0, "no largestUnit (function)");
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-higher-units.js b/polyfill/test/PlainDate/prototype/until/largestunit-higher-units.js
deleted file mode 100644
index 30c7ceec20..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-higher-units.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Tests calculations with higher largestUnit than the default of 'days'
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(1969, 7, 24);
-const later = Temporal.PlainDate.from({ year: 2019, month: 7, day: 24 });
-const duration = date.until(later, { largestUnit: "years" });
-TemporalHelpers.assertDuration(duration, /* years = */ 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, "crossing epoch");
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: "years" }), /* years = */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "start of February, years");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: "months" }), 0, /* months = */ 12, 0, 0, 0, 0, 0, 0, 0, 0, "start of February, months");
-TemporalHelpers.assertDuration(feb20.until(feb21, { largestUnit: "weeks" }), 0, 0, /* weeks = */ 52, /* days = */ 2, 0, 0, 0, 0, 0, 0, 0, "start of February, weeks");
-
-const lastFeb20 = Temporal.PlainDate.from("2020-02-29");
-const lastFeb21 = Temporal.PlainDate.from("2021-02-28");
-TemporalHelpers.assertDuration(lastFeb20.until(lastFeb21, { largestUnit: "years" }), /* years = */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "end of February, years");
-TemporalHelpers.assertDuration(lastFeb20.until(lastFeb21, { largestUnit: "months" }), 0, /* months = */ 12, 0, 0, 0, 0, 0, 0, 0, 0, "end of February, months");
-TemporalHelpers.assertDuration(lastFeb20.until(lastFeb21, { largestUnit: "weeks" }), 0, 0, /* weeks = */ 52, /* days = */ 1, 0, 0, 0, 0, 0, 0, "end of February, weeks");
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-invalid-string.js b/polyfill/test/PlainDate/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index 63b4279637..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-const values = ["hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds", "other string"];
-for (const largestUnit of values) {
- assert.throws(RangeError, () => earlier.until(later, { largestUnit }));
-}
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/PlainDate/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index 69170410b6..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 12);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-smallestunit-mismatch.js b/polyfill/test/PlainDate/prototype/until/largestunit-smallestunit-mismatch.js
deleted file mode 100644
index 7b2334722f..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-smallestunit-mismatch.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when smallestUnit is larger than largestUnit
-features: [Temporal]
----*/
-
-const earlier = Temporal.PlainDate.from("2019-01-08");
-const later = Temporal.PlainDate.from("2021-09-07");
-const units = ["years", "months", "weeks", "days"];
-for (let largestIdx = 1; largestIdx < units.length; largestIdx++) {
- for (let smallestIdx = 0; smallestIdx < largestIdx; smallestIdx++) {
- const largestUnit = units[largestIdx];
- const smallestUnit = units[smallestIdx];
- assert.throws(RangeError, () => earlier.until(later, { largestUnit, smallestUnit }));
- }
-}
diff --git a/polyfill/test/PlainDate/prototype/until/largestunit-wrong-type.js b/polyfill/test/PlainDate/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index e53df7dff0..0000000000
--- a/polyfill/test/PlainDate/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/until/length.js b/polyfill/test/PlainDate/prototype/until/length.js
deleted file mode 100644
index be7e4a3054..0000000000
--- a/polyfill/test/PlainDate/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Temporal.PlainDate.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/until/name.js b/polyfill/test/PlainDate/prototype/until/name.js
deleted file mode 100644
index 0677ede45a..0000000000
--- a/polyfill/test/PlainDate/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Temporal.PlainDate.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/until/not-a-constructor.js b/polyfill/test/PlainDate/prototype/until/not-a-constructor.js
deleted file mode 100644
index 897ef84fa3..0000000000
--- a/polyfill/test/PlainDate/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: >
- Temporal.PlainDate.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.until), false,
- "isConstructor(Temporal.PlainDate.prototype.until)");
diff --git a/polyfill/test/PlainDate/prototype/until/options-invalid.js b/polyfill/test/PlainDate/prototype/until/options-invalid.js
deleted file mode 100644
index 7c737f9eb5..0000000000
--- a/polyfill/test/PlainDate/prototype/until/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const feb20 = Temporal.PlainDate.from("2020-02-01");
-const feb21 = Temporal.PlainDate.from("2021-02-01");
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => feb20.until(feb21, badOptions));
-}
diff --git a/polyfill/test/PlainDate/prototype/until/prop-desc.js b/polyfill/test/PlainDate/prototype/until/prop-desc.js
deleted file mode 100644
index 3004aae201..0000000000
--- a/polyfill/test/PlainDate/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: The "until" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.until,
- "function",
- "`typeof PlainDate.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/until/roundingincrement-nan.js b/polyfill/test/PlainDate/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index 482c040143..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainDate/prototype/until/roundingincrement-non-integer.js b/polyfill/test/PlainDate/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index a5da75f9c5..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainDate/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/PlainDate/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index e0da8b519d..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainDate/prototype/until/roundingincrement-undefined.js b/polyfill/test/PlainDate/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index 51b0572192..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/PlainDate/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/PlainDate/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index 9ee1dbefd9..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindate.prototype.until step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2000, 5, 7);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/until/roundingmode-invalid-string.js b/polyfill/test/PlainDate/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index 2ed4da16bb..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDate/prototype/until/roundingmode-undefined.js b/polyfill/test/PlainDate/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index 683d63f4f9..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 1, 1);
-
-const later1 = new Temporal.PlainDate(2005, 2, 20);
-const explicit1 = earlier.until(later1, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later1, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-
-const later2 = new Temporal.PlainDate(2005, 12, 15);
-const explicit2 = earlier.until(later2, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later2, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainDate/prototype/until/roundingmode-wrong-type.js b/polyfill/test/PlainDate/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index 398c5b49e7..0000000000
--- a/polyfill/test/PlainDate/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "year", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/until/smallestunit-invalid-string.js b/polyfill/test/PlainDate/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index 86a4417749..0000000000
--- a/polyfill/test/PlainDate/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-const values = ["era", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds", "other string"];
-for (const smallestUnit of values) {
- assert.throws(RangeError, () => earlier.until(later, { smallestUnit }));
-}
diff --git a/polyfill/test/PlainDate/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/PlainDate/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index 8a37f65f24..0000000000
--- a/polyfill/test/PlainDate/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 12);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDate/prototype/until/smallestunit-undefined.js b/polyfill/test/PlainDate/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index 3e52556ca5..0000000000
--- a/polyfill/test/PlainDate/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, "default smallestUnit is day");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, "default smallestUnit is day");
diff --git a/polyfill/test/PlainDate/prototype/until/smallestunit-wrong-type.js b/polyfill/test/PlainDate/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index 34296f92dd..0000000000
--- a/polyfill/test/PlainDate/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDate(2000, 5, 2);
-const later = new Temporal.PlainDate(2001, 6, 3);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "year",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/valueOf/basic.js b/polyfill/test/PlainDate/prototype/valueOf/basic.js
deleted file mode 100644
index e695d887ab..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/basic.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: Basic tests for valueOf().
-features: [Temporal]
----*/
-
-const plainDate = Temporal.PlainDate.from("1963-02-13");
-const plainDate2 = Temporal.PlainDate.from("1963-02-13");
-
-assert.throws(TypeError, () => plainDate.valueOf(), "valueOf");
-assert.throws(TypeError, () => plainDate < plainDate, "<");
-assert.throws(TypeError, () => plainDate <= plainDate, "<=");
-assert.throws(TypeError, () => plainDate > plainDate, ">");
-assert.throws(TypeError, () => plainDate >= plainDate, ">=");
-assert.sameValue(plainDate === plainDate, true, "===");
-assert.sameValue(plainDate === plainDate2, false, "===");
-assert.sameValue(plainDate !== plainDate, false, "!==");
-assert.sameValue(plainDate !== plainDate2, true, "!==");
diff --git a/polyfill/test/PlainDate/prototype/valueOf/branding.js b/polyfill/test/PlainDate/prototype/valueOf/branding.js
deleted file mode 100644
index ac182f3ed9..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.PlainDate.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/valueOf/builtin.js b/polyfill/test/PlainDate/prototype/valueOf/builtin.js
deleted file mode 100644
index e1474704dd..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: >
- Tests that Temporal.PlainDate.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/valueOf/length.js b/polyfill/test/PlainDate/prototype/valueOf/length.js
deleted file mode 100644
index a9a5e46578..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: Temporal.PlainDate.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/valueOf/name.js b/polyfill/test/PlainDate/prototype/valueOf/name.js
deleted file mode 100644
index baa2c7ecc6..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: Temporal.PlainDate.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/valueOf/not-a-constructor.js b/polyfill/test/PlainDate/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index 4cfdfde1e1..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: >
- Temporal.PlainDate.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.valueOf), false,
- "isConstructor(Temporal.PlainDate.prototype.valueOf)");
diff --git a/polyfill/test/PlainDate/prototype/valueOf/prop-desc.js b/polyfill/test/PlainDate/prototype/valueOf/prop-desc.js
deleted file mode 100644
index 05659ad214..0000000000
--- a/polyfill/test/PlainDate/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.valueof
-description: The "valueOf" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.valueOf,
- "function",
- "`typeof PlainDate.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/weekOfYear/basic.js b/polyfill/test/PlainDate/prototype/weekOfYear/basic.js
deleted file mode 100644
index c9c7494a15..0000000000
--- a/polyfill/test/PlainDate/prototype/weekOfYear/basic.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.weekofyear
-description: Basic tests for weekOfYear().
-features: [Temporal]
----*/
-
-for (let i = 29; i <= 31; ++i) {
- const plainDate = new Temporal.PlainDate(1975, 12, i);
- assert.sameValue(plainDate.weekOfYear, 1, `${plainDate} should be in week 1`);
-}
-for (let i = 1; i <= 4; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 1, i);
- assert.sameValue(plainDate.weekOfYear, 1, `${plainDate} should be in week 1`);
-}
-for (let i = 5; i <= 11; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 1, i);
- assert.sameValue(plainDate.weekOfYear, 2, `${plainDate} should be in week 2`);
-}
-for (let i = 20; i <= 26; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 12, i);
- assert.sameValue(plainDate.weekOfYear, 52, `${plainDate} should be in week 52`);
-}
-for (let i = 27; i <= 31; ++i) {
- const plainDate = new Temporal.PlainDate(1976, 12, i);
- assert.sameValue(plainDate.weekOfYear, 53, `${plainDate} should be in week 53`);
-}
-for (let i = 1; i <= 2; ++i) {
- const plainDate = new Temporal.PlainDate(1977, 1, i);
- assert.sameValue(plainDate.weekOfYear, 53, `${plainDate} should be in week 53`);
-}
-
diff --git a/polyfill/test/PlainDate/prototype/weekOfYear/branding.js b/polyfill/test/PlainDate/prototype/weekOfYear/branding.js
deleted file mode 100644
index 6f50e42048..0000000000
--- a/polyfill/test/PlainDate/prototype/weekOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.weekofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const weekOfYear = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "weekOfYear").get;
-
-assert.sameValue(typeof weekOfYear, "function");
-
-assert.throws(TypeError, () => weekOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => weekOfYear.call(null), "null");
-assert.throws(TypeError, () => weekOfYear.call(true), "true");
-assert.throws(TypeError, () => weekOfYear.call(""), "empty string");
-assert.throws(TypeError, () => weekOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => weekOfYear.call(1), "1");
-assert.throws(TypeError, () => weekOfYear.call({}), "plain object");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/weekOfYear/prop-desc.js b/polyfill/test/PlainDate/prototype/weekOfYear/prop-desc.js
deleted file mode 100644
index cbde49d1e6..0000000000
--- a/polyfill/test/PlainDate/prototype/weekOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.weekofyear
-description: The "weekOfYear" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "weekOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDate/prototype/with/basic.js b/polyfill/test/PlainDate/prototype/with/basic.js
deleted file mode 100644
index ed95391977..0000000000
--- a/polyfill/test/PlainDate/prototype/with/basic.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Basic tests for with().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1976, 11, 18);
-
-const withYear = plainDate.with({ year: 2019 });
-TemporalHelpers.assertPlainDate(withYear, 2019, 11, "M11", 18, "with(year)");
-
-const withMonth = plainDate.with({ month: 5 });
-TemporalHelpers.assertPlainDate(withMonth, 1976, 5, "M05", 18, "with(month)");
-
-const withMonthCode = plainDate.with({ monthCode: 'M05' });
-TemporalHelpers.assertPlainDate(withMonthCode, 1976, 5, "M05", 18, "with(monthCode)");
-
-const withDay = plainDate.with({ day: 17 });
-TemporalHelpers.assertPlainDate(withDay, 1976, 11, "M11", 17, "with(day)");
-
-const withPlural = plainDate.with({ months: 12, day: 15 });
-TemporalHelpers.assertPlainDate(withPlural, 1976, 11, "M11", 15, "with(plural)");
-
-assert.throws(RangeError, () => plainDate.with({ month: 5, monthCode: 'M06' }));
diff --git a/polyfill/test/PlainDate/prototype/with/branding.js b/polyfill/test/PlainDate/prototype/with/branding.js
deleted file mode 100644
index e6210e0c51..0000000000
--- a/polyfill/test/PlainDate/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.PlainDate.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/with/builtin.js b/polyfill/test/PlainDate/prototype/with/builtin.js
deleted file mode 100644
index a0ae72fb21..0000000000
--- a/polyfill/test/PlainDate/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: >
- Tests that Temporal.PlainDate.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/with/calendar-fields-iterable.js b/polyfill/test/PlainDate/prototype/with/calendar-fields-iterable.js
deleted file mode 100644
index 8e5da8e054..0000000000
--- a/polyfill/test/PlainDate/prototype/with/calendar-fields-iterable.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindate.prototype.with step 9:
- 9. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainDate(2000, 5, 2, calendar);
-date.with({ year: 2005 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDate/prototype/with/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainDate/prototype/with/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index e6271bfcd1..0000000000
--- a/polyfill/test/PlainDate/prototype/with/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainDate(2000, 5, 2, calendar);
- assert.throws(TypeError, () => instance.with({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.dateFromFieldsCallCount, 0, "dateFromFields() never called");
-});
diff --git a/polyfill/test/PlainDate/prototype/with/copies-merge-fields-object.js b/polyfill/test/PlainDate/prototype/with/copies-merge-fields-object.js
deleted file mode 100644
index 3a55993bc8..0000000000
--- a/polyfill/test/PlainDate/prototype/with/copies-merge-fields-object.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: The object returned from mergeFields() is copied before being passed to dateFromFields().
-info: |
- sec-temporal.plaindate.prototype.with steps 13–15:
- 13. Set _fields_ to ? CalendarMergeFields(_calendar_, _fields_, _partialDate_).
- 14. Set _fields_ to ? PrepareTemporalFields(_fields_, _fieldNames_, «»).
- 15. Return ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const date = new Temporal.PlainDate(2021, 3, 31, calendar);
-date.with({ year: 2022 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainDate/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/PlainDate/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 07c927aca0..0000000000
--- a/polyfill/test/PlainDate/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.with({ [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainDate/prototype/with/length.js b/polyfill/test/PlainDate/prototype/with/length.js
deleted file mode 100644
index a75deddb86..0000000000
--- a/polyfill/test/PlainDate/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Temporal.PlainDate.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/with/name.js b/polyfill/test/PlainDate/prototype/with/name.js
deleted file mode 100644
index 3c0958c474..0000000000
--- a/polyfill/test/PlainDate/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Temporal.PlainDate.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/with/not-a-constructor.js b/polyfill/test/PlainDate/prototype/with/not-a-constructor.js
deleted file mode 100644
index 63a7c946a3..0000000000
--- a/polyfill/test/PlainDate/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: >
- Temporal.PlainDate.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.with), false,
- "isConstructor(Temporal.PlainDate.prototype.with)");
diff --git a/polyfill/test/PlainDate/prototype/with/options-invalid.js b/polyfill/test/PlainDate/prototype/with/options-invalid.js
deleted file mode 100644
index 5222d725a6..0000000000
--- a/polyfill/test/PlainDate/prototype/with/options-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(2000, 2, 2);
-[null, true, "hello", Symbol("foo"), 1, 1n].forEach((badOptions) =>
- assert.throws(TypeError, () => plainDate.with({ day: 17 }, badOptions))
-);
diff --git a/polyfill/test/PlainDate/prototype/with/options-undefined.js b/polyfill/test/PlainDate/prototype/with/options-undefined.js
deleted file mode 100644
index 9c2b40bcd3..0000000000
--- a/polyfill/test/PlainDate/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 2, 2);
-const fields = { day: 31 };
-
-const explicit = date.with(fields, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = date.with(fields);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/with/order-of-operations.js b/polyfill/test/PlainDate/prototype/with/order-of-operations.js
deleted file mode 100644
index dd319c15f7..0000000000
--- a/polyfill/test/PlainDate/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2);
-const expected = [
- "get calendar",
- "get timeZone",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertPlainDate(result, 1, 1, "M01", 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDate/prototype/with/overflow-invalid-string.js b/polyfill/test/PlainDate/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index d35f66be86..0000000000
--- a/polyfill/test/PlainDate/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.with step 16:
- 16. Return ? DateFromFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-["", "CONSTRAIN", "balance", "other string"].forEach((overflow) =>
- assert.throws(RangeError, () => date.with({ month: 8 }, { overflow }))
-);
diff --git a/polyfill/test/PlainDate/prototype/with/overflow-undefined.js b/polyfill/test/PlainDate/prototype/with/overflow-undefined.js
deleted file mode 100644
index 73c244f629..0000000000
--- a/polyfill/test/PlainDate/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.with step 16:
- 16. Return ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-const explicit = date.with({ month: 15 }, { overflow: undefined });
-TemporalHelpers.assertPlainDate(explicit, 2000, 12, "M12", 2, "default overflow is constrain");
-const implicit = date.with({ month: 15 }, {});
-TemporalHelpers.assertPlainDate(implicit, 2000, 12, "M12", 2, "default overflow is constrain");
-const fun = date.with({ month: 15 }, () => {});
-TemporalHelpers.assertPlainDate(fun, 2000, 12, "M12", 2, "default overflow is constrain");
diff --git a/polyfill/test/PlainDate/prototype/with/overflow-wrong-type.js b/polyfill/test/PlainDate/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index c96b109276..0000000000
--- a/polyfill/test/PlainDate/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isodatefromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindate.prototype.with step 16:
- 16. Return ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2000, 5, 2);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => date.with({ month: 8 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDate(result, 2000, 8, "M08", 2, descr),
-);
diff --git a/polyfill/test/PlainDate/prototype/with/plaindatelike-invalid.js b/polyfill/test/PlainDate/prototype/with/plaindatelike-invalid.js
deleted file mode 100644
index 189c334377..0000000000
--- a/polyfill/test/PlainDate/prototype/with/plaindatelike-invalid.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Throws TypeError on an argument that is not a PlainDate-like property bag
-features: [Temporal]
----*/
-
-const plainDate = new Temporal.PlainDate(1976, 11, 18);
-
-const tests = [
- // Step 3.
- [undefined],
- [null],
- [true],
- ["2019-05-17"],
- ["2019-05-17T12:34"],
- ["2019-05-17T12:34Z"],
- ["18:05:42.577"],
- ["42"],
- [Symbol(), "symbol"],
- [42, "number"],
- [42n, "bigint"],
-
- // Step 4.
- [Temporal.PlainDate.from("2019-05-17"), "PlainDate"],
- [Temporal.PlainDateTime.from("2019-05-17T12:34"), "PlainDateTime"],
- [Temporal.PlainMonthDay.from("2019-05-17"), "PlainMonthDay"],
- [Temporal.PlainTime.from("12:34"), "PlainTime"],
- [Temporal.PlainYearMonth.from("2019-05-17"), "PlainYearMonth"],
- [Temporal.ZonedDateTime.from("2019-05-17T12:34Z[UTC]"), "ZonedDateTime"],
-
- // Step 5-6.
- [{ year: 2021, calendar: "iso8601" }, "calendar"],
-
- // Step 7-8.
- [{ year: 2021, timeZone: "UTC" }, "timeZone"],
-
- // Step 11.
- [{}, "empty object"],
- [{ months: 12 }, "only plural property"],
-
-];
-
-for (const [value, message = String(value)] of tests) {
- assert.throws(TypeError, () => plainDate.with(value), message);
-}
diff --git a/polyfill/test/PlainDate/prototype/with/prop-desc.js b/polyfill/test/PlainDate/prototype/with/prop-desc.js
deleted file mode 100644
index 57acd21b22..0000000000
--- a/polyfill/test/PlainDate/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: The "with" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.with,
- "function",
- "`typeof PlainDate.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/with/subclassing-ignored.js b/polyfill/test/PlainDate/prototype/with/subclassing-ignored.js
deleted file mode 100644
index 9b285f8707..0000000000
--- a/polyfill/test/PlainDate/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.with
-description: Objects of a subclass are never created as return values for with()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDate,
- [2000, 5, 2],
- "with",
- [{ day: 20 }],
- (result) => TemporalHelpers.assertPlainDate(result, 2000, 5, "M05", 20),
-);
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/basic.js b/polyfill/test/PlainDate/prototype/withCalendar/basic.js
deleted file mode 100644
index 6fd61bb1e9..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/basic.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Basic tests for withCalendar().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainDate = Temporal.PlainDate.from("1976-11-18");
-const calendar = Temporal.Calendar.from("iso8601");
-
-const objectResult = plainDate.withCalendar(calendar);
-TemporalHelpers.assertPlainDate(objectResult, 1976, 11, "M11", 18, "object");
-assert.sameValue(objectResult.calendar, calendar, "object calendar");
-
-const stringResult = plainDate.withCalendar("iso8601");
-TemporalHelpers.assertPlainDate(stringResult, 1976, 11, "M11", 18, "string");
-assert.sameValue(stringResult.calendar.id, "iso8601", "string calendar");
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/branding.js b/polyfill/test/PlainDate/prototype/withCalendar/branding.js
deleted file mode 100644
index 97f9b34713..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withCalendar = Temporal.PlainDate.prototype.withCalendar;
-
-assert.sameValue(typeof withCalendar, "function");
-
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/builtin.js b/polyfill/test/PlainDate/prototype/withCalendar/builtin.js
deleted file mode 100644
index 722d27b554..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: >
- Tests that Temporal.PlainDate.prototype.withCalendar
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDate.prototype.withCalendar),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDate.prototype.withCalendar),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDate.prototype.withCalendar),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDate.prototype.withCalendar.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/calendar-temporal-object.js b/polyfill/test/PlainDate/prototype/withCalendar/calendar-temporal-object.js
deleted file mode 100644
index dab1fdcfcc..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/calendar-temporal-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindate.prototype.withcalendar step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const plainDate = new Temporal.PlainDate(2000, 5, 2);
- const result = plainDate.withCalendar(temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/length.js b/polyfill/test/PlainDate/prototype/withCalendar/length.js
deleted file mode 100644
index 92df842836..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Temporal.PlainDate.prototype.withCalendar.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.withCalendar, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/missing-argument.js b/polyfill/test/PlainDate/prototype/withCalendar/missing-argument.js
deleted file mode 100644
index d5b014c1b2..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/missing-argument.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: RangeError thrown when calendar argument not given
-features: [Temporal]
----*/
-
-const plainDate = Temporal.PlainDate.from("1976-11-18");
-assert.throws(RangeError, () => plainDate.withCalendar(), "missing argument");
-assert.throws(RangeError, () => plainDate.withCalendar(undefined), "undefined argument");
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/name.js b/polyfill/test/PlainDate/prototype/withCalendar/name.js
deleted file mode 100644
index 5bdc4bcf39..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Temporal.PlainDate.prototype.withCalendar.name is "withCalendar".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDate.prototype.withCalendar, "name", {
- value: "withCalendar",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/not-a-constructor.js b/polyfill/test/PlainDate/prototype/withCalendar/not-a-constructor.js
deleted file mode 100644
index 88c261ef1e..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: >
- Temporal.PlainDate.prototype.withCalendar does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDate.prototype.withCalendar();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDate.prototype.withCalendar), false,
- "isConstructor(Temporal.PlainDate.prototype.withCalendar)");
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/prop-desc.js b/polyfill/test/PlainDate/prototype/withCalendar/prop-desc.js
deleted file mode 100644
index c841e77ac3..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: The "withCalendar" property of Temporal.PlainDate.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDate.prototype.withCalendar,
- "function",
- "`typeof PlainDate.prototype.withCalendar` is `function`"
-);
-
-verifyProperty(Temporal.PlainDate.prototype, "withCalendar", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDate/prototype/withCalendar/subclassing-ignored.js b/polyfill/test/PlainDate/prototype/withCalendar/subclassing-ignored.js
deleted file mode 100644
index f8dce94d51..0000000000
--- a/polyfill/test/PlainDate/prototype/withCalendar/subclassing-ignored.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.withcalendar
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const customCalendar = {
- era() { return undefined; },
- eraYear() { return undefined; },
- year() { return 1900; },
- month() { return 2; },
- monthCode() { return "M02"; },
- day() { return 5; },
- toString() { return "custom-calendar"; },
-};
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDate,
- [2000, 5, 2],
- "withCalendar",
- [customCalendar],
- (result) => {
- TemporalHelpers.assertPlainDate(result, 1900, 2, "M02", 5);
- assert.sameValue(result.calendar, customCalendar, "calendar result");
- },
-);
diff --git a/polyfill/test/PlainDate/prototype/year/branding.js b/polyfill/test/PlainDate/prototype/year/branding.js
deleted file mode 100644
index ebfeff60a7..0000000000
--- a/polyfill/test/PlainDate/prototype/year/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.year
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const year = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "year").get;
-
-assert.sameValue(typeof year, "function");
-
-assert.throws(TypeError, () => year.call(undefined), "undefined");
-assert.throws(TypeError, () => year.call(null), "null");
-assert.throws(TypeError, () => year.call(true), "true");
-assert.throws(TypeError, () => year.call(""), "empty string");
-assert.throws(TypeError, () => year.call(Symbol()), "symbol");
-assert.throws(TypeError, () => year.call(1), "1");
-assert.throws(TypeError, () => year.call({}), "plain object");
-assert.throws(TypeError, () => year.call(Temporal.PlainDate), "Temporal.PlainDate");
-assert.throws(TypeError, () => year.call(Temporal.PlainDate.prototype), "Temporal.PlainDate.prototype");
diff --git a/polyfill/test/PlainDate/prototype/year/calendar-returns-infinity.js b/polyfill/test/PlainDate/prototype/year/calendar-returns-infinity.js
deleted file mode 100644
index 3a0ad9cb83..0000000000
--- a/polyfill/test/PlainDate/prototype/year/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.year
-description: Getter throws if the calendar returns ±∞ from its year method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- year() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDate(2000, 5, 2, pos);
-assert.throws(RangeError, () => instance1.year);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDate(2000, 5, 2, neg);
-assert.throws(RangeError, () => instance2.year);
diff --git a/polyfill/test/PlainDate/prototype/year/prop-desc.js b/polyfill/test/PlainDate/prototype/year/prop-desc.js
deleted file mode 100644
index c2a757c5b7..0000000000
--- a/polyfill/test/PlainDate/prototype/year/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.year
-description: The "year" property of Temporal.PlainDate.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDate.prototype, "year");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/constructor/compare/argument-plaindate.js b/polyfill/test/PlainDateTime/constructor/compare/argument-plaindate.js
deleted file mode 100644
index 5b3d84198c..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/argument-plaindate.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.plaindatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDateTime(_one_).
- 2. Set _two_ to ? ToTemporalDateTime(_two_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date) => {
- const result = Temporal.PlainDateTime.compare(date, datetime);
- assert.sameValue(result, -1, "PlainDate is converted to midnight");
-});
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date) => {
- const result = Temporal.PlainDateTime.compare(datetime, date);
- assert.sameValue(result, 1, "PlainDate is converted to midnight");
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index ed4ac471a1..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const zoned = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const plain = new Temporal.PlainDateTime(1969, 7, 24, 16, 50, 35, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result1 = Temporal.PlainDateTime.compare(plain, zoned);
-assert.sameValue(result1, 0);
-
-const result2 = Temporal.PlainDateTime.compare(zoned, plain);
-assert.sameValue(result2, 0);
diff --git a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index c10ddd89ad..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, Infinity, -Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(datetime, plain));
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(plain, datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 2326c5adb2..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(datetime, plain));
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(plain, datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d113b03b47..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
- assert.throws(TypeError, () => Temporal.PlainDateTime.compare(datetime, plain));
- assert.throws(TypeError, () => Temporal.PlainDateTime.compare(plain, datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/builtin.js b/polyfill/test/PlainDateTime/constructor/compare/builtin.js
deleted file mode 100644
index 7e63c0bf46..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Tests that Temporal.PlainDateTime.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/constructor/compare/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/constructor/compare/calendar-fields-iterable.js
deleted file mode 100644
index 6ff46e0b12..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/calendar-fields-iterable.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDateTime(_one_).
- 2. Set _two_ to ? ToTemporalDateTime(_two_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainDateTime.compare(
- { year: 2000, month: 5, day: 2, calendar: calendar1 },
- { year: 2001, month: 6, day: 3, calendar: calendar2 },
-);
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/constructor/compare/calendar-temporal-object.js b/polyfill/test/PlainDateTime/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index 2807dc0952..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDateTime(_one_).
- 2. Set _two_ to ? ToTemporalDateTime(_two_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- Temporal.PlainDateTime.compare(
- { year: 2000, month: 5, day: 2, calendar: temporalObject },
- { year: 2001, month: 6, day: 3, calendar: temporalObject },
- );
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index 602c75fd0c..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainDateTime(2000, 5, 2, 15);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare({ ...base, [prop]: inf }, other), `${prop} property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(other, { ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare({ ...base, [prop]: obj1 }, other));
- assert.compareArray(calls1, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(other, { ...base, [prop]: obj2 }));
- assert.compareArray(calls2, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/length.js b/polyfill/test/PlainDateTime/constructor/compare/length.js
deleted file mode 100644
index debb94b608..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Temporal.PlainDateTime.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/name.js b/polyfill/test/PlainDateTime/constructor/compare/name.js
deleted file mode 100644
index 5c60eec7d1..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Temporal.PlainDateTime.compare.name is "compare"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/not-a-constructor.js b/polyfill/test/PlainDateTime/constructor/compare/not-a-constructor.js
deleted file mode 100644
index 20df8a57b4..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: Temporal.PlainDateTime.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.compare), false,
- "isConstructor(Temporal.PlainDateTime.compare)");
diff --git a/polyfill/test/PlainDateTime/constructor/compare/prop-desc.js b/polyfill/test/PlainDateTime/constructor/compare/prop-desc.js
deleted file mode 100644
index 68ec960a4a..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: The "compare" property of Temporal.PlainDateTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.compare,
- "function",
- "`typeof PlainDateTime.compare` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/compare/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/constructor/compare/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 5e5ca28556..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.compare
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalDateTime(_one_).
- 2. Set _two_ to ? ToTemporalDateTime(_two_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const result = Temporal.PlainDateTime.compare(
- { year: 2000, month: 5, day: 2, hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321, calendar },
- { year: 2000, month: 5, day: 2, hour: 6, minute: 54, second: 32, millisecond: 123, microsecond: 456, nanosecond: 789, calendar },
-);
-
-// will be 0 if the time fields are coerced to their max values due to Infinity
-assert.sameValue(result, 1, "comparison result");
diff --git a/polyfill/test/PlainDateTime/constructor/compare/use-internal-slots.js b/polyfill/test/PlainDateTime/constructor/compare/use-internal-slots.js
deleted file mode 100644
index deb1ff39f3..0000000000
--- a/polyfill/test/PlainDateTime/constructor/compare/use-internal-slots.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-compareisodatetime
-description: compare() ignores the observable properties and uses internal slots
-features: [Temporal]
----*/
-
-function CustomError() {}
-
-class AvoidGettersDateTime extends Temporal.PlainDateTime {
- get year() {
- throw new CustomError();
- }
- get month() {
- throw new CustomError();
- }
- get day() {
- throw new CustomError();
- }
- get hour() {
- throw new CustomError();
- }
- get minute() {
- throw new CustomError();
- }
- get second() {
- throw new CustomError();
- }
- get millisecond() {
- throw new CustomError();
- }
- get microsecond() {
- throw new CustomError();
- }
- get nanosecond() {
- throw new CustomError();
- }
-}
-
-const one = new AvoidGettersDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const two = new AvoidGettersDateTime(2006, 3, 25, 6, 54, 32, 123, 456, 789);
-assert.sameValue(Temporal.PlainDateTime.compare(one, two), -1);
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/builtin.js b/polyfill/test/PlainDateTime/constructor/constructor/builtin.js
deleted file mode 100644
index fd6a0757da..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Tests that Temporal.PlainDateTime meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.PlainDateTime.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/calendar-temporal-object.js b/polyfill/test/PlainDateTime/constructor/constructor/calendar-temporal-object.js
deleted file mode 100644
index 517e5b551f..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime step 11:
- 11. Let _calendar_ be ? ToTemporalCalendarWithISODefault(_calendarLike_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, temporalObject);
- assert.sameValue(result.calendar, calendar, 'Temporal object coerced to calendar');
-});
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/calendar-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/calendar-undefined.js
deleted file mode 100644
index 5534057528..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/calendar-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [Temporal]
----*/
-
-const dateTimeArgs = [2020, 12, 24, 12, 34, 56, 123, 456, 789];
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const dateTimeExplicit = new Temporal.PlainDateTime(...dateTimeArgs, undefined);
-assert.sameValue(dateTimeExplicit.calendar.toString(), "iso8601");
-
-const dateTimeImplicit = new Temporal.PlainDateTime(...dateTimeArgs);
-assert.sameValue(dateTimeImplicit.calendar.toString(), "iso8601");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/constructor.js b/polyfill/test/PlainDateTime/constructor/constructor/constructor.js
deleted file mode 100644
index fcc159a757..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Temporal.PlainDateTime constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainDateTime());
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/hour-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/hour-undefined.js
deleted file mode 100644
index e42831dcd6..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/hour-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Hour argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.hour, 0, "hour default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.hour, 0, "hour default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index 69bda72ef9..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime throws a RangeError if any value is Infinity
-esid: sec-temporal.plaindatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainDateTime(Infinity, 1, 1));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, 0, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(Infinity, "year"), O(1, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf"
- ]
- ],
- [
- "infinite month",
- [O(2, "year"), O(Infinity, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"
- ]
- ],
- [
- "infinite day",
- [O(2, "year"), O(1, "month"), O(Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"
- ]
- ],
- [
- "infinite hour",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(Infinity, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf"
- ]
- ],
- [
- "infinite minute",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(Infinity, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf"
- ]
- ],
- [
- "infinite second",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(Infinity, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf"
- ]
- ],
- [
- "infinite millisecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(Infinity, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf"
- ]
- ],
- [
- "infinite microsecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(Infinity, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get microsecond.valueOf",
- "call microsecond.valueOf"
- ]
- ],
- [
- "infinite nanosecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(Infinity, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf"
- ]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainDateTime(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/length.js b/polyfill/test/PlainDateTime/constructor/constructor/length.js
deleted file mode 100644
index e20acd2831..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Temporal.PlainDateTime.length is 3
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime, "length", {
- value: 3,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/microsecond-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/microsecond-undefined.js
deleted file mode 100644
index 83004a3130..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/microsecond-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Microsecond argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2, 12, 34, 56, 123];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.microsecond, 0, "microsecond default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.microsecond, 0, "microsecond default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/millisecond-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/millisecond-undefined.js
deleted file mode 100644
index de0c1b8447..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/millisecond-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Millisecond argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2, 12, 34, 56];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.millisecond, 0, "millisecond default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.millisecond, 0, "millisecond default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/minute-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/minute-undefined.js
deleted file mode 100644
index 9ac682fc95..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/minute-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Minute argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2, 12];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.minute, 0, "minute default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.minute, 0, "minute default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/missing-arguments.js b/polyfill/test/PlainDateTime/constructor/constructor/missing-arguments.js
deleted file mode 100644
index 7439ac2305..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: RangeError thrown after processing given args when invoked without all required args
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "valueOf year",
- "valueOf month",
-];
-const actual = [];
-const args = [
- { valueOf() { actual.push("valueOf year"); return 1; } },
- { valueOf() { actual.push("valueOf month"); return 1; } },
-];
-
-assert.throws(RangeError, () => new Temporal.PlainDateTime(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/name.js b/polyfill/test/PlainDateTime/constructor/constructor/name.js
deleted file mode 100644
index f5d13c8470..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Temporal.PlainDateTime.name is "PlainDateTime"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime, "name", {
- value: "PlainDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/nanosecond-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/nanosecond-undefined.js
deleted file mode 100644
index f3f8b52c5d..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/nanosecond-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Nanosecond argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2, 12, 34, 56, 123, 456];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.nanosecond, 0, "nanosecond default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.nanosecond, 0, "nanosecond default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index bf7ef12991..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,162 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime throws a RangeError if any value is -Infinity
-esid: sec-temporal.plaindatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainDateTime(-Infinity, 1, 1));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, -Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, 0, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(-Infinity, "year"), O(1, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf"
- ]
- ],
- [
- "infinite month",
- [O(2, "year"), O(-Infinity, "month"), O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"
- ]
- ],
- [
- "infinite day",
- [O(2, "year"), O(1, "month"), O(-Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"
- ]
- ],
- [
- "infinite hour",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(-Infinity, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf"
- ]
- ],
- [
- "infinite minute",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(-Infinity, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf"
- ]
- ],
- [
- "infinite second",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(-Infinity, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf"
- ]
- ],
- [
- "infinite millisecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(-Infinity, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf"
- ]
- ],
- [
- "infinite microsecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(-Infinity, "microsecond"), O(1, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get microsecond.valueOf",
- "call microsecond.valueOf"
- ]
- ],
- [
- "infinite nanosecond",
- [O(2, "year"), O(1, "month"), O(1, "day"), O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(-Infinity, "nanosecond")],
- [
- "get year.valueOf",
- "call year.valueOf",
- "get month.valueOf",
- "call month.valueOf",
- "get day.valueOf",
- "call day.valueOf",
- "get hour.valueOf",
- "call hour.valueOf",
- "get minute.valueOf",
- "call minute.valueOf",
- "get second.valueOf",
- "call second.valueOf",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf"
- ]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainDateTime(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/order-of-operations.js b/polyfill/test/PlainDateTime/constructor/constructor/order-of-operations.js
deleted file mode 100644
index 4ebf701916..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/order-of-operations.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Arguments are converted to primitives in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get (argument 0).valueOf",
- "call (argument 0).valueOf",
- "get (argument 1).valueOf",
- "call (argument 1).valueOf",
- "get (argument 2).valueOf",
- "call (argument 2).valueOf",
- "get (argument 3).valueOf",
- "call (argument 3).valueOf",
- "get (argument 4).valueOf",
- "call (argument 4).valueOf",
- "get (argument 5).valueOf",
- "call (argument 5).valueOf",
- "get (argument 6).valueOf",
- "call (argument 6).valueOf",
- "get (argument 7).valueOf",
- "call (argument 7).valueOf",
- "get (argument 8).valueOf",
- "call (argument 8).valueOf",
-];
-
-const dateTimeArgs = [2020, 12, 24, 12, 34, 56, 123, 456, 789].map((value, idx) =>
- TemporalHelpers.toPrimitiveObserver(actual, value, `(argument ${idx})`));
-
-const dateTime = new Temporal.PlainDateTime(...dateTimeArgs, "iso8601");
-assert.compareArray(actual, expected);
-
-TemporalHelpers.assertPlainDateTime(dateTime, 2020, 12, "M12", 24, 12, 34, 56, 123, 456, 789);
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/prop-desc.js b/polyfill/test/PlainDateTime/constructor/constructor/prop-desc.js
deleted file mode 100644
index 837f42c4f6..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: The "PlainDateTime" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime,
- "function",
- "`typeof PlainDateTime` is `function`"
-);
-
-verifyProperty(Temporal, "PlainDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/constructor/second-undefined.js b/polyfill/test/PlainDateTime/constructor/constructor/second-undefined.js
deleted file mode 100644
index 9ec2ea3ef7..0000000000
--- a/polyfill/test/PlainDateTime/constructor/constructor/second-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime
-description: Second argument defaults to 0 if not given
-features: [Temporal]
----*/
-
-const args = [2000, 5, 2, 12, 34];
-
-const explicit = new Temporal.PlainDateTime(...args, undefined);
-assert.sameValue(explicit.second, 0, "second default argument");
-
-const implicit = new Temporal.PlainDateTime(...args);
-assert.sameValue(implicit.second, 0, "second default argument");
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-plaindate.js b/polyfill/test/PlainDateTime/constructor/from/argument-plaindate.js
deleted file mode 100644
index 1994043454..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-plaindate.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.plaindatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_item_, _options_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date, calendar) => {
- const result = Temporal.PlainDateTime.from(date);
- TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 0, 0, 0, 0, 0, 0, "midnight is assumed");
- assert.sameValue(result.calendar, calendar, "calendar result");
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 92492b7f2f..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_temporalTime_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const pdt = Temporal.PlainDateTime.from(datetime);
-
-TemporalHelpers.assertPlainDateTime(pdt, 1970, 1, "M01", 1, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index a70783633d..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = Temporal.PlainDateTime.from(datetime);
-TemporalHelpers.assertPlainDateTime(result, 1969, 7, "M07", 24, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index f95ca76090..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainDateTime.from(datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f0f685b23a..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainDateTime.from(datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 846b9d3733..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => Temporal.PlainDateTime.from(datetime));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/builtin.js b/polyfill/test/PlainDateTime/constructor/from/builtin.js
deleted file mode 100644
index ea4751982a..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Tests that Temporal.PlainDateTime.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/constructor/from/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/constructor/from/calendar-fields-iterable.js
deleted file mode 100644
index 318c0561a1..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/calendar-fields-iterable.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_item_, _options_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/constructor/from/calendar-temporal-object.js b/polyfill/test/PlainDateTime/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index 6b76c86e59..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_item_, _options_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 88d6dc5857..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainDateTime.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainDateTime.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/length.js b/polyfill/test/PlainDateTime/constructor/from/length.js
deleted file mode 100644
index 96a86a176e..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Temporal.PlainDateTime.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/name.js b/polyfill/test/PlainDateTime/constructor/from/name.js
deleted file mode 100644
index 0374393ff8..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Temporal.PlainDateTime.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/not-a-constructor.js b/polyfill/test/PlainDateTime/constructor/from/not-a-constructor.js
deleted file mode 100644
index 2c9fcd8fb8..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Temporal.PlainDateTime.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.from), false,
- "isConstructor(Temporal.PlainDateTime.from)");
diff --git a/polyfill/test/PlainDateTime/constructor/from/options-undefined.js b/polyfill/test/PlainDateTime/constructor/from/options-undefined.js
deleted file mode 100644
index f3ee167090..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const fields = { year: 2000, month: 13, day: 2 };
-
-const explicit = Temporal.PlainDateTime.from(fields, undefined);
-assert.sameValue(explicit.month, 12, "default overflow is constrain");
-
-const implicit = Temporal.PlainDateTime.from(fields);
-assert.sameValue(implicit.month, 12, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/constructor/from/order-of-operations.js b/polyfill/test/PlainDateTime/constructor/from/order-of-operations.js
deleted file mode 100644
index b5348ffd9f..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
- hour: 1.7,
- minute: 1.7,
- second: 1.7,
- millisecond: 1.7,
- microsecond: 1.7,
- nanosecond: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- if (key === "calendar") return Temporal.Calendar.from("iso8601");
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.PlainDateTime.from(argument);
-TemporalHelpers.assertPlainDateTime(result, 1, 1, "M01", 1, 1, 1, 1, 1, 1, 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/constructor/from/overflow-invalid-string.js b/polyfill/test/PlainDateTime/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index 41673499f7..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporaldatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDateTime(2000, 5, 2, 12),
- { year: 2000, month: 5, day: 2, hour: 12 },
- "2000-05-02T12:00",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.PlainDateTime.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/overflow-undefined.js b/polyfill/test/PlainDateTime/constructor/from/overflow-undefined.js
deleted file mode 100644
index d26c5c96ce..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporaldatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDateTime(_item_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDateTime(2000, 5, 2, 12),
- "2000-05-02T12:00",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.PlainDateTime.from(value, { overflow: undefined });
- TemporalHelpers.assertPlainDateTime(explicit, 2000, 5, "M05", 2, 12, 0, 0, 0, 0, 0, "overflow is ignored");
- const implicit = Temporal.PlainDateTime.from(value, {});
- TemporalHelpers.assertPlainDateTime(implicit, 2000, 5, "M05", 2, 12, 0, 0, 0, 0, 0, "overflow is ignored");
-});
-
-const propertyBag = { year: 2000, month: 13, day: 34, hour: 12 };
-const explicit = Temporal.PlainDateTime.from(propertyBag, { overflow: undefined });
-TemporalHelpers.assertPlainDateTime(explicit, 2000, 12, "M12", 31, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = Temporal.PlainDateTime.from(propertyBag, {});
-TemporalHelpers.assertPlainDateTime(implicit, 2000, 12, "M12", 31, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/constructor/from/overflow-wrong-type.js b/polyfill/test/PlainDateTime/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index f306d087a3..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,63 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporaldatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- g. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalDateTime(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainDateTime(2000, 5, 2, 12),
- "2000-05-02T12:00",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.PlainDateTime.from(value, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 0, 0, 0, 0, 0, descr),
-));
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-const propertyBag = { year: 2000, month: 5, day: 2, hour: 12 };
-
-assert.throws(RangeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: null }), "null");
-assert.throws(RangeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: true }), "true");
-assert.throws(RangeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: false }), "false");
-assert.throws(TypeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => Temporal.PlainDateTime.from(propertyBag, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateFromFields() in the builtin
-// calendars, to get the option value for the date part, and then once again
-// internally to get the option value for the time part.
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = Temporal.PlainDateTime.from(propertyBag, { overflow: observer });
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 0, 0, 0, 0, 0, "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/constructor/from/parser.js b/polyfill/test/PlainDateTime/constructor/from/parser.js
deleted file mode 100644
index 5402111297..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/parser.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime.from accepts a custom timezone that starts with "c".
-esid: sec-temporal.plaindatetime.from
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const dateTime = Temporal.PlainDateTime.from("2020-01-01T00:00:00+01:00[Custom]");
-TemporalHelpers.assertPlainDateTime(dateTime, 2020, 1, "M01", 1, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/PlainDateTime/constructor/from/prop-desc.js b/polyfill/test/PlainDateTime/constructor/from/prop-desc.js
deleted file mode 100644
index 2dbf3d0917..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: The "from" property of Temporal.PlainDateTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.from,
- "function",
- "`typeof PlainDateTime.from` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/constructor/from/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/constructor/from/read-time-fields-before-datefromfields.js
deleted file mode 100644
index e24ca12d4a..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_item_, _options_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321, calendar });
-
-assert.sameValue(datetime.hour, 12, "hour value");
-assert.sameValue(datetime.minute, 34, "minute value");
-assert.sameValue(datetime.second, 56, "second value");
-assert.sameValue(datetime.millisecond, 987, "millisecond value");
-assert.sameValue(datetime.microsecond, 654, "microsecond value");
-assert.sameValue(datetime.nanosecond, 321, "nanosecond value");
diff --git a/polyfill/test/PlainDateTime/constructor/from/subclassing-ignored.js b/polyfill/test/PlainDateTime/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 2b7980a46f..0000000000
--- a/polyfill/test/PlainDateTime/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.PlainDateTime,
- "from",
- ["2000-05-02T12:34:56.987654321"],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 987, 654, 321),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/add/argument-not-object.js b/polyfill/test/PlainDateTime/prototype/add/argument-not-object.js
deleted file mode 100644
index 27f9fec46f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Passing a primitive other than string to add() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-assert.throws(RangeError, () => instance.add(undefined), "undefined");
-assert.throws(RangeError, () => instance.add(null), "null");
-assert.throws(RangeError, () => instance.add(true), "boolean");
-assert.throws(RangeError, () => instance.add(""), "empty string");
-assert.throws(TypeError, () => instance.add(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.add(7), "number");
-assert.throws(RangeError, () => instance.add(7n), "bigint");
diff --git a/polyfill/test/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 093b91ecc1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2);
-
-const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainDateTime(resultHours, 2000, 4, "M04", 30, 23, 25, 55, 595, 557, 201, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 4, "M04", 30, 23, 59, 25, 926, 592, 621, "negative fractional minutes");
diff --git a/polyfill/test/PlainDateTime/prototype/add/argument-string.js b/polyfill/test/PlainDateTime/prototype/add/argument-string.js
deleted file mode 100644
index f7668e7dd8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-const result = instance.add("P3D");
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 5, 0, 34, 56, 987, 654, 321);
diff --git a/polyfill/test/PlainDateTime/prototype/add/balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/add/balance-negative-time-units.js
deleted file mode 100644
index 91e5749fb1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/balance-negative-time-units.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal.plaindatetime.prototype.add step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(1996, 5, 2, 1, 1, 1, 1, 1, 1);
-
-const result1 = datetime.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result1, 1996, 5, "M05", 2, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = datetime.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result2, 1996, 5, "M05", 2, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = datetime.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result3, 1996, 5, "M05", 2, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = datetime.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result4, 1996, 5, "M05", 2, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = datetime.add(new Temporal.Duration(0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result5, 1996, 5, "M05", 2, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-const result6 = datetime.add(new Temporal.Duration(0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainDateTime(result6, 1996, 5, "M05", 1, 23, 1, 1, 1, 1, 1, "hours balance");
diff --git a/polyfill/test/PlainDateTime/prototype/add/branding.js b/polyfill/test/PlainDateTime/prototype/add/branding.js
deleted file mode 100644
index 161aa7d25d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.PlainDateTime.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => add.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/add/builtin.js b/polyfill/test/PlainDateTime/prototype/add/builtin.js
deleted file mode 100644
index b78a76eebf..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: >
- Tests that Temporal.PlainDateTime.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index 86e137d37a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaindatetime.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/length.js b/polyfill/test/PlainDateTime/prototype/add/length.js
deleted file mode 100644
index f2ad1dab94..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Temporal.PlainDateTime.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/name.js b/polyfill/test/PlainDateTime/prototype/add/name.js
deleted file mode 100644
index 6b981ea2aa..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Temporal.PlainDateTime.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index aba85e760f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaindatetime.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 6b09407c4d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/add/not-a-constructor.js
deleted file mode 100644
index c33f18d47f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: >
- Temporal.PlainDateTime.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.add), false,
- "isConstructor(Temporal.PlainDateTime.prototype.add)");
diff --git a/polyfill/test/PlainDateTime/prototype/add/options-undefined.js b/polyfill/test/PlainDateTime/prototype/add/options-undefined.js
deleted file mode 100644
index 3c1795c636..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 1, 31, 12, 34, 56, 987, 654, 321);
-const duration = { months: 1 };
-
-const explicit = datetime.add(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.add(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/add/order-of-operations.js b/polyfill/test/PlainDateTime/prototype/add/order-of-operations.js
deleted file mode 100644
index fb436b2e1b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument);
-TemporalHelpers.assertPlainDateTime(result, 2001, 6, "M06", 10, 13, 35, 57, 988, 655, 322);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/prototype/add/overflow-invalid-string.js b/polyfill/test/PlainDateTime/prototype/add/overflow-invalid-string.js
deleted file mode 100644
index 2ff326b8d6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.add step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const duration = new Temporal.Duration(3, 3, 0, 3, 3);
-assert.throws(RangeError, () => datetime.add(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/add/overflow-undefined.js b/polyfill/test/PlainDateTime/prototype/add/overflow-undefined.js
deleted file mode 100644
index 752304f435..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/overflow-undefined.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.add step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 31, 12);
-const duration = new Temporal.Duration(3, 1);
-
-const explicit = datetime.add(duration, { overflow: undefined });
-TemporalHelpers.assertPlainDateTime(explicit, 2003, 6, "M06", 30, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = datetime.add(duration, {});
-TemporalHelpers.assertPlainDateTime(implicit, 2003, 6, "M06", 30, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/add/overflow-wrong-type.js b/polyfill/test/PlainDateTime/prototype/add/overflow-wrong-type.js
deleted file mode 100644
index f26f923ed5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/overflow-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.add step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const duration = new Temporal.Duration(3, 3, 0, 3, 3);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => datetime.add(duration, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2003, 8, "M08", 5, 15, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/add/prop-desc.js b/polyfill/test/PlainDateTime/prototype/add/prop-desc.js
deleted file mode 100644
index eb9fca9115..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: The "add" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.add,
- "function",
- "`typeof PlainDateTime.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/add/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/add/subclassing-ignored.js
deleted file mode 100644
index 7fd6fc8783..0000000000
--- a/polyfill/test/PlainDateTime/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.add
-description: Objects of a subclass are never created as return values for add()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "add",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 987, 654, 322),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/calendar/branding.js b/polyfill/test/PlainDateTime/prototype/calendar/branding.js
deleted file mode 100644
index bd6f81d610..0000000000
--- a/polyfill/test/PlainDateTime/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/calendar/prop-desc.js b/polyfill/test/PlainDateTime/prototype/calendar/prop-desc.js
deleted file mode 100644
index 9d3342896c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.calendar
-description: The "calendar" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/day/branding.js b/polyfill/test/PlainDateTime/prototype/day/branding.js
deleted file mode 100644
index 0d11824721..0000000000
--- a/polyfill/test/PlainDateTime/prototype/day/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.day
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const day = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "day").get;
-
-assert.sameValue(typeof day, "function");
-
-assert.throws(TypeError, () => day.call(undefined), "undefined");
-assert.throws(TypeError, () => day.call(null), "null");
-assert.throws(TypeError, () => day.call(true), "true");
-assert.throws(TypeError, () => day.call(""), "empty string");
-assert.throws(TypeError, () => day.call(Symbol()), "symbol");
-assert.throws(TypeError, () => day.call(1), "1");
-assert.throws(TypeError, () => day.call({}), "plain object");
-assert.throws(TypeError, () => day.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => day.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/day/calendar-returns-infinity.js b/polyfill/test/PlainDateTime/prototype/day/calendar-returns-infinity.js
deleted file mode 100644
index 5a97c2e9bb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/day/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.day
-description: Getter throws if the calendar returns ±∞ from its day method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- day() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, pos);
-assert.throws(RangeError, () => instance1.day);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, neg);
-assert.throws(RangeError, () => instance2.day);
diff --git a/polyfill/test/PlainDateTime/prototype/day/prop-desc.js b/polyfill/test/PlainDateTime/prototype/day/prop-desc.js
deleted file mode 100644
index 926d1243e4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/day/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.day
-description: The "day" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "day");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/dayOfWeek/branding.js b/polyfill/test/PlainDateTime/prototype/dayOfWeek/branding.js
deleted file mode 100644
index 448bb32163..0000000000
--- a/polyfill/test/PlainDateTime/prototype/dayOfWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.dayofweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfWeek = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "dayOfWeek").get;
-
-assert.sameValue(typeof dayOfWeek, "function");
-
-assert.throws(TypeError, () => dayOfWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfWeek.call(null), "null");
-assert.throws(TypeError, () => dayOfWeek.call(true), "true");
-assert.throws(TypeError, () => dayOfWeek.call(""), "empty string");
-assert.throws(TypeError, () => dayOfWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfWeek.call(1), "1");
-assert.throws(TypeError, () => dayOfWeek.call({}), "plain object");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/dayOfWeek/prop-desc.js b/polyfill/test/PlainDateTime/prototype/dayOfWeek/prop-desc.js
deleted file mode 100644
index 83a55cb2b6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/dayOfWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.dayofweek
-description: The "dayOfWeek" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "dayOfWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/dayOfYear/branding.js b/polyfill/test/PlainDateTime/prototype/dayOfYear/branding.js
deleted file mode 100644
index c087ca74c5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/dayOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.dayofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "dayOfYear").get;
-
-assert.sameValue(typeof dayOfYear, "function");
-
-assert.throws(TypeError, () => dayOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfYear.call(null), "null");
-assert.throws(TypeError, () => dayOfYear.call(true), "true");
-assert.throws(TypeError, () => dayOfYear.call(""), "empty string");
-assert.throws(TypeError, () => dayOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfYear.call(1), "1");
-assert.throws(TypeError, () => dayOfYear.call({}), "plain object");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/dayOfYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/dayOfYear/prop-desc.js
deleted file mode 100644
index 705ea41607..0000000000
--- a/polyfill/test/PlainDateTime/prototype/dayOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.dayofyear
-description: The "dayOfYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "dayOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/daysInMonth/branding.js b/polyfill/test/PlainDateTime/prototype/daysInMonth/branding.js
deleted file mode 100644
index 33581a2336..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInMonth = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInMonth").get;
-
-assert.sameValue(typeof daysInMonth, "function");
-
-assert.throws(TypeError, () => daysInMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInMonth.call(null), "null");
-assert.throws(TypeError, () => daysInMonth.call(true), "true");
-assert.throws(TypeError, () => daysInMonth.call(""), "empty string");
-assert.throws(TypeError, () => daysInMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInMonth.call(1), "1");
-assert.throws(TypeError, () => daysInMonth.call({}), "plain object");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/daysInMonth/prop-desc.js b/polyfill/test/PlainDateTime/prototype/daysInMonth/prop-desc.js
deleted file mode 100644
index 626366dbdc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInMonth/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinmonth
-description: The "daysInMonth" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInMonth");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/daysInWeek/branding.js b/polyfill/test/PlainDateTime/prototype/daysInWeek/branding.js
deleted file mode 100644
index 1ed028e2d2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInWeek = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInWeek").get;
-
-assert.sameValue(typeof daysInWeek, "function");
-
-assert.throws(TypeError, () => daysInWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInWeek.call(null), "null");
-assert.throws(TypeError, () => daysInWeek.call(true), "true");
-assert.throws(TypeError, () => daysInWeek.call(""), "empty string");
-assert.throws(TypeError, () => daysInWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInWeek.call(1), "1");
-assert.throws(TypeError, () => daysInWeek.call({}), "plain object");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/daysInWeek/prop-desc.js b/polyfill/test/PlainDateTime/prototype/daysInWeek/prop-desc.js
deleted file mode 100644
index d5ca6889c7..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinweek
-description: The "daysInWeek" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/daysInYear/branding.js b/polyfill/test/PlainDateTime/prototype/daysInYear/branding.js
deleted file mode 100644
index 3533365549..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInYear").get;
-
-assert.sameValue(typeof daysInYear, "function");
-
-assert.throws(TypeError, () => daysInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInYear.call(null), "null");
-assert.throws(TypeError, () => daysInYear.call(true), "true");
-assert.throws(TypeError, () => daysInYear.call(""), "empty string");
-assert.throws(TypeError, () => daysInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInYear.call(1), "1");
-assert.throws(TypeError, () => daysInYear.call({}), "plain object");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/daysInYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/daysInYear/prop-desc.js
deleted file mode 100644
index d5aa7a64a4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/daysInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.daysinyear
-description: The "daysInYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "daysInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-plaindate.js b/polyfill/test/PlainDateTime/prototype/equals/argument-plaindate.js
deleted file mode 100644
index 9af4b1969d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-plaindate.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date, calendar) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 0, 0, 0, 0, 0, 0, calendar);
- assert(datetime.equals(date));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-wrong-type.js b/polyfill/test/PlainDateTime/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index 2ec4c776d5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(TypeError, () => instance.equals({}), "plain object");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index da4d9c59c6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ ? ToTemporalDateTime(_other_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-assert(new Temporal.PlainDateTime(1970, 1, 1, 1, 1, 1, 1, 0, 999).equals(datetime));
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 58e9ba6ca0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDateTime(1969, 7, 24, 16, 50, 35, 0, 0, 1);
-const result = instance.equals(datetime);
-assert.sameValue(result, true);
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 53f040d0ff..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.equals(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index a9a4119bd4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.equals(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index ec2fa6d021..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => plain.equals(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/branding.js b/polyfill/test/PlainDateTime/prototype/equals/branding.js
deleted file mode 100644
index 3b87c808bc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.PlainDateTime.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => equals.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/equals/builtin.js b/polyfill/test/PlainDateTime/prototype/equals/builtin.js
deleted file mode 100644
index cc99f2a9ac..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: >
- Tests that Temporal.PlainDateTime.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/equals/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/equals/calendar-fields-iterable.js
deleted file mode 100644
index 2dd0553693..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.equals({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/equals/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 553475ccc6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, temporalObject);
- datetime.equals({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index f200880502..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/length.js b/polyfill/test/PlainDateTime/prototype/equals/length.js
deleted file mode 100644
index f88871e792..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Temporal.PlainDateTime.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/name.js b/polyfill/test/PlainDateTime/prototype/equals/name.js
deleted file mode 100644
index 992bab80b0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: Temporal.PlainDateTime.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/equals/not-a-constructor.js
deleted file mode 100644
index 407ae124aa..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: >
- Temporal.PlainDateTime.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.equals), false,
- "isConstructor(Temporal.PlainDateTime.prototype.equals)");
diff --git a/polyfill/test/PlainDateTime/prototype/equals/prop-desc.js b/polyfill/test/PlainDateTime/prototype/equals/prop-desc.js
deleted file mode 100644
index 57cd21cf7c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: The "equals" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.equals,
- "function",
- "`typeof PlainDateTime.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/equals/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/prototype/equals/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 3a6ea884ab..0000000000
--- a/polyfill/test/PlainDateTime/prototype/equals/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.equals
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.PlainDateTime(2021, 3, 31, 12, 34, 56, 987, 654, 321, calendar);
-const result = datetime.equals({ year: 2021, month: 3, day: 31, hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321, calendar });
-
-assert(result, "time fields are not modified");
diff --git a/polyfill/test/PlainDateTime/prototype/era/branding.js b/polyfill/test/PlainDateTime/prototype/era/branding.js
deleted file mode 100644
index 851522209d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/era/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.era
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const era = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "era").get;
-
-assert.sameValue(typeof era, "function");
-
-assert.throws(TypeError, () => era.call(undefined), "undefined");
-assert.throws(TypeError, () => era.call(null), "null");
-assert.throws(TypeError, () => era.call(true), "true");
-assert.throws(TypeError, () => era.call(""), "empty string");
-assert.throws(TypeError, () => era.call(Symbol()), "symbol");
-assert.throws(TypeError, () => era.call(1), "1");
-assert.throws(TypeError, () => era.call({}), "plain object");
-assert.throws(TypeError, () => era.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => era.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/era/prop-desc.js b/polyfill/test/PlainDateTime/prototype/era/prop-desc.js
deleted file mode 100644
index 5247bc3f95..0000000000
--- a/polyfill/test/PlainDateTime/prototype/era/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.era
-description: The "era" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "era");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/eraYear/branding.js b/polyfill/test/PlainDateTime/prototype/eraYear/branding.js
deleted file mode 100644
index 22bf08c798..0000000000
--- a/polyfill/test/PlainDateTime/prototype/eraYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.erayear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const eraYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "eraYear").get;
-
-assert.sameValue(typeof eraYear, "function");
-
-assert.throws(TypeError, () => eraYear.call(undefined), "undefined");
-assert.throws(TypeError, () => eraYear.call(null), "null");
-assert.throws(TypeError, () => eraYear.call(true), "true");
-assert.throws(TypeError, () => eraYear.call(""), "empty string");
-assert.throws(TypeError, () => eraYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => eraYear.call(1), "1");
-assert.throws(TypeError, () => eraYear.call({}), "plain object");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/eraYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/eraYear/prop-desc.js
deleted file mode 100644
index 573a14ce17..0000000000
--- a/polyfill/test/PlainDateTime/prototype/eraYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.erayear
-description: The "eraYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "eraYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/branding.js b/polyfill/test/PlainDateTime/prototype/getISOFields/branding.js
deleted file mode 100644
index d4a26742b3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.PlainDateTime.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/builtin.js b/polyfill/test/PlainDateTime/prototype/getISOFields/builtin.js
deleted file mode 100644
index 6e17b1b5f6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: >
- Tests that Temporal.PlainDateTime.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/field-names.js b/polyfill/test/PlainDateTime/prototype/getISOFields/field-names.js
deleted file mode 100644
index f444e829d5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-const result = datetime.getISOFields();
-assert.sameValue(result.isoYear, 2000, "isoYear result");
-assert.sameValue(result.isoMonth, 5, "isoMonth result");
-assert.sameValue(result.isoDay, 2, "isoDay result");
-assert.sameValue(result.isoHour, 12, "isoHour result");
-assert.sameValue(result.isoMinute, 34, "isoMinute result");
-assert.sameValue(result.isoSecond, 56, "isoSecond result");
-assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
-assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
-assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/field-prop-desc.js b/polyfill/test/PlainDateTime/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index fdad48faf1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoMonth",
- "isoNanosecond",
- "isoSecond",
- "isoYear",
-];
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const result = datetime.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/field-traversal-order.js b/polyfill/test/PlainDateTime/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index ba6f19faf2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoMonth",
- "isoNanosecond",
- "isoSecond",
- "isoYear",
-];
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const result = datetime.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/length.js b/polyfill/test/PlainDateTime/prototype/getISOFields/length.js
deleted file mode 100644
index 463e3b0b16..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Temporal.PlainDateTime.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/name.js b/polyfill/test/PlainDateTime/prototype/getISOFields/name.js
deleted file mode 100644
index ec6793d108..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: Temporal.PlainDateTime.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index 7c459d11d4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: >
- Temporal.PlainDateTime.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.getISOFields), false,
- "isConstructor(Temporal.PlainDateTime.prototype.getISOFields)");
diff --git a/polyfill/test/PlainDateTime/prototype/getISOFields/prop-desc.js b/polyfill/test/PlainDateTime/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index c77649c9c4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.getisofields
-description: The "getISOFields" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.getISOFields,
- "function",
- "`typeof PlainDateTime.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/hour/branding.js b/polyfill/test/PlainDateTime/prototype/hour/branding.js
deleted file mode 100644
index 099259fca9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/hour/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.hour
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const hour = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "hour").get;
-
-assert.sameValue(typeof hour, "function");
-
-assert.throws(TypeError, () => hour.call(undefined), "undefined");
-assert.throws(TypeError, () => hour.call(null), "null");
-assert.throws(TypeError, () => hour.call(true), "true");
-assert.throws(TypeError, () => hour.call(""), "empty string");
-assert.throws(TypeError, () => hour.call(Symbol()), "symbol");
-assert.throws(TypeError, () => hour.call(1), "1");
-assert.throws(TypeError, () => hour.call({}), "plain object");
-assert.throws(TypeError, () => hour.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => hour.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/hour/prop-desc.js b/polyfill/test/PlainDateTime/prototype/hour/prop-desc.js
deleted file mode 100644
index c1c5533f38..0000000000
--- a/polyfill/test/PlainDateTime/prototype/hour/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.hour
-description: The "hour" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "hour");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/inLeapYear/branding.js b/polyfill/test/PlainDateTime/prototype/inLeapYear/branding.js
deleted file mode 100644
index 07d7783d37..0000000000
--- a/polyfill/test/PlainDateTime/prototype/inLeapYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.inleapyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const inLeapYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "inLeapYear").get;
-
-assert.sameValue(typeof inLeapYear, "function");
-
-assert.throws(TypeError, () => inLeapYear.call(undefined), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null), "null");
-assert.throws(TypeError, () => inLeapYear.call(true), "true");
-assert.throws(TypeError, () => inLeapYear.call(""), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1), "1");
-assert.throws(TypeError, () => inLeapYear.call({}), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/inLeapYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/inLeapYear/prop-desc.js
deleted file mode 100644
index a6298f1f96..0000000000
--- a/polyfill/test/PlainDateTime/prototype/inLeapYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.inleapyear
-description: The "inLeapYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "inLeapYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/microsecond/branding.js b/polyfill/test/PlainDateTime/prototype/microsecond/branding.js
deleted file mode 100644
index 260fd9720c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/microsecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.microsecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const microsecond = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "microsecond").get;
-
-assert.sameValue(typeof microsecond, "function");
-
-assert.throws(TypeError, () => microsecond.call(undefined), "undefined");
-assert.throws(TypeError, () => microsecond.call(null), "null");
-assert.throws(TypeError, () => microsecond.call(true), "true");
-assert.throws(TypeError, () => microsecond.call(""), "empty string");
-assert.throws(TypeError, () => microsecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => microsecond.call(1), "1");
-assert.throws(TypeError, () => microsecond.call({}), "plain object");
-assert.throws(TypeError, () => microsecond.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => microsecond.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/microsecond/prop-desc.js b/polyfill/test/PlainDateTime/prototype/microsecond/prop-desc.js
deleted file mode 100644
index ea2424ea99..0000000000
--- a/polyfill/test/PlainDateTime/prototype/microsecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.microsecond
-description: The "microsecond" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "microsecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/millisecond/branding.js b/polyfill/test/PlainDateTime/prototype/millisecond/branding.js
deleted file mode 100644
index 564c7090d1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/millisecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.millisecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const millisecond = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "millisecond").get;
-
-assert.sameValue(typeof millisecond, "function");
-
-assert.throws(TypeError, () => millisecond.call(undefined), "undefined");
-assert.throws(TypeError, () => millisecond.call(null), "null");
-assert.throws(TypeError, () => millisecond.call(true), "true");
-assert.throws(TypeError, () => millisecond.call(""), "empty string");
-assert.throws(TypeError, () => millisecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => millisecond.call(1), "1");
-assert.throws(TypeError, () => millisecond.call({}), "plain object");
-assert.throws(TypeError, () => millisecond.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => millisecond.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/millisecond/prop-desc.js b/polyfill/test/PlainDateTime/prototype/millisecond/prop-desc.js
deleted file mode 100644
index e12d330aed..0000000000
--- a/polyfill/test/PlainDateTime/prototype/millisecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.millisecond
-description: The "millisecond" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "millisecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/minute/branding.js b/polyfill/test/PlainDateTime/prototype/minute/branding.js
deleted file mode 100644
index b3d8636a44..0000000000
--- a/polyfill/test/PlainDateTime/prototype/minute/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.minute
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const minute = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "minute").get;
-
-assert.sameValue(typeof minute, "function");
-
-assert.throws(TypeError, () => minute.call(undefined), "undefined");
-assert.throws(TypeError, () => minute.call(null), "null");
-assert.throws(TypeError, () => minute.call(true), "true");
-assert.throws(TypeError, () => minute.call(""), "empty string");
-assert.throws(TypeError, () => minute.call(Symbol()), "symbol");
-assert.throws(TypeError, () => minute.call(1), "1");
-assert.throws(TypeError, () => minute.call({}), "plain object");
-assert.throws(TypeError, () => minute.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => minute.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/minute/prop-desc.js b/polyfill/test/PlainDateTime/prototype/minute/prop-desc.js
deleted file mode 100644
index b3220d0ac0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/minute/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.minute
-description: The "minute" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "minute");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/month/branding.js b/polyfill/test/PlainDateTime/prototype/month/branding.js
deleted file mode 100644
index aa27102e16..0000000000
--- a/polyfill/test/PlainDateTime/prototype/month/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.month
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const month = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "month").get;
-
-assert.sameValue(typeof month, "function");
-
-assert.throws(TypeError, () => month.call(undefined), "undefined");
-assert.throws(TypeError, () => month.call(null), "null");
-assert.throws(TypeError, () => month.call(true), "true");
-assert.throws(TypeError, () => month.call(""), "empty string");
-assert.throws(TypeError, () => month.call(Symbol()), "symbol");
-assert.throws(TypeError, () => month.call(1), "1");
-assert.throws(TypeError, () => month.call({}), "plain object");
-assert.throws(TypeError, () => month.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => month.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/month/calendar-returns-infinity.js b/polyfill/test/PlainDateTime/prototype/month/calendar-returns-infinity.js
deleted file mode 100644
index 27ec8f9465..0000000000
--- a/polyfill/test/PlainDateTime/prototype/month/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.month
-description: Getter throws if the calendar returns ±∞ from its month method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- month() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, pos);
-assert.throws(RangeError, () => instance1.month);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, neg);
-assert.throws(RangeError, () => instance2.month);
diff --git a/polyfill/test/PlainDateTime/prototype/month/prop-desc.js b/polyfill/test/PlainDateTime/prototype/month/prop-desc.js
deleted file mode 100644
index 5b8fa49c3d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/month/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.month
-description: The "month" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "month");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/monthCode/branding.js b/polyfill/test/PlainDateTime/prototype/monthCode/branding.js
deleted file mode 100644
index ed692d4063..0000000000
--- a/polyfill/test/PlainDateTime/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "monthCode").get;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/monthCode/prop-desc.js b/polyfill/test/PlainDateTime/prototype/monthCode/prop-desc.js
deleted file mode 100644
index 84cc3faf32..0000000000
--- a/polyfill/test/PlainDateTime/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.monthcode
-description: The "monthCode" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "monthCode");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/monthsInYear/branding.js b/polyfill/test/PlainDateTime/prototype/monthsInYear/branding.js
deleted file mode 100644
index b855d89621..0000000000
--- a/polyfill/test/PlainDateTime/prototype/monthsInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.monthsinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthsInYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "monthsInYear").get;
-
-assert.sameValue(typeof monthsInYear, "function");
-
-assert.throws(TypeError, () => monthsInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null), "null");
-assert.throws(TypeError, () => monthsInYear.call(true), "true");
-assert.throws(TypeError, () => monthsInYear.call(""), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1), "1");
-assert.throws(TypeError, () => monthsInYear.call({}), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/monthsInYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/monthsInYear/prop-desc.js
deleted file mode 100644
index 846e23362c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/monthsInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.monthsinyear
-description: The "monthsInYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "monthsInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/nanosecond/branding.js b/polyfill/test/PlainDateTime/prototype/nanosecond/branding.js
deleted file mode 100644
index 84bd8cb519..0000000000
--- a/polyfill/test/PlainDateTime/prototype/nanosecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.nanosecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const nanosecond = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "nanosecond").get;
-
-assert.sameValue(typeof nanosecond, "function");
-
-assert.throws(TypeError, () => nanosecond.call(undefined), "undefined");
-assert.throws(TypeError, () => nanosecond.call(null), "null");
-assert.throws(TypeError, () => nanosecond.call(true), "true");
-assert.throws(TypeError, () => nanosecond.call(""), "empty string");
-assert.throws(TypeError, () => nanosecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => nanosecond.call(1), "1");
-assert.throws(TypeError, () => nanosecond.call({}), "plain object");
-assert.throws(TypeError, () => nanosecond.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => nanosecond.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/nanosecond/prop-desc.js b/polyfill/test/PlainDateTime/prototype/nanosecond/prop-desc.js
deleted file mode 100644
index 33c4d78e24..0000000000
--- a/polyfill/test/PlainDateTime/prototype/nanosecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.nanosecond
-description: The "nanosecond" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "nanosecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/round/branding.js b/polyfill/test/PlainDateTime/prototype/round/branding.js
deleted file mode 100644
index 9efbaff9c4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const round = Temporal.PlainDateTime.prototype.round;
-
-assert.sameValue(typeof round, "function");
-
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => round.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/round/builtin.js b/polyfill/test/PlainDateTime/prototype/round/builtin.js
deleted file mode 100644
index cb59577385..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: >
- Tests that Temporal.PlainDateTime.prototype.round
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.round),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.round),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.round),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.round.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/round/length.js b/polyfill/test/PlainDateTime/prototype/round/length.js
deleted file mode 100644
index 96e445c6c4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Temporal.PlainDateTime.prototype.round.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.round, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/round/name.js b/polyfill/test/PlainDateTime/prototype/round/name.js
deleted file mode 100644
index 64b915023c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Temporal.PlainDateTime.prototype.round.name is "round".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.round, "name", {
- value: "round",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/round/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/round/not-a-constructor.js
deleted file mode 100644
index ec7f017868..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: >
- Temporal.PlainDateTime.prototype.round does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.round();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.round), false,
- "isConstructor(Temporal.PlainDateTime.prototype.round)");
diff --git a/polyfill/test/PlainDateTime/prototype/round/prop-desc.js b/polyfill/test/PlainDateTime/prototype/round/prop-desc.js
deleted file mode 100644
index 1b444a3b7d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: The "round" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.round,
- "function",
- "`typeof PlainDateTime.prototype.round` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "round", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-nan.js b/polyfill/test/PlainDateTime/prototype/round/roundingincrement-nan.js
deleted file mode 100644
index 79c19123a0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.plaindatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-assert.throws(RangeError, () => datetime.round({ smallestUnit: 'second', roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-non-integer.js b/polyfill/test/PlainDateTime/prototype/round/roundingincrement-non-integer.js
deleted file mode 100644
index baa035eb76..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-const result = datetime.round({ smallestUnit: "nanosecond", roundingIncrement: 2.5 });
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 0, 0, 6, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-out-of-range.js b/polyfill/test/PlainDateTime/prototype/round/roundingincrement-out-of-range.js
deleted file mode 100644
index f35ed2e16b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: -1 }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: 0 }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-undefined.js b/polyfill/test/PlainDateTime/prototype/round/roundingincrement-undefined.js
deleted file mode 100644
index 2cd1595f95..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.plaindatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-const explicit = datetime.round({ smallestUnit: 'second', roundingIncrement: undefined });
-TemporalHelpers.assertPlainDateTime(explicit, 2000, 5, "M05", 2, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
-
-const implicit = datetime.round({ smallestUnit: 'second' });
-TemporalHelpers.assertPlainDateTime(implicit, 2000, 5, "M05", 2, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-wrong-type.js b/polyfill/test/PlainDateTime/prototype/round/roundingincrement-wrong-type.js
deleted file mode 100644
index 3833832c3a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.plaindatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => datetime.round({ smallestUnit: 'second', roundingIncrement }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 57, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingmode-invalid-string.js b/polyfill/test/PlainDateTime/prototype/round/roundingmode-invalid-string.js
deleted file mode 100644
index 00a3140c53..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingmode-undefined.js b/polyfill/test/PlainDateTime/prototype/round/roundingmode-undefined.js
deleted file mode 100644
index b3166f554d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingmode-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = datetime.round({ smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertPlainDateTime(explicit1, 2000, 5, "M05", 2, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-const implicit1 = datetime.round({ smallestUnit: "microsecond" });
-TemporalHelpers.assertPlainDateTime(implicit1, 2000, 5, "M05", 2, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-
-const explicit2 = datetime.round({ smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertPlainDateTime(explicit2, 2000, 5, "M05", 2, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-const implicit2 = datetime.round({ smallestUnit: "millisecond" });
-TemporalHelpers.assertPlainDateTime(implicit2, 2000, 5, "M05", 2, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-
-const explicit3 = datetime.round({ smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertPlainDateTime(explicit3, 2000, 5, "M05", 2, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
-const implicit3 = datetime.round({ smallestUnit: "second" });
-TemporalHelpers.assertPlainDateTime(implicit3, 2000, 5, "M05", 2, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
diff --git a/polyfill/test/PlainDateTime/prototype/round/roundingmode-wrong-type.js b/polyfill/test/PlainDateTime/prototype/round/roundingmode-wrong-type.js
deleted file mode 100644
index 05c2859237..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "halfExpand",
- (roundingMode) => datetime.round({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/round/smallestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/round/smallestunit-invalid-string.js
deleted file mode 100644
index e4d8f8503c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/round/smallestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/round/smallestunit-plurals-accepted.js
deleted file mode 100644
index c80362d92d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 789, 999, 999);
-const validUnits = [
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => datetime.round({ smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/round/smallestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/round/smallestunit-wrong-type.js
deleted file mode 100644
index aa0a13c544..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => datetime.round({ smallestUnit }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/round/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/round/subclassing-ignored.js
deleted file mode 100644
index 1b2e0227fa..0000000000
--- a/polyfill/test/PlainDateTime/prototype/round/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.round
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "round",
- [{ smallestUnit: 'second' }],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 57, 0, 0, 0),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/second/branding.js b/polyfill/test/PlainDateTime/prototype/second/branding.js
deleted file mode 100644
index 4715b18b48..0000000000
--- a/polyfill/test/PlainDateTime/prototype/second/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.second
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const second = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "second").get;
-
-assert.sameValue(typeof second, "function");
-
-assert.throws(TypeError, () => second.call(undefined), "undefined");
-assert.throws(TypeError, () => second.call(null), "null");
-assert.throws(TypeError, () => second.call(true), "true");
-assert.throws(TypeError, () => second.call(""), "empty string");
-assert.throws(TypeError, () => second.call(Symbol()), "symbol");
-assert.throws(TypeError, () => second.call(1), "1");
-assert.throws(TypeError, () => second.call({}), "plain object");
-assert.throws(TypeError, () => second.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => second.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/second/prop-desc.js b/polyfill/test/PlainDateTime/prototype/second/prop-desc.js
deleted file mode 100644
index 493e38407c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/second/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.second
-description: The "second" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "second");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-plaindate.js b/polyfill/test/PlainDateTime/prototype/since/argument-plaindate.js
deleted file mode 100644
index ab84703fe5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-plaindate.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date, calendar) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 0, 0, 0, 987, 654, 321, calendar);
- const result = datetime.since(date);
- assert.sameValue(result.total({ unit: "nanoseconds" }), 987654321, "PlainDate is converted to midnight");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index cd633b338d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindatetime.prototype.since step 3:
- 3. Set _other_ ? ToTemporalDateTime(_other_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const diff = new Temporal.PlainDateTime(1970, 1, 1).since(datetime);
-
-TemporalHelpers.assertDuration(diff, 0, 0, 0, 0, -1, -1, -1, -1, 0, -999);
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 3ee4053650..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321);
-const result = instance.since(datetime);
-TemporalHelpers.assertDuration(result, 0, 0, 0, 11239, 22, 40, 10, 987, 654, 320);
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index a0696a0ca4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.since(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index ed77eab137..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.since(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 450e21cd58..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => plain.since(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/balance-negative-duration.js b/polyfill/test/PlainDateTime/prototype/since/balance-negative-duration.js
deleted file mode 100644
index d11948b651..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/balance-negative-duration.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Negative durations are balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-differenceisodatetime steps 7 and 13:
- 7. If _timeSign_ is -_dateSign_, then
- ...
- b. Set _timeDifference_ to ? BalanceDuration(-_timeSign_, _timeDifference_.[[Hours]], _timeDifference_.[[Minutes]], _timeDifference_.[[Seconds]], _timeDifference_.[[Milliseconds]], _timeDifference_.[[Microseconds]], _timeDifference_.[[Nanoseconds]], _largestUnit_).
- ...
- 16. Return ? BalanceDuration(_dateDifference_.[[Years]], _dateDifference_.[[Months]], _dateDifference_.[[Weeks]], _dateDifference_.[[Days]], _timeDifference_.[[Hours]], _timeDifference_.[[Minutes]], _timeDifference_.[[Seconds]], _timeDifference_.[[Milliseconds]], _timeDifference_.[[Microseconds]], _timeDifference_.[[Nanoseconds]], _largestUnit_).
- sec-temporal.plaindatetime.prototype.since step 14:
- 14. Let _diff_ be ? DifferenceISODateTime(_other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier1 = new Temporal.PlainDateTime(2000, 5, 2, 9);
-const later1 = new Temporal.PlainDateTime(2000, 5, 5, 10);
-const result1 = later1.since(earlier1, { largestUnit: 'day' });
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 3, 1, 0, 0, 0, 0, 0, "date sign == time sign");
-
-const earlier2 = new Temporal.PlainDateTime(2000, 5, 2, 10);
-const later2 = new Temporal.PlainDateTime(2000, 5, 5, 9);
-const result2 = later2.since(earlier2, { largestUnit: 'day' });
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 2, 23, 0, 0, 0, 0, 0, "date sign != time sign");
diff --git a/polyfill/test/PlainDateTime/prototype/since/balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/since/balance-negative-time-units.js
deleted file mode 100644
index a5fcdba945..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/balance-negative-time-units.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal.plaindatetime.prototype.since step 14:
- 14. Let _diff_ be ? DifferenceISODateTime(_other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(1996, 5, 2, 1, 1, 1, 1, 1, 1);
-
-const result1 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 0, 2));
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 2));
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 2));
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 0, 2));
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = datetime.since(new Temporal.PlainDateTime(1996, 5, 2, 2));
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/PlainDateTime/prototype/since/branding.js b/polyfill/test/PlainDateTime/prototype/since/branding.js
deleted file mode 100644
index c516e4d2c5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.PlainDateTime.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => since.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/since/builtin.js b/polyfill/test/PlainDateTime/prototype/since/builtin.js
deleted file mode 100644
index 157d7f532e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: >
- Tests that Temporal.PlainDateTime.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js b/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js
deleted file mode 100644
index 82cbddc3b5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: The dateUntil() method on the calendar is called with a copy of the options bag
-features: [Temporal]
----*/
-
-const originalOptions = {
- largestUnit: "year",
- shouldBeCopied: {},
-};
-let called = false;
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2, options) {
- called = true;
- assert.notSameValue(options, originalOptions, "options bag should be a copy");
- assert.sameValue(options.shouldBeCopied, originalOptions.shouldBeCopied, "options bag should be a shallow copy");
- return new Temporal.Duration();
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
-earlier.since(later, originalOptions);
-assert(called, "calendar.dateUntil must be called");
diff --git a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-plaindate-calendar.js b/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-plaindate-calendar.js
deleted file mode 100644
index 69f335a723..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-plaindate-calendar.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: calendar.dateUntil() is passed PlainDate objects with the receiver's calendar
-info: |
- DifferenceISODateTime ( y1, mon1, d1, h1, min1, s1, ms1, mus1, ns1, y2, mon2, d2, h2, min2, s2, ms2, mus2, ns2, calendar, largestUnit [ , options ] )
-
- 8. Let _date1_ be ? CreateTemporalDate(_balanceResult_.[[Year]], _balanceResult_.[[Month]], _balanceResult_.[[Day]], _calendar_).
- 9. Let _date2_ be ? CreateTemporalDate(_y2_, _mon2_, _d2_, _calendar_).
- 12. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-features: [Temporal]
----*/
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2) {
- assert.sameValue(d1.calendar, this, "d1.calendar");
- assert.sameValue(d2.calendar, this, "d2.calendar");
- return new Temporal.Duration();
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
-const result = earlier.since(later);
-assert(result instanceof Temporal.Duration, "result");
diff --git a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index b6f71c759d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plaindatetime.prototype.since step 14:
- 14. Let _diff_ be ? DifferenceISODateTime(_other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
- later.since(earlier, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"],
- hours: ["day"],
- minutes: ["day"],
- seconds: ["day"],
- milliseconds: ["day"],
- microseconds: ["day"],
- nanoseconds: ["day"]
- }
-);
diff --git a/polyfill/test/PlainDateTime/prototype/since/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/since/calendar-fields-iterable.js
deleted file mode 100644
index 1a6308d841..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.since({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/since/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/since/calendar-temporal-object.js
deleted file mode 100644
index 791434c927..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, temporalObject);
- datetime.since({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 37cbba98ea..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/largestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index d20696dfc1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => later.since(earlier, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index 2aebc4901f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 12, 13, 35, 57, 988, 655, 322);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/since/largestunit-undefined.js b/polyfill/test/PlainDateTime/prototype/since/largestunit-undefined.js
deleted file mode 100644
index db8b37c1cc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-
-const explicit = later.since(earlier, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 1, 1, 1, 987, 654, 321, "default largestUnit is day");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 1, 1, 1, 987, 654, 321, "default largestUnit is day");
diff --git a/polyfill/test/PlainDateTime/prototype/since/largestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index dc30a217eb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 1, 1, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/since/length.js b/polyfill/test/PlainDateTime/prototype/since/length.js
deleted file mode 100644
index c181ef281e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Temporal.PlainDateTime.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/name.js b/polyfill/test/PlainDateTime/prototype/since/name.js
deleted file mode 100644
index 7c6e2a4f28..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Temporal.PlainDateTime.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/since/not-a-constructor.js
deleted file mode 100644
index f1e848f523..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: >
- Temporal.PlainDateTime.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.since), false,
- "isConstructor(Temporal.PlainDateTime.prototype.since)");
diff --git a/polyfill/test/PlainDateTime/prototype/since/options-undefined.js b/polyfill/test/PlainDateTime/prototype/since/options-undefined.js
deleted file mode 100644
index 9eb9db1ae2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/options-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2000, 6, 12, 12, 34, 56, 987, 654, 322);
-
-const explicit = later.since(earlier, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is days");
-assert.sameValue(explicit.months, 0, "default largest unit is days");
-assert.sameValue(explicit.weeks, 0, "default largest unit is days");
-assert.sameValue(explicit.days, 41, "default largest unit is days");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = later.since(earlier);
-assert.sameValue(implicit.years, 0, "default largest unit is days");
-assert.sameValue(implicit.months, 0, "default largest unit is days");
-assert.sameValue(implicit.weeks, 0, "default largest unit is days");
-assert.sameValue(implicit.days, 41, "default largest unit is days");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/PlainDateTime/prototype/since/prop-desc.js b/polyfill/test/PlainDateTime/prototype/since/prop-desc.js
deleted file mode 100644
index 610f0884bf..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: The "since" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.since,
- "function",
- "`typeof PlainDateTime.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/since/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/prototype/since/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 9f7acc26d6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.PlainDateTime(2021, 3, 31, 12, 34, 56, 987, 654, 321);
-const duration = datetime.since({ year: 2021, month: 3, day: 31, calendar });
-
-TemporalHelpers.assertDuration(duration, 0, 0, 0, 0, 12, 34, 56, 987, 654, 321);
diff --git a/polyfill/test/PlainDateTime/prototype/since/round-negative-duration.js b/polyfill/test/PlainDateTime/prototype/since/round-negative-duration.js
deleted file mode 100644
index 0383746037..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/round-negative-duration.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Negative durations are rounded correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-roundduration step 6:
- 6. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- sec-temporal.plaindatetime.prototype.since step 15:
- 15. Let _roundResult_ be ? RoundDuration(−_diff_.[[Years]], −_diff_.[[Months]], −_diff_.[[Weeks]], −_diff_.[[Days]], −_diff_.[[Hours]], −_diff_.[[Minutes]], −_diff_.[[Seconds]], −_diff_.[[Milliseconds]], −_diff_.[[Microseconds]], −_diff_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _dateTime_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const later = new Temporal.PlainDateTime(2000, 5, 5);
-const result = later.since(earlier, { smallestUnit: "day", roundingIncrement: 2 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-nan.js b/polyfill/test/PlainDateTime/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index 355067c246..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.since step 13:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-non-integer.js b/polyfill/test/PlainDateTime/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index 05265ab0b1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/PlainDateTime/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index b274fab67a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-undefined.js b/polyfill/test/PlainDateTime/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index a11d473000..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/PlainDateTime/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index 87a695a742..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 397, 1, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingmode-invalid-string.js b/polyfill/test/PlainDateTime/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index 59b1314d56..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingmode-undefined.js b/polyfill/test/PlainDateTime/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index f23689b2d9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-
-const explicit1 = later.since(earlier, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = later.since(earlier, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = later.since(earlier, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 1, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = later.since(earlier, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 1, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = later.since(earlier, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = later.since(earlier, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainDateTime/prototype/since/roundingmode-wrong-type.js b/polyfill/test/PlainDateTime/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index e74e381aed..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/since/smallestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 94d4409a3b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index 191fc9dbf5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 12, 13, 35, 57, 988, 655, 322);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/since/smallestunit-undefined.js b/polyfill/test/PlainDateTime/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index 8d0b34f963..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/PlainDateTime/prototype/since/smallestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 47841f1ede..0000000000
--- a/polyfill/test/PlainDateTime/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/argument-not-object.js b/polyfill/test/PlainDateTime/prototype/subtract/argument-not-object.js
deleted file mode 100644
index b60b50dcfd..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Passing a primitive other than string to subtract() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-assert.throws(RangeError, () => instance.subtract(undefined), "undefined");
-assert.throws(RangeError, () => instance.subtract(null), "null");
-assert.throws(RangeError, () => instance.subtract(true), "boolean");
-assert.throws(RangeError, () => instance.subtract(""), "empty string");
-assert.throws(TypeError, () => instance.subtract(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.subtract(7), "number");
-assert.throws(RangeError, () => instance.subtract(7n), "bigint");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 2add82f7df..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2);
-
-const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainDateTime(resultHours, 2000, 5, "M05", 3, 0, 34, 4, 404, 442, 799, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainDateTime(resultMinutes, 2000, 5, "M05", 3, 0, 0, 34, 73, 407, 379, "negative fractional minutes");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/argument-string.js b/polyfill/test/PlainDateTime/prototype/subtract/argument-string.js
deleted file mode 100644
index fccc02a2f6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-const result = instance.subtract("P3D");
-TemporalHelpers.assertPlainDateTime(result, 2000, 4, "M04", 29, 0, 34, 56, 987, 654, 321);
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/subtract/balance-negative-time-units.js
deleted file mode 100644
index e6567581e2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/balance-negative-time-units.js
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal.plaindatetime.prototype.subtract step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(1996, 5, 2, 1, 1, 1, 1, 1, 1);
-
-const result1 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result1, 1996, 5, "M05", 2, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result2, 1996, 5, "M05", 2, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result3, 1996, 5, "M05", 2, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result4, 1996, 5, "M05", 2, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result5, 1996, 5, "M05", 2, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-const result6 = datetime.subtract(new Temporal.Duration(0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainDateTime(result6, 1996, 5, "M05", 1, 23, 1, 1, 1, 1, 1, "hours balance");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/branding.js b/polyfill/test/PlainDateTime/prototype/subtract/branding.js
deleted file mode 100644
index 8c29b1fc8e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.PlainDateTime.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/builtin.js b/polyfill/test/PlainDateTime/prototype/subtract/builtin.js
deleted file mode 100644
index f9a1a9d5fa..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: >
- Tests that Temporal.PlainDateTime.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index 733f04dddc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaindatetime.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/length.js b/polyfill/test/PlainDateTime/prototype/subtract/length.js
deleted file mode 100644
index 93a46ecebb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Temporal.PlainDateTime.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/name.js b/polyfill/test/PlainDateTime/prototype/subtract/name.js
deleted file mode 100644
index 58b0020aa2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Temporal.PlainDateTime.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index a5bc9593cb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDateTime.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaindatetime.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainDateTime.from({ year: 2000, month: 5, day: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 50ba0bdd59..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 21e31a90ca..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: >
- Temporal.PlainDateTime.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.subtract), false,
- "isConstructor(Temporal.PlainDateTime.prototype.subtract)");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/options-undefined.js b/polyfill/test/PlainDateTime/prototype/subtract/options-undefined.js
deleted file mode 100644
index 04dd700532..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 3, 31, 12, 34, 56, 987, 654, 321);
-const duration = { months: 1 };
-
-const explicit = datetime.subtract(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.subtract(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/order-of-operations.js b/polyfill/test/PlainDateTime/prototype/subtract/order-of-operations.js
deleted file mode 100644
index 0294d1bf77..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument);
-TemporalHelpers.assertPlainDateTime(result, 1999, 3, "M03", 25, 11, 33, 55, 986, 653, 320);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/overflow-invalid-string.js b/polyfill/test/PlainDateTime/prototype/subtract/overflow-invalid-string.js
deleted file mode 100644
index 1e1f1761c8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.subtract step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const duration = new Temporal.Duration(3, 3, 0, 3, 3);
-assert.throws(RangeError, () => date.subtract(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/overflow-undefined.js b/polyfill/test/PlainDateTime/prototype/subtract/overflow-undefined.js
deleted file mode 100644
index ccdce7624b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/overflow-undefined.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.subtract
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.subtract step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 31, 12);
-const duration = new Temporal.Duration(3, 1);
-
-const explicit = datetime.subtract(duration, { overflow: undefined });
-TemporalHelpers.assertPlainDateTime(explicit, 1997, 4, "M04", 30, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = datetime.subtract(duration, {});
-TemporalHelpers.assertPlainDateTime(implicit, 1997, 4, "M04", 30, 12, 0, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/overflow-wrong-type.js b/polyfill/test/PlainDateTime/prototype/subtract/overflow-wrong-type.js
deleted file mode 100644
index d536cd10f8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/overflow-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-adddatetime step 4:
- 4. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.plaindatetime.prototype.subtract step 5:
- 5. Let _result_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _dateTime_.[[Calendar]], −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const duration = new Temporal.Duration(3, 3, 0, 3, 3);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => datetime.subtract(duration, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainDateTime(result, 1997, 1, "M01", 30, 9, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/prop-desc.js b/polyfill/test/PlainDateTime/prototype/subtract/prop-desc.js
deleted file mode 100644
index 40162788fc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: The "subtract" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.subtract,
- "function",
- "`typeof PlainDateTime.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/subtract/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 657278f1ce..0000000000
--- a/polyfill/test/PlainDateTime/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.subtract
-description: Objects of a subclass are never created as return values for subtract()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "subtract",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 987, 654, 320),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/branding.js b/polyfill/test/PlainDateTime/prototype/toJSON/branding.js
deleted file mode 100644
index e9fcdb62b1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.PlainDateTime.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/builtin.js b/polyfill/test/PlainDateTime/prototype/toJSON/builtin.js
deleted file mode 100644
index fb31ff8273..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: >
- Tests that Temporal.PlainDateTime.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/length.js b/polyfill/test/PlainDateTime/prototype/toJSON/length.js
deleted file mode 100644
index cea157e23b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: Temporal.PlainDateTime.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/name.js b/polyfill/test/PlainDateTime/prototype/toJSON/name.js
deleted file mode 100644
index 3c809d5275..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: Temporal.PlainDateTime.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index f752138da6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: >
- Temporal.PlainDateTime.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toJSON), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toJSON)");
diff --git a/polyfill/test/PlainDateTime/prototype/toJSON/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toJSON/prop-desc.js
deleted file mode 100644
index 019d407eba..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tojson
-description: The "toJSON" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toJSON,
- "function",
- "`typeof PlainDateTime.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/branding.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/branding.js
deleted file mode 100644
index 3f81e81149..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.PlainDateTime.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/builtin.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/builtin.js
deleted file mode 100644
index d8828b711e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: >
- Tests that Temporal.PlainDateTime.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/length.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/length.js
deleted file mode 100644
index ed2fdc1560..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: Temporal.PlainDateTime.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/locales-undefined.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index 83e2759550..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const expected = defaultFormatter.format(datetime);
-
-const actualExplicit = datetime.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = datetime.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/name.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/name.js
deleted file mode 100644
index f6fbed25d3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: Temporal.PlainDateTime.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index a60c1fa0e5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: >
- Temporal.PlainDateTime.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toLocaleString), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toLocaleString)");
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/options-conflict.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/options-conflict.js
deleted file mode 100644
index 13fefadde6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/options-conflict.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Kate Miháliková. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sup-temporal.plaindatetime.prototype.tolocalestring
-description: >
- Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
-info: |
- Using sec-temporal-getdatetimeformatpattern:
- GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
-
- 1. If dateStyle is not undefined or timeStyle is not undefined, then
- a. For each row in Table 7, except the header row, do
- i. Let prop be the name given in the Property column of the row.
- ii. Let p be opt.[[]].
- iii. If p is not undefined, then
- 1. Throw a TypeError exception.
-features: [Temporal]
----*/
-
-// Table 14 - Supported fields + example value for each field
-const conflictingOptions = [
- [ "weekday", "short" ],
- [ "era", "short" ],
- [ "year", "numeric" ],
- [ "month", "numeric" ],
- [ "day", "numeric" ],
- [ "hour", "numeric" ],
- [ "minute", "numeric" ],
- [ "second", "numeric" ],
- [ "dayPeriod", "short" ],
- [ "fractionalSecondDigits", 3 ],
-];
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
-assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");
-
-for (const [ option, value ] of conflictingOptions) {
- assert.throws(TypeError, function() {
- datetime.toLocaleString("en", { [option]: value, dateStyle: "short" });
- }, `datetime.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
-
- assert.throws(TypeError, function() {
- datetime.toLocaleString("en", { [option]: value, timeStyle: "short" });
- }, `datetime.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
-}
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/options-undefined.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 4bd7be6588..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const expected = defaultFormatter.format(datetime);
-
-const actualExplicit = datetime.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = datetime.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainDateTime/prototype/toLocaleString/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index a282771d27..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toLocaleString,
- "function",
- "`typeof PlainDateTime.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/branding.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/branding.js
deleted file mode 100644
index d6c346b8e1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDate = Temporal.PlainDateTime.prototype.toPlainDate;
-
-assert.sameValue(typeof toPlainDate, "function");
-
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/builtin.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/builtin.js
deleted file mode 100644
index 3d5d0bbdbc..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: >
- Tests that Temporal.PlainDateTime.prototype.toPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/length.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/length.js
deleted file mode 100644
index d401351fa4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: Temporal.PlainDateTime.prototype.toPlainDate.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainDate, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/name.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/name.js
deleted file mode 100644
index 39e5cf5c2f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: Temporal.PlainDateTime.prototype.toPlainDate.name is "toPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainDate, "name", {
- value: "toPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/not-a-constructor.js
deleted file mode 100644
index f125a5f875..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: >
- Temporal.PlainDateTime.prototype.toPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toPlainDate), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toPlainDate)");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainDate/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toPlainDate/prop-desc.js
deleted file mode 100644
index c027480014..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaindate
-description: The "toPlainDate" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toPlainDate,
- "function",
- "`typeof PlainDateTime.prototype.toPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/branding.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/branding.js
deleted file mode 100644
index e8a63bb90b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainMonthDay = Temporal.PlainDateTime.prototype.toPlainMonthDay;
-
-assert.sameValue(typeof toPlainMonthDay, "function");
-
-assert.throws(TypeError, () => toPlainMonthDay.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainMonthDay.call(null), "null");
-assert.throws(TypeError, () => toPlainMonthDay.call(true), "true");
-assert.throws(TypeError, () => toPlainMonthDay.call(""), "empty string");
-assert.throws(TypeError, () => toPlainMonthDay.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainMonthDay.call(1), "1");
-assert.throws(TypeError, () => toPlainMonthDay.call({}), "plain object");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/builtin.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/builtin.js
deleted file mode 100644
index b6e62de3f3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: >
- Tests that Temporal.PlainDateTime.prototype.toPlainMonthDay
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toPlainMonthDay),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toPlainMonthDay),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toPlainMonthDay),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toPlainMonthDay.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-arguments.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-arguments.js
deleted file mode 100644
index 37f9efc51d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: Correct options value is passed to calendar method
-info: |
- MonthDayFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- monthDayFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.monthDayFromFields(...args);
- }
-}
-const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 456, 789, new CustomCalendar());
-const result = plainDateTime.toPlainMonthDay();
-TemporalHelpers.assertPlainMonthDay(result, "M05", 2);
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js
deleted file mode 100644
index 64c669a6e6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.toplainmonthday step 4:
- 4. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"monthCode"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "monthCode",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-datetime.toPlainMonthDay();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/length.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/length.js
deleted file mode 100644
index c7103be374..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: Temporal.PlainDateTime.prototype.toPlainMonthDay.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainMonthDay, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/name.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/name.js
deleted file mode 100644
index 56376fae65..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: Temporal.PlainDateTime.prototype.toPlainMonthDay.name is "toPlainMonthDay".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainMonthDay, "name", {
- value: "toPlainMonthDay",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/not-a-constructor.js
deleted file mode 100644
index 3b6963660f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: >
- Temporal.PlainDateTime.prototype.toPlainMonthDay does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toPlainMonthDay();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toPlainMonthDay), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toPlainMonthDay)");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/prop-desc.js
deleted file mode 100644
index cfdc4a721d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainMonthDay/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainmonthday
-description: The "toPlainMonthDay" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toPlainMonthDay,
- "function",
- "`typeof PlainDateTime.prototype.toPlainMonthDay` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toPlainMonthDay", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/branding.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/branding.js
deleted file mode 100644
index 4fc32cef67..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainTime = Temporal.PlainDateTime.prototype.toPlainTime;
-
-assert.sameValue(typeof toPlainTime, "function");
-
-assert.throws(TypeError, () => toPlainTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainTime.call(null), "null");
-assert.throws(TypeError, () => toPlainTime.call(true), "true");
-assert.throws(TypeError, () => toPlainTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainTime.call(1), "1");
-assert.throws(TypeError, () => toPlainTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainTime.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toPlainTime.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/builtin.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/builtin.js
deleted file mode 100644
index 21b5ce1f7e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: >
- Tests that Temporal.PlainDateTime.prototype.toPlainTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toPlainTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toPlainTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toPlainTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toPlainTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/length.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/length.js
deleted file mode 100644
index c36f1e1d1d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: Temporal.PlainDateTime.prototype.toPlainTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/name.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/name.js
deleted file mode 100644
index ec8dc0f01a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: Temporal.PlainDateTime.prototype.toPlainTime.name is "toPlainTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainTime, "name", {
- value: "toPlainTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/not-a-constructor.js
deleted file mode 100644
index 886328fe52..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: >
- Temporal.PlainDateTime.prototype.toPlainTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toPlainTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toPlainTime), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toPlainTime)");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainTime/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toPlainTime/prop-desc.js
deleted file mode 100644
index c5f1028e4f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplaintime
-description: The "toPlainTime" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toPlainTime,
- "function",
- "`typeof PlainDateTime.prototype.toPlainTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toPlainTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/branding.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/branding.js
deleted file mode 100644
index 0ce564e3ee..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainYearMonth = Temporal.PlainDateTime.prototype.toPlainYearMonth;
-
-assert.sameValue(typeof toPlainYearMonth, "function");
-
-assert.throws(TypeError, () => toPlainYearMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainYearMonth.call(null), "null");
-assert.throws(TypeError, () => toPlainYearMonth.call(true), "true");
-assert.throws(TypeError, () => toPlainYearMonth.call(""), "empty string");
-assert.throws(TypeError, () => toPlainYearMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainYearMonth.call(1), "1");
-assert.throws(TypeError, () => toPlainYearMonth.call({}), "plain object");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/builtin.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/builtin.js
deleted file mode 100644
index c3a23c1a8a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: >
- Tests that Temporal.PlainDateTime.prototype.toPlainYearMonth
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toPlainYearMonth),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toPlainYearMonth),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toPlainYearMonth),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toPlainYearMonth.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-arguments.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-arguments.js
deleted file mode 100644
index 2b92786f6b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: Correct options value is passed to calendar method
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 456, 789, new CustomCalendar());
-const result = plainDateTime.toPlainYearMonth();
-TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js
deleted file mode 100644
index 3f0157e3b7..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.toplainyearmonth step 4:
- 4. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-datetime.toPlainYearMonth();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/length.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/length.js
deleted file mode 100644
index f5e656ddd5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: Temporal.PlainDateTime.prototype.toPlainYearMonth.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainYearMonth, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/name.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/name.js
deleted file mode 100644
index 5daacaf0cd..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: Temporal.PlainDateTime.prototype.toPlainYearMonth.name is "toPlainYearMonth".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toPlainYearMonth, "name", {
- value: "toPlainYearMonth",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/not-a-constructor.js
deleted file mode 100644
index 0296188dfd..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: >
- Temporal.PlainDateTime.prototype.toPlainYearMonth does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toPlainYearMonth();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toPlainYearMonth), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toPlainYearMonth)");
diff --git a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/prop-desc.js
deleted file mode 100644
index 78d1e3ec68..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toPlainYearMonth/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.toplainyearmonth
-description: The "toPlainYearMonth" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toPlainYearMonth,
- "function",
- "`typeof PlainDateTime.prototype.toPlainYearMonth` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toPlainYearMonth", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/branding.js b/polyfill/test/PlainDateTime/prototype/toString/branding.js
deleted file mode 100644
index 58cca42f67..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.PlainDateTime.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toString.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/builtin.js b/polyfill/test/PlainDateTime/prototype/toString/builtin.js
deleted file mode 100644
index 7e2b679bda..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: >
- Tests that Temporal.PlainDateTime.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/calendarname-invalid-string.js b/polyfill/test/PlainDateTime/prototype/toString/calendarname-invalid-string.js
deleted file mode 100644
index 985ad225ac..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/calendarname-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.protoype.tostring
-description: RangeError thrown when calendarName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-assert.throws(RangeError, () => datetime.toString({ calendarName: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/calendarname-undefined.js b/polyfill/test/PlainDateTime/prototype/toString/calendarname-undefined.js
deleted file mode 100644
index b8b741b65f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/calendarname-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.protoype.tostring
-description: Fallback value for calendarName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime1 = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const datetime2 = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-
-[
- [datetime1, "2000-05-02T12:34:56.987654321"],
- [datetime2, "2000-05-02T12:34:56.987654321[u-ca=custom]"],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toString({ calendarName: undefined });
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- // See options-undefined.js for {}
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/calendarname-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toString/calendarname-wrong-type.js
deleted file mode 100644
index 171546b212..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/calendarname-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.protoype.tostring
-description: Type conversions for calendarName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plaindatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-
-TemporalHelpers.checkStringOptionWrongType("calendarName", "auto",
- (calendarName) => datetime.toString({ calendarName }),
- (result, descr) => assert.sameValue(result, "2000-05-02T12:34:56.987654321[u-ca=custom]", descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-invalid-string.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
deleted file mode 100644
index 150d868658..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option not one of the allowed string values
-info: |
- sec-getstringornumberoption step 4:
- 4. If _stringValues_ is not *undefined* and _stringValues_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-nan.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-nan.js
deleted file mode 100644
index 4ea34d8aef..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: NaN }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-non-integer.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-non-integer.js
deleted file mode 100644
index 7de58c30b3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-non-integer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Rounding for fractionalSecondDigits option
-info: |
- sec-getstringornumberoption step 3.b:
- b. Return floor(ℝ(_value_)).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-
-const string = datetime.toString({ fractionalSecondDigits: 2.5 });
-assert.sameValue(string, "2000-05-02T12:34:56.98", "fractionalSecondDigits 2.5 floors to 2");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-out-of-range.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
deleted file mode 100644
index 948d707eb3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option out of range
-info: |
- sec-getstringornumberoption step 3.a:
- a. If _value_ < _minimum_ or _value_ > _maximum_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: -1 }));
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: 10 }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
deleted file mode 100644
index 12a0f77b87..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Fallback value for fractionalSecondDigits option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, *"stringOrNumber"*, *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-
-const explicit = datetime.toString({ fractionalSecondDigits: undefined });
-assert.sameValue(explicit, "2000-05-02T12:34:56.98765", "default fractionalSecondDigits is auto");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
deleted file mode 100644
index 9177b82196..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Type conversions for fractionalSecondDigits option
-info: |
- sec-getoption steps 8–9:
- 8. Else if _type_ is Number, then
- a. Set _value_ to ? ToNumber(value).
- b. ...
- 9. Else,
- a. Set _value_ to ? ToString(value).
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaindatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-TemporalHelpers.checkFractionalSecondDigitsOptionWrongType(datetime);
diff --git a/polyfill/test/PlainDateTime/prototype/toString/length.js b/polyfill/test/PlainDateTime/prototype/toString/length.js
deleted file mode 100644
index f54fee10a2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Temporal.PlainDateTime.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/name.js b/polyfill/test/PlainDateTime/prototype/toString/name.js
deleted file mode 100644
index 4379558277..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Temporal.PlainDateTime.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 8e983be003..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: >
- Temporal.PlainDateTime.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toString), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toString)");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/options-undefined.js b/polyfill/test/PlainDateTime/prototype/toString/options-undefined.js
deleted file mode 100644
index 0f19b561d2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime1 = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0);
-const datetime2 = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 650, 0, calendar);
-
-[
- [datetime1, "2000-05-02T12:34:56.98765"],
- [datetime2, "2000-05-02T12:34:56.98765[u-ca=custom]"],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toString(undefined);
- assert.sameValue(explicit, expected, "default calendarName option is auto, precision is auto, and no rounding");
-
- const propertyImplicit = datetime.toString({});
- assert.sameValue(propertyImplicit, expected, "default calendarName option is auto, precision is auto, and no rounding");
-
- const implicit = datetime.toString();
- assert.sameValue(implicit, expected, "default calendarName option is auto, precision is auto, and no rounding");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toString/prop-desc.js
deleted file mode 100644
index c9c04ed499..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: The "toString" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toString,
- "function",
- "`typeof PlainDateTime.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-invalid-string.js b/polyfill/test/PlainDateTime/prototype/toString/roundingmode-invalid-string.js
deleted file mode 100644
index 3a3c9af8e8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => datetime.toString({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-undefined.js b/polyfill/test/PlainDateTime/prototype/toString/roundingmode-undefined.js
deleted file mode 100644
index d858b9e012..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = datetime.toString({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1, "2000-05-02T12:34:56.123987", "default roundingMode is trunc");
-const implicit1 = datetime.toString({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1, "2000-05-02T12:34:56.123987", "default roundingMode is trunc");
-
-const explicit2 = datetime.toString({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2, "2000-05-02T12:34:56.123", "default roundingMode is trunc");
-const implicit2 = datetime.toString({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2, "2000-05-02T12:34:56.123", "default roundingMode is trunc");
-
-const explicit3 = datetime.toString({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3, "2000-05-02T12:34:56", "default roundingMode is trunc");
-const implicit3 = datetime.toString({ smallestUnit: "second" });
-assert.sameValue(implicit3, "2000-05-02T12:34:56", "default roundingMode is trunc");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toString/roundingmode-wrong-type.js
deleted file mode 100644
index 4d728daeb7..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => datetime.toString({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result, "2000-05-02T12:34:56.123987", descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/toString/smallestunit-invalid-string.js
deleted file mode 100644
index 1d1a6aaeca..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => datetime.toString({ smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/toString/smallestunit-plurals-accepted.js
deleted file mode 100644
index ae13516a60..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 789, 999, 999);
-const validUnits = [
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => datetime.toString({ smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-undefined.js b/polyfill/test/PlainDateTime/prototype/toString/smallestunit-undefined.js
deleted file mode 100644
index 7b65d002f5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Fallback value for smallestUnit option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-
-const explicit1 = datetime.toString({ smallestUnit: undefined, fractionalSecondDigits: 6 });
-assert.sameValue(explicit1, "2000-05-02T12:34:56.123987", "default smallestUnit defers to fractionalSecondDigits");
-const implicit1 = datetime.toString({ fractionalSecondDigits: 6 });
-assert.sameValue(implicit1, "2000-05-02T12:34:56.123987", "default smallestUnit defers to fractionalSecondDigits");
-
-const explicit2 = datetime.toString({ smallestUnit: undefined, fractionalSecondDigits: 3 });
-assert.sameValue(explicit2, "2000-05-02T12:34:56.123", "default smallestUnit defers to fractionalSecondDigits");
-const implicit2 = datetime.toString({ fractionalSecondDigits: 3 });
-assert.sameValue(implicit2, "2000-05-02T12:34:56.123", "default smallestUnit defers to fractionalSecondDigits");
diff --git a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-valid-units.js b/polyfill/test/PlainDateTime/prototype/toString/smallestunit-valid-units.js
deleted file mode 100644
index 34928a9c6d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-valid-units.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Valid units for the smallestUnit option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 789, 999, 999);
-
-assert.sameValue(datetime.toString({ smallestUnit: "minute" }), "2000-05-02T12:34");
-assert.sameValue(datetime.toString({ smallestUnit: "second" }), "2000-05-02T12:34:56");
-assert.sameValue(datetime.toString({ smallestUnit: "millisecond" }), "2000-05-02T12:34:56.789");
-assert.sameValue(datetime.toString({ smallestUnit: "microsecond" }), "2000-05-02T12:34:56.789999");
-assert.sameValue(datetime.toString({ smallestUnit: "nanosecond" }), "2000-05-02T12:34:56.789999999");
-
-const notValid = [
- "year",
- "month",
- "week",
- "day",
- "hour",
-];
-
-notValid.forEach((smallestUnit) => {
- assert.throws(RangeError, () => datetime.toString({ smallestUnit }), smallestUnit);
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toString/smallestunit-wrong-type.js
deleted file mode 100644
index 95ade06c46..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toString/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tostring
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => datetime.toString({ smallestUnit }),
- (result, descr) => assert.sameValue(result, "2000-05-02T12:34:56.123987", descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/balance-negative-time-units.js
deleted file mode 100644
index 2a0427c9c9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/balance-negative-time-units.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-builtintimezonegetinstantfor step 13.a:
- a. Let _earlier_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], 0, 0, 0, 0, 0, 0, 0, 0, 0, −_nanoseconds_, *"constrain"*).
- sec-temporal.plaindatetime.prototype.tozoneddatetime step 6:
- 6. Let _instant_ be BuiltinTimeZoneGetInstantFor(_timeZone_, _dateTime_, _disambiguation_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const shiftInstant = new Temporal.Instant(3661_001_001_001n);
-const tz = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-const datetime = new Temporal.PlainDateTime(1970, 1, 1, 1, 1, 1, 1, 1, 1);
-
-// This code path is encountered if disambiguation is `earlier` and the shift is
-// a spring-forward change
-datetime.toZonedDateTime(tz, { disambiguation: "earlier" });
-
-const expected = [
- "1970-01-01T01:01:01.001001001",
- "1970-01-01T01:01:01.001000999",
-];
-assert.compareArray(tz.getPossibleInstantsForCalledWith, expected);
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/branding.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/branding.js
deleted file mode 100644
index e8f419afce..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toZonedDateTime = Temporal.PlainDateTime.prototype.toZonedDateTime;
-
-assert.sameValue(typeof toZonedDateTime, "function");
-
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/builtin.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/builtin.js
deleted file mode 100644
index fb66a11d5d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: >
- Tests that Temporal.PlainDateTime.prototype.toZonedDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.toZonedDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.toZonedDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.toZonedDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.toZonedDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 367dd55144..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, 0, 0, calendar);
-
-["earlier", "compatible", "later"].forEach((disambiguation) => {
- calendar.dateAddCallCount = 0;
-
- instance.toZonedDateTime(timeZone, { disambiguation });
- assert.sameValue(calendar.dateAddCallCount, 1, `calling with disambiguation ${disambiguation}`);
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-invalid-string.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-invalid-string.js
deleted file mode 100644
index 65eab04c15..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: RangeError thrown when disambiguation option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.plaindatetime.prototype.tozoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2001, 9, 9, 1, 46, 40, 987, 654, 321);
-const timeZone = new Temporal.TimeZone("UTC");
-assert.throws(RangeError, () => datetime.toZonedDateTime(timeZone, { disambiguation: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-undefined.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-undefined.js
deleted file mode 100644
index 9292987c47..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-undefined.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Fallback value for disambiguation option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.plaindatetime.prototype.tozoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-const springForwardDatetime = new Temporal.PlainDateTime(2000, 4, 2, 2, 30);
-const fallBackDatetime = new Temporal.PlainDateTime(2000, 10, 29, 1, 30);
-
-[
- [springForwardDatetime, 954671400_000_000_000n],
- [fallBackDatetime, 972808200_000_000_000n],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toZonedDateTime(timeZone, { disambiguation: undefined });
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
- const implicit = datetime.toZonedDateTime(timeZone, {});
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-wrong-type.js
deleted file mode 100644
index bf7d4dbb17..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/disambiguation-wrong-type.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Type conversions for disambiguation option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.plaindatetime.prototype.tozoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2001, 9, 9, 1, 46, 40, 987, 654, 321);
-const timeZone = new Temporal.TimeZone("UTC");
-TemporalHelpers.checkStringOptionWrongType("disambiguation", "compatible",
- (disambiguation) => datetime.toZonedDateTime(timeZone, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/length.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/length.js
deleted file mode 100644
index e6e7f6e44b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Temporal.PlainDateTime.prototype.toZonedDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toZonedDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/name.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/name.js
deleted file mode 100644
index 69a3dc0f06..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Temporal.PlainDateTime.prototype.toZonedDateTime.name is "toZonedDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.toZonedDateTime, "name", {
- value: "toZonedDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/not-a-constructor.js
deleted file mode 100644
index 799ba47647..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: >
- Temporal.PlainDateTime.prototype.toZonedDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.toZonedDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.toZonedDateTime), false,
- "isConstructor(Temporal.PlainDateTime.prototype.toZonedDateTime)");
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/options-undefined.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/options-undefined.js
deleted file mode 100644
index a5faffd467..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/options-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tozoneddatetime
-includes: [temporalHelpers.js]
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetimeEarlier = new Temporal.PlainDateTime(2000, 10, 29, 1, 34, 56, 987, 654, 321);
-const datetimeLater = new Temporal.PlainDateTime(2000, 4, 2, 2, 34, 56, 987, 654, 321);
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-
-[
- [datetimeEarlier, 972808496987654321n],
- [datetimeLater, 954671696987654321n],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toZonedDateTime(timeZone, undefined);
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
-
- const implicit = datetime.toZonedDateTime(timeZone);
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js
deleted file mode 100644
index 22bd7aecef..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/plain-custom-timezone.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: TimeZone.getPossibleInstantsFor called after processing timeZone and options
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get options.disambiguation",
- "get disambiguation.toString",
- "call disambiguation.toString",
- "get timeZone.getPossibleInstantsFor",
- "call timeZone.getPossibleInstantsFor",
-];
-
-Object.defineProperty(Temporal.TimeZone, "from", {
- get() {
- actual.push("get Temporal.TimeZone.from");
- return undefined;
- },
-});
-
-const dateTime = Temporal.PlainDateTime.from("1975-02-02T14:25:36.123456789");
-const instant = Temporal.Instant.fromEpochNanoseconds(-205156799012345679n);
-
-const options = new Proxy({
- disambiguation: TemporalHelpers.toPrimitiveObserver(actual, "reject", "disambiguation"),
-}, {
- has(target, property) {
- actual.push(`has options.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get options.${property}`);
- return target[property];
- },
-});
-
-const timeZone = new Proxy({
- getPossibleInstantsFor(dateTimeArg) {
- actual.push("call timeZone.getPossibleInstantsFor");
- assert.sameValue(dateTimeArg, dateTime);
- return [instant];
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = dateTime.toZonedDateTime(timeZone, options);
-assert.sameValue(result.epochNanoseconds, instant.epochNanoseconds);
-assert.sameValue(result.timeZone, timeZone);
-assert.sameValue(result.calendar, dateTime.calendar);
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/prop-desc.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/prop-desc.js
deleted file mode 100644
index f8aa358ea6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: The "toZonedDateTime" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.toZonedDateTime,
- "function",
- "`typeof PlainDateTime.prototype.toZonedDateTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "toZonedDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 438ddb16e5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => datetime.toZonedDateTime(timeZone));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 6a07e4ee27..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => datetime.toZonedDateTime(timeZone));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6fe383a115..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- assert.throws(TypeError, () => datetime.toZonedDateTime(timeZone));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index e07be8d7d3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.plaindatetime.prototype.tozoneddatetime step 6:
- 6. Let _instant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _temporalDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-builtintimezonegetinstantfor step 14:
- 14. Assert: _disambiguation_ is *"compatible"* or *"later"*.
- sec-temporal-builtintimezonegetinstantfor step 16:
- 16. Set _possibleInstants_ to ? GetPossibleInstantsFor(_timeZone_, _later_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "2000-05-02T12:34:56.987654321",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- datetime.toZonedDateTime(timeZone);
-}, expected1);
-
-// Same, but test the other path where the time doesn't exist and
-// GetPossibleInstantsFor is called again on a later time
-
-const expected2 = [
- "2030-01-01T00:30:00",
- "2030-01-01T01:30:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.PlainDateTime(2030, 1, 1, 0, 30);
- datetime.toZonedDateTime(timeZone);
-}, expected2);
diff --git a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-string-datetime.js b/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-string-datetime.js
deleted file mode 100644
index e6d2ad94ec..0000000000
--- a/polyfill/test/PlainDateTime/prototype/toZonedDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tozoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toZonedDateTime(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toZonedDateTime(timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toZonedDateTime({ timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-plaindate.js b/polyfill/test/PlainDateTime/prototype/until/argument-plaindate.js
deleted file mode 100644
index be3e5dc068..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-plaindate.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date, calendar) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 0, 0, 0, 987, 654, 321, calendar);
- const result = datetime.until(date);
- assert.sameValue(result.total({ unit: "nanoseconds" }), -987654321, "PlainDate is converted to midnight");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 3353d9960a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ ? ToTemporalDateTime(_other_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const diff = new Temporal.PlainDateTime(1970, 1, 1).until(datetime);
-
-TemporalHelpers.assertDuration(diff, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 43f32818f3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321);
-const result = instance.until(datetime);
-TemporalHelpers.assertDuration(result, 0, 0, 0, -11239, -22, -40, -10, -987, -654, -320);
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 01d9f07c85..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.until(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index bbefa4ee11..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.until(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index eeeb000386..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => plain.until(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/balance-negative-duration.js b/polyfill/test/PlainDateTime/prototype/until/balance-negative-duration.js
deleted file mode 100644
index 2de57f305e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/balance-negative-duration.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Negative durations are balanced correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-balanceduration step 4:
- 4. If _largestUnit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- a. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _relativeTo_).
- sec-temporal-differenceisodatetime steps 7 and 13:
- 7. If _timeSign_ is -_dateSign_, then
- ...
- b. Set _timeDifference_ to ? BalanceDuration(-_timeSign_, _timeDifference_.[[Hours]], _timeDifference_.[[Minutes]], _timeDifference_.[[Seconds]], _timeDifference_.[[Milliseconds]], _timeDifference_.[[Microseconds]], _timeDifference_.[[Nanoseconds]], _largestUnit_).
- ...
- 13. Return ? BalanceDuration(_dateDifference_.[[Years]], _dateDifference_.[[Months]], _dateDifference_.[[Weeks]], _dateDifference_.[[Days]], _timeDifference_.[[Hours]], _timeDifference_.[[Minutes]], _timeDifference_.[[Seconds]], _timeDifference_.[[Milliseconds]], _timeDifference_.[[Microseconds]], _timeDifference_.[[Nanoseconds]], _largestUnit_).
- sec-temporal.plaindatetime.prototype.until step 13:
- 13. Let _diff_ be ? DifferenceISODateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier1 = new Temporal.PlainDateTime(2000, 5, 2, 9);
-const later1 = new Temporal.PlainDateTime(2000, 5, 5, 10);
-const result1 = later1.until(earlier1, { largestUnit: 'day' });
-TemporalHelpers.assertDuration(result1, 0, 0, 0, -3, -1, 0, 0, 0, 0, 0, "date sign == time sign");
-
-const earlier2 = new Temporal.PlainDateTime(2000, 5, 2, 10);
-const later2 = new Temporal.PlainDateTime(2000, 5, 5, 9);
-const result2 = later2.until(earlier2, { largestUnit: 'day' });
-TemporalHelpers.assertDuration(result2, 0, 0, 0, -2, -23, 0, 0, 0, 0, 0, "date sign != time sign");
diff --git a/polyfill/test/PlainDateTime/prototype/until/balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/until/balance-negative-time-units.js
deleted file mode 100644
index 150837788a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/balance-negative-time-units.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal.plaindatetime.prototype.until step 13:
- 13. Let _diff_ be ? DifferenceISODateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(1996, 5, 2, 1, 1, 1, 1, 1, 1);
-
-const result1 = new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 0, 0, 2).until(datetime);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 0, 2).until(datetime);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 0, 2).until(datetime);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = new Temporal.PlainDateTime(1996, 5, 2, 0, 0, 2).until(datetime);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = new Temporal.PlainDateTime(1996, 5, 2, 0, 2).until(datetime);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = new Temporal.PlainDateTime(1996, 5, 2, 2).until(datetime);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/PlainDateTime/prototype/until/balance.js b/polyfill/test/PlainDateTime/prototype/until/balance.js
deleted file mode 100644
index 08687951c4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/balance.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Results with opposite-sign components (e.g. months=1, hours=-1) are balanced correctly
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const a = Temporal.PlainDateTime.from('2017-10-05T08:07:14+00:00[UTC]');
-const b = Temporal.PlainDateTime.from('2021-03-05T03:32:45+00:00[UTC]');
-const c = Temporal.PlainDateTime.from('2021-03-05T09:32:45+00:00[UTC]');
-
-const r1 = a.until(b, { largestUnit: 'months' });
-TemporalHelpers.assertDuration(r1, 0, 40, 0, 27, 19, 25, 31, 0, 0, 0, "r1");
-assert.sameValue(a.add(r1).toString(), b.toString(), "a.add(r1)");
-
-const r2 = b.until(a, { largestUnit: 'months' });
-TemporalHelpers.assertDuration(r2, 0, -40, 0, -30, -19, -25, -31, 0, 0, 0, "r2");
-assert.sameValue(b.add(r2).toString(), a.toString(), "b.add(r2)");
-
-const r3 = c.until(a, { largestUnit: 'months' });
-TemporalHelpers.assertDuration(r3, 0, -41, 0, 0, -1, -25, -31, 0, 0, 0, "r3");
-assert.sameValue(c.add(r3).toString(), a.toString(), "c.add(r3)");
diff --git a/polyfill/test/PlainDateTime/prototype/until/branding.js b/polyfill/test/PlainDateTime/prototype/until/branding.js
deleted file mode 100644
index d879f44b80..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.PlainDateTime.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => until.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/until/builtin.js b/polyfill/test/PlainDateTime/prototype/until/builtin.js
deleted file mode 100644
index eb7715a412..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: >
- Tests that Temporal.PlainDateTime.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js b/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js
deleted file mode 100644
index 3805a5ece4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: The dateUntil() method on the calendar is called with a copy of the options bag
-features: [Temporal]
----*/
-
-const originalOptions = {
- largestUnit: "year",
- shouldBeCopied: {},
-};
-let called = false;
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2, options) {
- called = true;
- assert.notSameValue(options, originalOptions, "options bag should be a copy");
- assert.sameValue(options.shouldBeCopied, originalOptions.shouldBeCopied, "options bag should be a shallow copy");
- return new Temporal.Duration();
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
-earlier.until(later, originalOptions);
-assert(called, "calendar.dateUntil must be called");
diff --git a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-plaindate-calendar.js b/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-plaindate-calendar.js
deleted file mode 100644
index 7f255df452..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-plaindate-calendar.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: calendar.dateUntil() is passed PlainDate objects with the receiver's calendar
-info: |
- DifferenceISODateTime ( y1, mon1, d1, h1, min1, s1, ms1, mus1, ns1, y2, mon2, d2, h2, min2, s2, ms2, mus2, ns2, calendar, largestUnit [ , options ] )
-
- 8. Let _date1_ be ? CreateTemporalDate(_balanceResult_.[[Year]], _balanceResult_.[[Month]], _balanceResult_.[[Day]], _calendar_).
- 9. Let _date2_ be ? CreateTemporalDate(_y2_, _mon2_, _d2_, _calendar_).
- 12. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-features: [Temporal]
----*/
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2) {
- assert.sameValue(d1.calendar, this, "d1.calendar");
- assert.sameValue(d2.calendar, this, "d2.calendar");
- return new Temporal.Duration();
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
-const result = earlier.until(later);
-assert(result instanceof Temporal.Duration, "result");
diff --git a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index c3e0447a15..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plaindatetime.prototype.until step 13:
- 13. Let _diff_ be ? DifferenceISODateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], _other_.[[ISOYear]], _other_.[[ISOMonth]], _other_.[[ISODay]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _dateTime_.[[Calendar]], _largestUnit_, _options_).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar);
- earlier.until(later, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"],
- weeks: ["week"],
- days: ["day"],
- hours: ["day"],
- minutes: ["day"],
- seconds: ["day"],
- milliseconds: ["day"],
- microseconds: ["day"],
- nanoseconds: ["day"]
- }
-);
diff --git a/polyfill/test/PlainDateTime/prototype/until/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/until/calendar-fields-iterable.js
deleted file mode 100644
index cbad88be3f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.until({ year: 2005, month: 6, day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/until/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/until/calendar-temporal-object.js
deleted file mode 100644
index f3fd0477f2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const date = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, temporalObject);
- date.until({ year: 2005, month: 6, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index b11bccf398..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15);
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/largestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index 9f0b525b1a..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => earlier.until(later, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index 0e4c7e4151..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 12, 13, 35, 57, 988, 655, 322);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/until/largestunit-undefined.js b/polyfill/test/PlainDateTime/prototype/until/largestunit-undefined.js
deleted file mode 100644
index 32b872dc31..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-
-const explicit = earlier.until(later, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 1, 1, 1, 987, 654, 321, "default largestUnit is day");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 1, 1, 1, 987, 654, 321, "default largestUnit is day");
diff --git a/polyfill/test/PlainDateTime/prototype/until/largestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index 318dd1d745..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 1, 1, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/until/length.js b/polyfill/test/PlainDateTime/prototype/until/length.js
deleted file mode 100644
index 4509da11b9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Temporal.PlainDateTime.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/name.js b/polyfill/test/PlainDateTime/prototype/until/name.js
deleted file mode 100644
index 699af9c91f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Temporal.PlainDateTime.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/until/not-a-constructor.js
deleted file mode 100644
index c5c80f0156..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: >
- Temporal.PlainDateTime.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.until), false,
- "isConstructor(Temporal.PlainDateTime.prototype.until)");
diff --git a/polyfill/test/PlainDateTime/prototype/until/options-undefined.js b/polyfill/test/PlainDateTime/prototype/until/options-undefined.js
deleted file mode 100644
index b3cd4d7403..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/options-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2000, 6, 12, 12, 34, 56, 987, 654, 322);
-
-const explicit = earlier.until(later, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is days");
-assert.sameValue(explicit.months, 0, "default largest unit is days");
-assert.sameValue(explicit.weeks, 0, "default largest unit is days");
-assert.sameValue(explicit.days, 41, "default largest unit is days");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = earlier.until(later);
-assert.sameValue(implicit.years, 0, "default largest unit is days");
-assert.sameValue(implicit.months, 0, "default largest unit is days");
-assert.sameValue(implicit.weeks, 0, "default largest unit is days");
-assert.sameValue(implicit.days, 41, "default largest unit is days");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/PlainDateTime/prototype/until/prop-desc.js b/polyfill/test/PlainDateTime/prototype/until/prop-desc.js
deleted file mode 100644
index b5cb2e1878..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: The "until" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.until,
- "function",
- "`typeof PlainDateTime.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/until/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/prototype/until/read-time-fields-before-datefromfields.js
deleted file mode 100644
index bcd805bfc6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalDateTime(_other_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.PlainDateTime(2021, 3, 31, 12, 34, 56, 987, 654, 321);
-const duration = datetime.until({ year: 2021, month: 3, day: 31, calendar });
-
-TemporalHelpers.assertDuration(duration, 0, 0, 0, 0, -12, -34, -56, -987, -654, -321);
diff --git a/polyfill/test/PlainDateTime/prototype/until/round-negative-duration.js b/polyfill/test/PlainDateTime/prototype/until/round-negative-duration.js
deleted file mode 100644
index 2d6b197156..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/round-negative-duration.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Negative durations are rounded correctly by the modulo operation in NanosecondsToDays
-info: |
- sec-temporal-nanosecondstodays step 6:
- 6. If Type(_relativeTo_) is not Object or _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Return the new Record { ..., [[Nanoseconds]]: abs(_nanoseconds_) modulo _dayLengthNs_ × _sign_, ... }.
- sec-temporal-roundduration step 6:
- 6. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- sec-temporal.plaindatetime.prototype.until step 14:
- 14. Let _roundResult_ be ? RoundDuration(_diff_.[[Years]], _diff_.[[Months]], _diff_.[[Weeks]], _diff_.[[Days]], _diff_.[[Hours]], _diff_.[[Minutes]], _diff_.[[Seconds]], _diff_.[[Milliseconds]], _diff_.[[Microseconds]], _diff_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _dateTime_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const later = new Temporal.PlainDateTime(2000, 5, 5);
-const result = later.until(earlier, { smallestUnit: "day", roundingIncrement: 2 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0);
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-nan.js b/polyfill/test/PlainDateTime/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index 6441976e1d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-non-integer.js b/polyfill/test/PlainDateTime/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index add5d0fd1f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/PlainDateTime/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index 6fa1d3ee8f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-undefined.js b/polyfill/test/PlainDateTime/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index d9cf9cccf1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/PlainDateTime/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index 8d229807e3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaindatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 397, 1, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 397, 1, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingmode-invalid-string.js b/polyfill/test/PlainDateTime/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index f907ababfd..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingmode-undefined.js b/polyfill/test/PlainDateTime/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index 695d40f9c1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-
-const explicit1 = earlier.until(later, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = earlier.until(later, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 1, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 1, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = earlier.until(later, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = earlier.until(later, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainDateTime/prototype/until/roundingmode-wrong-type.js b/polyfill/test/PlainDateTime/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index 28c2838ed9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/until/smallestunit-invalid-string.js b/polyfill/test/PlainDateTime/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index e009d5b9e6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/PlainDateTime/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index 4b9c89858f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainDateTime(2001, 6, 12, 13, 35, 57, 988, 655, 322);
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainDateTime/prototype/until/smallestunit-undefined.js b/polyfill/test/PlainDateTime/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index b707e01608..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/PlainDateTime/prototype/until/smallestunit-wrong-type.js b/polyfill/test/PlainDateTime/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index 6cbbdbec1b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainDateTime(2000, 5, 3, 13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/branding.js b/polyfill/test/PlainDateTime/prototype/valueOf/branding.js
deleted file mode 100644
index 6f99bbc1f3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.PlainDateTime.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/builtin.js b/polyfill/test/PlainDateTime/prototype/valueOf/builtin.js
deleted file mode 100644
index 5372b910d3..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: >
- Tests that Temporal.PlainDateTime.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/length.js b/polyfill/test/PlainDateTime/prototype/valueOf/length.js
deleted file mode 100644
index a05f558e26..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: Temporal.PlainDateTime.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/name.js b/polyfill/test/PlainDateTime/prototype/valueOf/name.js
deleted file mode 100644
index bedc961cff..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: Temporal.PlainDateTime.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index bf7e12fec0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: >
- Temporal.PlainDateTime.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.valueOf), false,
- "isConstructor(Temporal.PlainDateTime.prototype.valueOf)");
diff --git a/polyfill/test/PlainDateTime/prototype/valueOf/prop-desc.js b/polyfill/test/PlainDateTime/prototype/valueOf/prop-desc.js
deleted file mode 100644
index 78c55221bb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.valueof
-description: The "valueOf" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.valueOf,
- "function",
- "`typeof PlainDateTime.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/weekOfYear/branding.js b/polyfill/test/PlainDateTime/prototype/weekOfYear/branding.js
deleted file mode 100644
index 6b09742503..0000000000
--- a/polyfill/test/PlainDateTime/prototype/weekOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.weekofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const weekOfYear = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "weekOfYear").get;
-
-assert.sameValue(typeof weekOfYear, "function");
-
-assert.throws(TypeError, () => weekOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => weekOfYear.call(null), "null");
-assert.throws(TypeError, () => weekOfYear.call(true), "true");
-assert.throws(TypeError, () => weekOfYear.call(""), "empty string");
-assert.throws(TypeError, () => weekOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => weekOfYear.call(1), "1");
-assert.throws(TypeError, () => weekOfYear.call({}), "plain object");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/weekOfYear/prop-desc.js b/polyfill/test/PlainDateTime/prototype/weekOfYear/prop-desc.js
deleted file mode 100644
index 5c1876a0d6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/weekOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.weekofyear
-description: The "weekOfYear" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "weekOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainDateTime/prototype/with/branding.js b/polyfill/test/PlainDateTime/prototype/with/branding.js
deleted file mode 100644
index 2b9421210c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.PlainDateTime.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => with_.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/with/builtin.js b/polyfill/test/PlainDateTime/prototype/with/builtin.js
deleted file mode 100644
index d0ef5cab36..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: >
- Tests that Temporal.PlainDateTime.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/with/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/with/calendar-fields-iterable.js
deleted file mode 100644
index 1fd4c0a531..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/calendar-fields-iterable.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.with step 9:
- 9. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
-datetime.with({ year: 2005 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/with/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainDateTime/prototype/with/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index 0aed6a31be..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, calendar);
- assert.throws(TypeError, () => instance.with({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.dateFromFieldsCallCount, 0, "dateFromFields() never called");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/with/copies-merge-fields-object.js b/polyfill/test/PlainDateTime/prototype/with/copies-merge-fields-object.js
deleted file mode 100644
index 6b43351aa2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/copies-merge-fields-object.js
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: The object returned from mergeFields() is copied before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.with steps 13–15:
- 13. Set _fields_ to ? CalendarMergeFields(_calendar_, _fields_, _partialDate_).
- 14. Set _fields_ to ? PrepareTemporalFields(_fields_, _fieldNames_, «»).
- 15. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields step 2:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const datetime = new Temporal.PlainDateTime(2021, 3, 31, 12, 34, 56, 987, 654, 321, calendar);
-datetime.with({ year: 2022 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainDateTime/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index a9075a1c11..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.with({ [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/with/length.js b/polyfill/test/PlainDateTime/prototype/with/length.js
deleted file mode 100644
index ca7f052ead..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Temporal.PlainDateTime.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/with/name.js b/polyfill/test/PlainDateTime/prototype/with/name.js
deleted file mode 100644
index 12e410b5eb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Temporal.PlainDateTime.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/with/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/with/not-a-constructor.js
deleted file mode 100644
index ac9839ae8c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: >
- Temporal.PlainDateTime.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.with), false,
- "isConstructor(Temporal.PlainDateTime.prototype.with)");
diff --git a/polyfill/test/PlainDateTime/prototype/with/options-undefined.js b/polyfill/test/PlainDateTime/prototype/with/options-undefined.js
deleted file mode 100644
index 62f6ec1b1b..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 2, 2, 12, 34, 56, 987, 654, 321);
-const fields = { day: 31 };
-
-const explicit = datetime.with(fields, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.with(fields);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/with/order-of-operations.js b/polyfill/test/PlainDateTime/prototype/with/order-of-operations.js
deleted file mode 100644
index be6e0797b8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-const expected = [
- "get calendar",
- "get timeZone",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
- hour: 1.7,
- minute: 1.7,
- second: 1.7,
- millisecond: 1.7,
- microsecond: 1.7,
- nanosecond: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertPlainDateTime(result, 1, 1, "M01", 1, 1, 1, 1, 1, 1, 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/prototype/with/overflow-invalid-string.js b/polyfill/test/PlainDateTime/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index 9e3f561784..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.prototype.with step 16:
- 16. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: "other string" }));
diff --git a/polyfill/test/PlainDateTime/prototype/with/overflow-undefined.js b/polyfill/test/PlainDateTime/prototype/with/overflow-undefined.js
deleted file mode 100644
index 2602bbb1db..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.prototype.with step 16:
- 16. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-const explicit = datetime.with({ minute: 67 }, { overflow: undefined });
-TemporalHelpers.assertPlainDateTime(explicit, 2000, 5, "M05", 2, 12, 59, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = datetime.with({ minute: 67 }, {});
-TemporalHelpers.assertPlainDateTime(implicit, 2000, 5, "M05", 2, 12, 59, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainDateTime/prototype/with/overflow-wrong-type.js b/polyfill/test/PlainDateTime/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index bc4485bf57..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plaindatetime.prototype.with step 16:
- 16. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12);
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: null }), "null");
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: true }), "true");
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: false }), "false");
-assert.throws(TypeError, () => datetime.with({ minute: 45 }, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateFromFields() in the builtin
-// calendars, to get the option value for the date part, and then once again
-// internally to get the option value for the time part.
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = datetime.with({ minute: 45 }, { overflow: observer });
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 45, 0, 0, 0, 0, "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainDateTime/prototype/with/prop-desc.js b/polyfill/test/PlainDateTime/prototype/with/prop-desc.js
deleted file mode 100644
index 899a714e90..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: The "with" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.with,
- "function",
- "`typeof PlainDateTime.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/with/read-time-fields-before-datefromfields.js b/polyfill/test/PlainDateTime/prototype/with/read-time-fields-before-datefromfields.js
deleted file mode 100644
index e1bfefea9e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.with step 15:
- 15. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.PlainDateTime(2021, 3, 31, 12, 34, 56, 987, 654, 321, calendar);
-const newDatetime = datetime.with({ year: 2022 });
-
-assert.sameValue(newDatetime.hour, 12, "hour value");
-assert.sameValue(newDatetime.minute, 34, "minute value");
-assert.sameValue(newDatetime.second, 56, "second value");
-assert.sameValue(newDatetime.millisecond, 987, "millisecond value");
-assert.sameValue(newDatetime.microsecond, 654, "microsecond value");
-assert.sameValue(newDatetime.nanosecond, 321, "nanosecond value");
diff --git a/polyfill/test/PlainDateTime/prototype/with/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/with/subclassing-ignored.js
deleted file mode 100644
index 3defebda5d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Objects of a subclass are never created as return values for with()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "with",
- [{ nanosecond: 1 }],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 12, 34, 56, 987, 654, 1),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/branding.js b/polyfill/test/PlainDateTime/prototype/withCalendar/branding.js
deleted file mode 100644
index 6c001fb6ef..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withCalendar = Temporal.PlainDateTime.prototype.withCalendar;
-
-assert.sameValue(typeof withCalendar, "function");
-
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => withCalendar.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/builtin.js b/polyfill/test/PlainDateTime/prototype/withCalendar/builtin.js
deleted file mode 100644
index 01bb94690f..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: >
- Tests that Temporal.PlainDateTime.prototype.withCalendar
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.withCalendar),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.withCalendar),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.withCalendar),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.withCalendar.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js
deleted file mode 100644
index d433a932aa..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/calendar-temporal-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.withcalendar step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const result = plainDateTime.withCalendar(temporalObject);
- assert.sameValue(result.calendar, calendar, 'Temporal object coerced to calendar');
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/length.js b/polyfill/test/PlainDateTime/prototype/withCalendar/length.js
deleted file mode 100644
index 6f6c340132..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: Temporal.PlainDateTime.prototype.withCalendar.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withCalendar, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/missing-argument.js b/polyfill/test/PlainDateTime/prototype/withCalendar/missing-argument.js
deleted file mode 100644
index de83f7c997..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/missing-argument.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: RangeError thrown when calendar argument not given
-features: [Temporal]
----*/
-
-const plainDateTime = Temporal.PlainDateTime.from("1976-11-18T14:00:00");
-assert.throws(RangeError, () => plainDateTime.withCalendar(), "missing argument");
-assert.throws(RangeError, () => plainDateTime.withCalendar(undefined), "undefined argument");
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/name.js b/polyfill/test/PlainDateTime/prototype/withCalendar/name.js
deleted file mode 100644
index 9f4d18cde2..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: Temporal.PlainDateTime.prototype.withCalendar.name is "withCalendar".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withCalendar, "name", {
- value: "withCalendar",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/withCalendar/not-a-constructor.js
deleted file mode 100644
index 3a87245886..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: >
- Temporal.PlainDateTime.prototype.withCalendar does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.withCalendar();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.withCalendar), false,
- "isConstructor(Temporal.PlainDateTime.prototype.withCalendar)");
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/prop-desc.js b/polyfill/test/PlainDateTime/prototype/withCalendar/prop-desc.js
deleted file mode 100644
index c5451e7e42..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: The "withCalendar" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.withCalendar,
- "function",
- "`typeof PlainDateTime.prototype.withCalendar` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "withCalendar", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withCalendar/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/withCalendar/subclassing-ignored.js
deleted file mode 100644
index 749bdd6694..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withCalendar/subclassing-ignored.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withcalendar
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const customCalendar = {
- era() { return undefined; },
- eraYear() { return undefined; },
- year() { return 1900; },
- month() { return 2; },
- monthCode() { return "M02"; },
- day() { return 5; },
- toString() { return "custom-calendar"; },
-};
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "withCalendar",
- [customCalendar],
- (result) => {
- TemporalHelpers.assertPlainDateTime(result, 1900, 2, "M02", 5, 12, 34, 56, 987, 654, 321);
- assert.sameValue(result.calendar, customCalendar, "calendar result");
- },
-);
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-plaindatetime.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-plaindatetime.js
deleted file mode 100644
index 04b5b4eea9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-plaindatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.withplaindate
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const receiver = new Temporal.PlainDateTime(2001, 9, 9, 6, 54, 32, 123, 456, 789);
- const result = receiver.withPlainDate(datetime);
- TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 6, 54, 32, 123, 456, 789);
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 5e509cbd71..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.withPlainDate(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c82f366607..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.withPlainDate(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index bc40c66354..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => plain.withPlainDate(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/branding.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/branding.js
deleted file mode 100644
index e4d5ef4341..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withPlainDate = Temporal.PlainDateTime.prototype.withPlainDate;
-
-assert.sameValue(typeof withPlainDate, "function");
-
-assert.throws(TypeError, () => withPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainDate.call(null), "null");
-assert.throws(TypeError, () => withPlainDate.call(true), "true");
-assert.throws(TypeError, () => withPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => withPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainDate.call(1), "1");
-assert.throws(TypeError, () => withPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/builtin.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/builtin.js
deleted file mode 100644
index 957ea64854..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: >
- Tests that Temporal.PlainDateTime.prototype.withPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.withPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.withPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.withPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.withPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-fields-iterable.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-fields-iterable.js
deleted file mode 100644
index b0a98cf1bd..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaindatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.PlainDateTime(2000, 5, 3, 13, 3, 27, 123, 456, 789, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.withPlainDate({ year: 2001, month: 6, day: 4, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-temporal-object.js
deleted file mode 100644
index b2c9b06eb1..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 3, 13, 3, 27, 123, 456, 789);
- // the PlainDate's calendar will override the PlainDateTime's ISO calendar
- const result = datetime.withPlainDate({ year: 2001, month: 6, day: 4, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index 79aabe4573..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/length.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/length.js
deleted file mode 100644
index 0e3a8151cb..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Temporal.PlainDateTime.prototype.withPlainDate.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withPlainDate, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/name.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/name.js
deleted file mode 100644
index bd7bba26c6..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Temporal.PlainDateTime.prototype.withPlainDate.name is "withPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withPlainDate, "name", {
- value: "withPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/not-a-constructor.js
deleted file mode 100644
index cc14f97628..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: >
- Temporal.PlainDateTime.prototype.withPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.withPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.withPlainDate), false,
- "isConstructor(Temporal.PlainDateTime.prototype.withPlainDate)");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/prop-desc.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/prop-desc.js
deleted file mode 100644
index 7a2c809043..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: The "withPlainDate" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.withPlainDate,
- "function",
- "`typeof PlainDateTime.prototype.withPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "withPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainDate/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/withPlainDate/subclassing-ignored.js
deleted file mode 100644
index 33a31aeef8..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainDate/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "withPlainDate",
- ["1999-04-27"],
- (result) => TemporalHelpers.assertPlainDateTime(result, 1999, 4, "M04", 27, 12, 34, 56, 987, 654, 321),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index dec1fcd8c9..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaindatetime.prototype.withplaintime step 4:
- 4. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const pdt = new Temporal.PlainDateTime(2000, 5, 2);
-const newpdt = pdt.withPlainTime(datetime);
-
-TemporalHelpers.assertPlainDateTime(newpdt, 2000, 5, "M05", 2, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 0a58b635af..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321);
-const result = instance.withPlainTime(datetime);
-TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 5698566e0e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.withPlainTime(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 8b5c8a24e0..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => plain.withPlainTime(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0e7f04aa76..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const plain = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
- const zoned = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => plain.withPlainTime(zoned));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/branding.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/branding.js
deleted file mode 100644
index 90c823bb1c..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withPlainTime = Temporal.PlainDateTime.prototype.withPlainTime;
-
-assert.sameValue(typeof withPlainTime, "function");
-
-assert.throws(TypeError, () => withPlainTime.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainTime.call(null), "null");
-assert.throws(TypeError, () => withPlainTime.call(true), "true");
-assert.throws(TypeError, () => withPlainTime.call(""), "empty string");
-assert.throws(TypeError, () => withPlainTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainTime.call(1), "1");
-assert.throws(TypeError, () => withPlainTime.call({}), "plain object");
-assert.throws(TypeError, () => withPlainTime.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => withPlainTime.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/builtin.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/builtin.js
deleted file mode 100644
index edcd698e10..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: >
- Tests that Temporal.PlainDateTime.prototype.withPlainTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainDateTime.prototype.withPlainTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainDateTime.prototype.withPlainTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainDateTime.prototype.withPlainTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainDateTime.prototype.withPlainTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js
deleted file mode 100644
index ddf67ab2fe..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.withplaintime step 4.a:
- a. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- assert.throws(RangeError, () => datetime.withPlainTime({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/length.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/length.js
deleted file mode 100644
index 4510e3bd74..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Temporal.PlainDateTime.prototype.withPlainTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withPlainTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/name.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/name.js
deleted file mode 100644
index 7aaebb269d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Temporal.PlainDateTime.prototype.withPlainTime.name is "withPlainTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainDateTime.prototype.withPlainTime, "name", {
- value: "withPlainTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/not-a-constructor.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/not-a-constructor.js
deleted file mode 100644
index 3b443b329d..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: >
- Temporal.PlainDateTime.prototype.withPlainTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainDateTime.prototype.withPlainTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainDateTime.prototype.withPlainTime), false,
- "isConstructor(Temporal.PlainDateTime.prototype.withPlainTime)");
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/prop-desc.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/prop-desc.js
deleted file mode 100644
index 7a72db65af..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: The "withPlainTime" property of Temporal.PlainDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainDateTime.prototype.withPlainTime,
- "function",
- "`typeof PlainDateTime.prototype.withPlainTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainDateTime.prototype, "withPlainTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/subclassing-ignored.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/subclassing-ignored.js
deleted file mode 100644
index ee56414d1e..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainDateTime,
- [2000, 5, 2, 12, 34, 56, 987, 654, 321],
- "withPlainTime",
- ["05:43:21.123456789"],
- (result) => TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 5, 43, 21, 123, 456, 789),
-);
diff --git a/polyfill/test/PlainDateTime/prototype/withPlainTime/time-undefined.js b/polyfill/test/PlainDateTime/prototype/withPlainTime/time-undefined.js
deleted file mode 100644
index 48d6a79a68..0000000000
--- a/polyfill/test/PlainDateTime/prototype/withPlainTime/time-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: The time is assumed to be midnight if not given
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321);
-
-const explicit = datetime.withPlainTime(undefined);
-assert.sameValue(explicit.hour, 0, "default time is midnight");
-assert.sameValue(explicit.minute, 0, "default time is midnight");
-assert.sameValue(explicit.second, 0, "default time is midnight");
-assert.sameValue(explicit.millisecond, 0, "default time is midnight");
-assert.sameValue(explicit.microsecond, 0, "default time is midnight");
-assert.sameValue(explicit.nanosecond, 0, "default time is midnight");
-
-const implicit = datetime.withPlainTime();
-assert.sameValue(implicit.hour, 0, "default time is midnight");
-assert.sameValue(implicit.minute, 0, "default time is midnight");
-assert.sameValue(implicit.second, 0, "default time is midnight");
-assert.sameValue(implicit.millisecond, 0, "default time is midnight");
-assert.sameValue(implicit.microsecond, 0, "default time is midnight");
-assert.sameValue(implicit.nanosecond, 0, "default time is midnight");
diff --git a/polyfill/test/PlainDateTime/prototype/year/branding.js b/polyfill/test/PlainDateTime/prototype/year/branding.js
deleted file mode 100644
index afd2f206e5..0000000000
--- a/polyfill/test/PlainDateTime/prototype/year/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.year
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const year = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "year").get;
-
-assert.sameValue(typeof year, "function");
-
-assert.throws(TypeError, () => year.call(undefined), "undefined");
-assert.throws(TypeError, () => year.call(null), "null");
-assert.throws(TypeError, () => year.call(true), "true");
-assert.throws(TypeError, () => year.call(""), "empty string");
-assert.throws(TypeError, () => year.call(Symbol()), "symbol");
-assert.throws(TypeError, () => year.call(1), "1");
-assert.throws(TypeError, () => year.call({}), "plain object");
-assert.throws(TypeError, () => year.call(Temporal.PlainDateTime), "Temporal.PlainDateTime");
-assert.throws(TypeError, () => year.call(Temporal.PlainDateTime.prototype), "Temporal.PlainDateTime.prototype");
diff --git a/polyfill/test/PlainDateTime/prototype/year/calendar-returns-infinity.js b/polyfill/test/PlainDateTime/prototype/year/calendar-returns-infinity.js
deleted file mode 100644
index e963454d24..0000000000
--- a/polyfill/test/PlainDateTime/prototype/year/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.year
-description: Getter throws if the calendar returns ±∞ from its year method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- year() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, pos);
-assert.throws(RangeError, () => instance1.year);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, neg);
-assert.throws(RangeError, () => instance2.year);
diff --git a/polyfill/test/PlainDateTime/prototype/year/prop-desc.js b/polyfill/test/PlainDateTime/prototype/year/prop-desc.js
deleted file mode 100644
index 173640eeb4..0000000000
--- a/polyfill/test/PlainDateTime/prototype/year/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.year
-description: The "year" property of Temporal.PlainDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainDateTime.prototype, "year");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/basic.js b/polyfill/test/PlainMonthDay/constructor/constructor/basic.js
deleted file mode 100644
index f854cfb450..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/basic.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Basic tests for the PlainMonthDay constructor.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const leapDay = new Temporal.PlainMonthDay(2, 29);
-TemporalHelpers.assertPlainMonthDay(leapDay, "M02", 29, "leap day is supported");
-assert.sameValue(leapDay.calendar.id, "iso8601", "leap day calendar");
-
-const beforeEpoch = new Temporal.PlainMonthDay(12, 2, "iso8601", 1920);
-TemporalHelpers.assertPlainMonthDay(beforeEpoch, "M12", 2, "reference year before epoch", 1920);
-assert.sameValue(beforeEpoch.calendar.id, "iso8601", "reference year before epoch calendar");
-
-const afterEpoch = new Temporal.PlainMonthDay(1, 7, "iso8601", 1980);
-TemporalHelpers.assertPlainMonthDay(afterEpoch, "M01", 7, "reference year after epoch", 1980);
-assert.sameValue(afterEpoch.calendar.id, "iso8601", "reference year after epoch calendar");
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/builtin.js b/polyfill/test/PlainMonthDay/constructor/constructor/builtin.js
deleted file mode 100644
index c3058c0bdc..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Tests that Temporal.PlainMonthDay meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.PlainMonthDay.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-invalid.js b/polyfill/test/PlainMonthDay/constructor/constructor/calendar-invalid.js
deleted file mode 100644
index 7bc058ef2f..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-invalid.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainMonthDay throws a RangeError if the calendar argument is invalid
-esid: sec-temporal.plainmonthday
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = ["get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"];
-const actual = [];
-const args = [
- TemporalHelpers.toPrimitiveObserver(actual, 2, "month"),
- TemporalHelpers.toPrimitiveObserver(actual, 1, "day"),
- "local",
- TemporalHelpers.toPrimitiveObserver(actual, 1, "year")
-];
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-temporal-object.js b/polyfill/test/PlainMonthDay/constructor/constructor/calendar-temporal-object.js
deleted file mode 100644
index 839d2d0767..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainmonthday step 5:
- 5. Let _calendar_ be ? ToTemporalCalendarWithISODefault(_calendarLike_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = new Temporal.PlainMonthDay(5, 2, temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-undefined.js b/polyfill/test/PlainMonthDay/constructor/constructor/calendar-undefined.js
deleted file mode 100644
index 2b7d1d6db2..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/calendar-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [Temporal]
----*/
-
-const args = [5, 2];
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const dateExplicit = new Temporal.PlainMonthDay(...args, undefined);
-assert.sameValue(dateExplicit.calendar.toString(), "iso8601");
-
-const dateImplicit = new Temporal.PlainMonthDay(...args);
-assert.sameValue(dateImplicit.calendar.toString(), "iso8601");
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/constructor.js b/polyfill/test/PlainMonthDay/constructor/constructor/constructor.js
deleted file mode 100644
index 5df5c2012a..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Temporal.PlainMonthDay constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainMonthDay());
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index a96544f0bd..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainMonthDay throws a RangeError if any numerical value is Infinity
-esid: sec-temporal.plainmonthday
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const isoCalendar = Temporal.Calendar.from('iso8601');
-
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(1, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(1, 1, isoCalendar, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite month",
- [O(Infinity, "month"), O(1, "day"), () => "iso8601", O(1, "year")],
- ["get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(2, "month"), O(Infinity, "day"), () => "iso8601", O(1, "year")],
- ["get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
- [
- "infinite year",
- [O(2, "month"), O(1, "day"), () => "iso8601", O(Infinity, "year")],
- ["get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf", "get year.valueOf", "call year.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainMonthDay(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/length.js b/polyfill/test/PlainMonthDay/constructor/constructor/length.js
deleted file mode 100644
index c8927c6c90..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Temporal.PlainMonthDay.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/missing-arguments.js b/polyfill/test/PlainMonthDay/constructor/constructor/missing-arguments.js
deleted file mode 100644
index 62d378a06e..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: RangeError thrown after processing given args when invoked without all required args
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get month.valueOf",
- "call month.valueOf",
-];
-const actual = [];
-const args = [
- TemporalHelpers.toPrimitiveObserver(actual, 1, "month"),
-];
-
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/name.js b/polyfill/test/PlainMonthDay/constructor/constructor/name.js
deleted file mode 100644
index da58f9a636..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: Temporal.PlainMonthDay.name is "PlainMonthDay"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay, "name", {
- value: "PlainMonthDay",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 1944f9c666..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainMonthDay throws a RangeError if any numerical value is -Infinity
-esid: sec-temporal.plainmonthday
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const isoCalendar = Temporal.Calendar.from('iso8601');
-
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(-Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(1, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainMonthDay(1, 1, isoCalendar, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite month",
- [O(-Infinity, "month"), O(1, "day"), () => "iso8601", O(1, "year")],
- ["get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(2, "month"), O(-Infinity, "day"), () => "iso8601", O(1, "year")],
- ["get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
- [
- "infinite year",
- [O(2, "month"), O(1, "day"), () => "iso8601", O(-Infinity, "year")],
- ["get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf", "get year.valueOf", "call year.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainMonthDay(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/prop-desc.js b/polyfill/test/PlainMonthDay/constructor/constructor/prop-desc.js
deleted file mode 100644
index 830b08e855..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: The "PlainMonthDay" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay,
- "function",
- "`typeof PlainMonthDay` is `function`"
-);
-
-verifyProperty(Temporal, "PlainMonthDay", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/constructor/refisoyear-undefined.js b/polyfill/test/PlainMonthDay/constructor/constructor/refisoyear-undefined.js
deleted file mode 100644
index f9671ba848..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/constructor/refisoyear-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday
-description: referenceISOYear argument defaults to 1972 if not given
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const args = [5, 2, calendar];
-
-const dateExplicit = new Temporal.PlainMonthDay(...args, undefined);
-assert.sameValue(dateExplicit.getISOFields().isoYear, 1972, "default referenceISOYear is 1972");
-
-const dateImplicit = new Temporal.PlainMonthDay(...args);
-assert.sameValue(dateImplicit.getISOFields().isoYear, 1972, "default referenceISOYear is 1972");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/builtin.js b/polyfill/test/PlainMonthDay/constructor/from/builtin.js
deleted file mode 100644
index e5a1e866c9..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Tests that Temporal.PlainMonthDay.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/calendar-fields-iterable.js b/polyfill/test/PlainMonthDay/constructor/from/calendar-fields-iterable.js
deleted file mode 100644
index ad7c230d2a..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/calendar-fields-iterable.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainmonthday.from step 3:
- 3. Return ? ToTemporalMonthDay(_item_, _options_).
- sec-temporal-totemporalmonthday step 2.f:
- f. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainMonthDay.from({ monthCode: "M05", day: 2, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/calendar-temporal-object.js b/polyfill/test/PlainMonthDay/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index 98a61cf221..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainmonthday.from step 3:
- 3. Return ? ToTemporalMonthDay(_item_, _options_).
- sec-temporal-totemporalmonthday step 3.e:
- e. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.PlainMonthDay.from({ monthCode: "M05", day: 2, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/fields-leap-day.js b/polyfill/test/PlainMonthDay/constructor/from/fields-leap-day.js
deleted file mode 100644
index 81aa8555f5..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/fields-leap-day.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from(string).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Leap years
-["reject", "constrain"].forEach((overflow) => {
- const string = Temporal.PlainMonthDay.from("02-29", { overflow });
- TemporalHelpers.assertPlainMonthDay(string, "M02", 29, `from ${overflow} string`);
-
- const monthCode = Temporal.PlainMonthDay.from({ monthCode: "M02", day: 29 }, { overflow });
- TemporalHelpers.assertPlainMonthDay(monthCode, "M02", 29, `from ${overflow} with monthCode`);
-
- const implicit = Temporal.PlainMonthDay.from({ month: 2, day: 29 }, { overflow });
- TemporalHelpers.assertPlainMonthDay(implicit, "M02", 29, `from ${overflow} without year`);
-
- const explicit = Temporal.PlainMonthDay.from({ month: 2, day: 29, year: 1996 }, { overflow });
- TemporalHelpers.assertPlainMonthDay(explicit, "M02", 29, `from ${overflow} with leap year`);
-});
-
-// Non-leap years
-assert.throws(RangeError,
- () => Temporal.PlainMonthDay.from({ month: 2, day: 29, year: 2001 }, { overflow: "reject" }),
- "from reject with non-leap year");
-
-const nonLeap = Temporal.PlainMonthDay.from({ month: 2, day: 29, year: 2001 }, { overflow: "constrain" });
-TemporalHelpers.assertPlainMonthDay(nonLeap, "M02", 28, "from constrain with non-leap year");
-
-assert.throws(RangeError,
- () => Temporal.PlainMonthDay.from({ month: 2, day: 29, year: 2001, calendar: "iso8601" }, { overflow: "reject" }),
- "from reject with non-leap year and explicit calendar");
-
-const nonLeapCalendar = Temporal.PlainMonthDay.from({ month: 2, day: 29, year: 2001, calendar: "iso8601" }, { overflow: "constrain" });
-TemporalHelpers.assertPlainMonthDay(nonLeapCalendar, "M02", 28, "from constrain with non-leap year and explicit calendar");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/fields-missing-properties.js b/polyfill/test/PlainMonthDay/constructor/from/fields-missing-properties.js
deleted file mode 100644
index 62218219a2..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/fields-missing-properties.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from(object) with missing properties.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({}), "No properties");
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ day: 15 }), "Only day");
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ monthCode: 'M12' }), "Only monthCode");
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ monthCode: undefined, day: 15 }), "monthCode undefined");
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ months: 12, day: 31 }), "months plural");
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ month: 11, day: 18, calendar: "iso8601" }), "month, day with calendar");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/fields-object.js b/polyfill/test/PlainMonthDay/constructor/from/fields-object.js
deleted file mode 100644
index b8a9038492..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/fields-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from(object).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const tests = [
- [{ monthCode: "M10", day: 1 }, "option bag with monthCode"],
- [{ monthCode: "M10", day: 1, year: 2015 }, "option bag with year, monthCode"],
- [{ month: 10, day: 1 }, "option bag with year, month"],
- [{ month: 10, day: 1, year: 2015 }, "option bag with year, month"],
- [{ month: 10, day: 1, days: 31 }, "option bag with plural 'days'"],
- [new Temporal.PlainMonthDay(10, 1), "PlainMonthDay object"],
- [Temporal.PlainDate.from("2019-10-01"), "PlainDate object"],
-];
-
-for (const [argument, description = argument] of tests) {
- const plainMonthDay = Temporal.PlainMonthDay.from(argument);
- assert.notSameValue(plainMonthDay, argument, `from ${description} converts`);
- TemporalHelpers.assertPlainMonthDay(plainMonthDay, "M10", 1, `from ${description}`);
- assert.sameValue(plainMonthDay.calendar.id, "iso8601", `from ${description} calendar`);
-}
diff --git a/polyfill/test/PlainMonthDay/constructor/from/fields-plainmonthday.js b/polyfill/test/PlainMonthDay/constructor/from/fields-plainmonthday.js
deleted file mode 100644
index 41db83f735..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/fields-plainmonthday.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from(PlainMonthDay).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get overflow",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const options = {
- get overflow() {
- actual.push("get overflow");
- return TemporalHelpers.toPrimitiveObserver(actual, "reject", "overflow");
- }
-};
-
-const fields = new Temporal.PlainMonthDay(11, 16, undefined, 1960);
-const result = Temporal.PlainMonthDay.from(fields, options);
-TemporalHelpers.assertPlainMonthDay(result, "M11", 16, "should copy reference year", 1960);
-assert.compareArray(actual, expected, "Should get overflow");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/fields-string.js b/polyfill/test/PlainMonthDay/constructor/from/fields-string.js
deleted file mode 100644
index 618e654049..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/fields-string.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from(string).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const tests = [
- "10-01",
- "1001",
- "1965-10-01",
- "2019-10-01T09:00:00Z",
- "2019-10-01T00:00:00Z",
- "1976-10-01T152330.1+00:00",
- "19761001T15:23:30.1+00:00",
- "1976-10-01T15:23:30.1+0000",
- "1976-10-01T152330.1+0000",
- "19761001T15:23:30.1+0000",
- "19761001T152330.1+00:00",
- "19761001T152330.1+0000",
- "+001976-10-01T152330.1+00:00",
- "+0019761001T15:23:30.1+00:00",
- "+001976-10-01T15:23:30.1+0000",
- "+001976-10-01T152330.1+0000",
- "+0019761001T15:23:30.1+0000",
- "+0019761001T152330.1+00:00",
- "+0019761001T152330.1+0000",
- "1976-10-01T15:23",
- "1976-10-01T15",
- "1976-10-01",
- "--10-01",
- "--1001",
- 1001,
-];
-
-for (const argument of tests) {
- const plainMonthDay = Temporal.PlainMonthDay.from(argument);
- assert.notSameValue(plainMonthDay, argument, `from ${argument} converts`);
- TemporalHelpers.assertPlainMonthDay(plainMonthDay, "M10", 1, `from ${argument}`);
- assert.sameValue(plainMonthDay.calendar.id, "iso8601", `from ${argument} calendar`);
-}
-
-assert.throws(RangeError, () => Temporal.PlainMonthDay.from("11-18junk"), "no junk at end of string");
-
diff --git a/polyfill/test/PlainMonthDay/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 676d2bb6b0..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainMonthDay.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainMonthDay.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/length.js b/polyfill/test/PlainMonthDay/constructor/from/length.js
deleted file mode 100644
index cfc1f4877c..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Temporal.PlainMonthDay.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/name.js b/polyfill/test/PlainMonthDay/constructor/from/name.js
deleted file mode 100644
index 18912cae29..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Temporal.PlainMonthDay.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/not-a-constructor.js b/polyfill/test/PlainMonthDay/constructor/from/not-a-constructor.js
deleted file mode 100644
index 15b54cd479..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Temporal.PlainMonthDay.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.from), false,
- "isConstructor(Temporal.PlainMonthDay.from)");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/options-invalid.js b/polyfill/test/PlainMonthDay/constructor/from/options-invalid.js
deleted file mode 100644
index bc0acf0e48..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/options-invalid.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: TypeError thrown when options argument is a primitive
-features: [BigInt, Symbol, Temporal]
----*/
-
-const fields = { month: 2, day: 31 };
-
-const values = [null, true, "hello", Symbol("foo"), 1, 1n];
-for (const badOptions of values) {
- assert.throws(TypeError, () => Temporal.PlainMonthDay.from(fields, badOptions));
-}
diff --git a/polyfill/test/PlainMonthDay/constructor/from/options-undefined.js b/polyfill/test/PlainMonthDay/constructor/from/options-undefined.js
deleted file mode 100644
index 61a73e506d..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-includes: [temporalHelpers.js]
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const fields = { month: 2, day: 31 };
-
-const explicit = Temporal.PlainMonthDay.from(fields, undefined);
-TemporalHelpers.assertPlainMonthDay(explicit, "M02", 29, "default overflow is constrain");
-
-const implicit = Temporal.PlainMonthDay.from(fields);
-TemporalHelpers.assertPlainMonthDay(implicit, "M02", 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/order-of-operations.js b/polyfill/test/PlainMonthDay/constructor/from/order-of-operations.js
deleted file mode 100644
index 3cd92d9d3e..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- if (key === "calendar") return Temporal.Calendar.from("iso8601");
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.PlainMonthDay.from(argument);
-TemporalHelpers.assertPlainMonthDay(result, "M01", 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/overflow-invalid-string.js b/polyfill/test/PlainMonthDay/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index c2427006fd..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalmonthday steps 3–4:
- 3. If Type(_item_) is Object, then
- ...
- j. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
- 4. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalMonthDay]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalMonthDay(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainMonthDay(5, 2),
- { monthCode: "M05", day: 2 },
- "05-02",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.PlainMonthDay.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/overflow-undefined.js b/polyfill/test/PlainMonthDay/constructor/from/overflow-undefined.js
deleted file mode 100644
index 1e2161e447..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalmonthday steps 3–4:
- 3. If Type(_item_) is Object, then
- ...
- j. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
- 4. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalMonthDay]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalMonthDay(_item_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainMonthDay(5, 2),
- "05-02",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.PlainMonthDay.from(value, { overflow: undefined });
- TemporalHelpers.assertPlainMonthDay(explicit, "M05", 2, "overflow is ignored");
- const implicit = Temporal.PlainMonthDay.from(value, {});
- TemporalHelpers.assertPlainMonthDay(implicit, "M05", 2, "overflow is ignored");
- const lambda = Temporal.PlainMonthDay.from(value, () => {});
- TemporalHelpers.assertPlainMonthDay(lambda, "M05", 2, "overflow is ignored");
-});
-
-const propertyBag = { year: 2000, month: 13, day: 34 };
-const explicit = Temporal.PlainMonthDay.from(propertyBag, { overflow: undefined });
-TemporalHelpers.assertPlainMonthDay(explicit, "M12", 31, "default overflow is constrain");
-const implicit = Temporal.PlainMonthDay.from(propertyBag, {});
-TemporalHelpers.assertPlainMonthDay(implicit, "M12", 31, "default overflow is constrain");
-const lambda = Temporal.PlainMonthDay.from(propertyBag, () => {});
-TemporalHelpers.assertPlainMonthDay(lambda, "M12", 31, "default overflow is constrain");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/overflow-wrong-type.js b/polyfill/test/PlainMonthDay/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index 8832fd05a7..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalmonthday steps 3–4:
- 3. If Type(_item_) is Object, then
- ...
- j. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
- 4. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalMonthDay]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalMonthDay(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainMonthDay(5, 2),
- { monthCode: "M05", day: 2 },
- "05-02",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.PlainMonthDay.from(value, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainMonthDay(result, "M05", 2, descr),
-));
diff --git a/polyfill/test/PlainMonthDay/constructor/from/overflow.js b/polyfill/test/PlainMonthDay/constructor/from/overflow.js
deleted file mode 100644
index 0db03be79a..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/overflow.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Handling for overflow option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainMonthDay(5, 2),
- "05-02",
-];
-validValues.forEach((value) => {
- const constrain = Temporal.PlainMonthDay.from(value, { overflow: "constrain" });
- TemporalHelpers.assertPlainMonthDay(constrain, "M05", 2, "overflow is ignored: constrain");
-
- const reject = Temporal.PlainMonthDay.from(value, { overflow: "reject" });
- TemporalHelpers.assertPlainMonthDay(reject, "M05", 2, "overflow is ignored: reject");
-});
-
-const propertyBag1 = { year: 2000, month: 13, day: 34 };
-const result1 = Temporal.PlainMonthDay.from(propertyBag1, { overflow: "constrain" });
-TemporalHelpers.assertPlainMonthDay(result1, "M12", 31, "default overflow is constrain");
-assert.throws(RangeError, () => Temporal.PlainMonthDay.from(propertyBag1, { overflow: "reject" }),
- "invalid property bag: reject");
-
-const propertyBag2 = { month: 1, day: 32 };
-const result2 = Temporal.PlainMonthDay.from(propertyBag2, { overflow: "constrain" });
-TemporalHelpers.assertPlainMonthDay(result2, "M01", 31, "default overflow is constrain");
-assert.throws(RangeError, () => Temporal.PlainMonthDay.from(propertyBag2, { overflow: "reject" }),
- "invalid property bag: reject");
-
-assert.throws(RangeError, () => Temporal.PlainMonthDay.from("13-34", { overflow: "constrain" }),
- "invalid ISO string: constrain");
-assert.throws(RangeError, () => Temporal.PlainMonthDay.from("13-34", { overflow: "reject" }),
- "invalid ISO string: reject");
diff --git a/polyfill/test/PlainMonthDay/constructor/from/prop-desc.js b/polyfill/test/PlainMonthDay/constructor/from/prop-desc.js
deleted file mode 100644
index 72eb7528f6..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: The "from" property of Temporal.PlainMonthDay
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.from,
- "function",
- "`typeof PlainMonthDay.from` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/constructor/from/subclassing-ignored.js b/polyfill/test/PlainMonthDay/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 083c42e9b1..0000000000
--- a/polyfill/test/PlainMonthDay/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.PlainMonthDay,
- "from",
- ["05-02"],
- (result) => TemporalHelpers.assertPlainMonthDay(result, "M05", 2),
-);
diff --git a/polyfill/test/PlainMonthDay/prototype/calendar/branding.js b/polyfill/test/PlainMonthDay/prototype/calendar/branding.js
deleted file mode 100644
index adf20ff9ae..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/calendar/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/calendar/prop-desc.js
deleted file mode 100644
index a428d164ea..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.calendar
-description: The "calendar" property of Temporal.PlainMonthDay.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainMonthDay/prototype/day/basic.js b/polyfill/test/PlainMonthDay/prototype/day/basic.js
deleted file mode 100644
index 97566f6d7d..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/day/basic.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.day
-description: Basic tests for day().
-features: [Temporal]
----*/
-
-const md = new Temporal.PlainMonthDay(1, 15);
-assert.sameValue(md.day, 15);
diff --git a/polyfill/test/PlainMonthDay/prototype/day/branding.js b/polyfill/test/PlainMonthDay/prototype/day/branding.js
deleted file mode 100644
index 3c8d274e39..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/day/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.day
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const day = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "day").get;
-
-assert.sameValue(typeof day, "function");
-
-assert.throws(TypeError, () => day.call(undefined), "undefined");
-assert.throws(TypeError, () => day.call(null), "null");
-assert.throws(TypeError, () => day.call(true), "true");
-assert.throws(TypeError, () => day.call(""), "empty string");
-assert.throws(TypeError, () => day.call(Symbol()), "symbol");
-assert.throws(TypeError, () => day.call(1), "1");
-assert.throws(TypeError, () => day.call({}), "plain object");
-assert.throws(TypeError, () => day.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => day.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/day/calendar-returns-infinity.js b/polyfill/test/PlainMonthDay/prototype/day/calendar-returns-infinity.js
deleted file mode 100644
index f07e1f3a08..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/day/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.day
-description: Getter throws if the calendar returns ±∞ from its day method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- day() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainMonthDay(5, 2, pos);
-assert.throws(RangeError, () => instance1.day);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainMonthDay(5, 2, neg);
-assert.throws(RangeError, () => instance2.day);
diff --git a/polyfill/test/PlainMonthDay/prototype/day/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/day/prop-desc.js
deleted file mode 100644
index dccb417eda..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/day/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.day
-description: The "day" property of Temporal.PlainMonthDay.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "day");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/argument-wrong-type.js b/polyfill/test/PlainMonthDay/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index c89ad73130..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainMonthDay.from({ month: 5, day: 2 });
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(TypeError, () => instance.equals({}), "plain object");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/basic.js b/polyfill/test/PlainMonthDay/prototype/equals/basic.js
deleted file mode 100644
index c4bf132844..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/basic.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Basic tests for equals()
-features: [Temporal]
----*/
-
-const md1 = Temporal.PlainMonthDay.from("01-22");
-const md2 = Temporal.PlainMonthDay.from("12-15");
-assert(md1.equals(md1), "same object");
-assert.sameValue(md1.equals(md2), false, "different object");
-
-assert(md1.equals("01-22"), "same string");
-assert.sameValue(md2.equals("01-22"), false, "different string");
-
-assert(md1.equals({ month: 1, day: 22 }), "same property bag");
-assert.sameValue(md2.equals({ month: 1, day: 22 }), false, "different property bag");
-
-assert.throws(TypeError, () => md1.equals({ month: 1 }), "missing field in property bag");
-
-const mdYear1 = new Temporal.PlainMonthDay(1, 1, undefined, 1972);
-const mdYear2 = new Temporal.PlainMonthDay(1, 1, undefined, 2000);
-assert.sameValue(mdYear1.equals(mdYear2), false, "different reference years");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/branding.js b/polyfill/test/PlainMonthDay/prototype/equals/branding.js
deleted file mode 100644
index 88bb5ad25a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.PlainMonthDay.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => equals.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/builtin.js b/polyfill/test/PlainMonthDay/prototype/equals/builtin.js
deleted file mode 100644
index c8280a63a9..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: >
- Tests that Temporal.PlainMonthDay.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/calendar-fields-iterable.js b/polyfill/test/PlainMonthDay/prototype/equals/calendar-fields-iterable.js
deleted file mode 100644
index f6780885cd..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainmonthday.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalMonthDay(_other_).
- sec-temporal-totemporalmonthday step 2.f:
- f. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const date = new Temporal.PlainMonthDay(5, 2, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-date.equals({ monthCode: "M06", day: 2, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/calendar-temporal-object.js b/polyfill/test/PlainMonthDay/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 0bf3b816bf..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainmonthday.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalMonthDay(_other_).
- sec-temporal-totemporalmonthday step 3.e:
- e. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const monthday = new Temporal.PlainMonthDay(5, 2, temporalObject);
- monthday.equals({ monthCode: "M06", day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/calendars.js b/polyfill/test/PlainMonthDay/prototype/equals/calendars.js
deleted file mode 100644
index 63b75cf1b1..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/calendars.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Basic tests for equals() calendar handling
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar a.toString",
- "call calendar a.toString",
- "get calendar b.toString",
- "call calendar b.toString",
-];
-const actual = [];
-const calendar = (id) => {
- return TemporalHelpers.toPrimitiveObserver(actual, id, `calendar ${id}`);
-};
-
-const mdA = new Temporal.PlainMonthDay(2, 7, calendar("a"));
-const mdB = new Temporal.PlainMonthDay(2, 7, calendar("b"));
-const mdC = new Temporal.PlainMonthDay(2, 7, calendar("c"), 1974);
-
-assert.sameValue(mdA.equals(mdC), false, "different year");
-assert.compareArray(actual, [], "Should not check calendar");
-
-assert.sameValue(mdA.equals(mdB), false, "different calendar");
-assert.compareArray(actual, expected, "Should check calendar");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index 4e2d2de96f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/length.js b/polyfill/test/PlainMonthDay/prototype/equals/length.js
deleted file mode 100644
index 5f4b88fc4f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Temporal.PlainMonthDay.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/name.js b/polyfill/test/PlainMonthDay/prototype/equals/name.js
deleted file mode 100644
index 23f16a314a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: Temporal.PlainMonthDay.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/equals/not-a-constructor.js
deleted file mode 100644
index 7cf181c63b..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: >
- Temporal.PlainMonthDay.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.equals), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.equals)");
diff --git a/polyfill/test/PlainMonthDay/prototype/equals/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/equals/prop-desc.js
deleted file mode 100644
index 01b5adaeb4..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.equals
-description: The "equals" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.equals,
- "function",
- "`typeof PlainMonthDay.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/branding.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/branding.js
deleted file mode 100644
index 9a9805250c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.PlainMonthDay.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/builtin.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/builtin.js
deleted file mode 100644
index c42bb6002c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: >
- Tests that Temporal.PlainMonthDay.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-names.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/field-names.js
deleted file mode 100644
index 87cedb2153..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const md = new Temporal.PlainMonthDay(5, 2);
-
-const result = md.getISOFields();
-assert.sameValue(result.isoYear, 1972, "isoYear result");
-assert.sameValue(result.isoMonth, 5, "isoMonth result");
-assert.sameValue(result.isoDay, 2, "isoDay result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-prop-desc.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index e74b10df94..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const md = new Temporal.PlainMonthDay(5, 2);
-const result = md.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-traversal-order.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index 9d668403fe..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const md = new Temporal.PlainMonthDay(5, 2);
-const result = md.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/length.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/length.js
deleted file mode 100644
index 2777d1aa0d..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Temporal.PlainMonthDay.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/name.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/name.js
deleted file mode 100644
index 62b63c4be0..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: Temporal.PlainMonthDay.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index 4d422b1df3..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: >
- Temporal.PlainMonthDay.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.getISOFields), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.getISOFields)");
diff --git a/polyfill/test/PlainMonthDay/prototype/getISOFields/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index 3edb7a1429..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.getisofields
-description: The "getISOFields" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.getISOFields,
- "function",
- "`typeof PlainMonthDay.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/month/unsupported.js b/polyfill/test/PlainMonthDay/prototype/month/unsupported.js
deleted file mode 100644
index dd8b13c0c1..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/month/unsupported.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.monthcode
-description: There is no 'month' property on Temporal.PlainMonthDay
-features: [Temporal]
----*/
-
-const md = new Temporal.PlainMonthDay(1, 15);
-assert.sameValue(md.month, undefined);
-assert.sameValue("month" in md, false);
diff --git a/polyfill/test/PlainMonthDay/prototype/monthCode/basic.js b/polyfill/test/PlainMonthDay/prototype/monthCode/basic.js
deleted file mode 100644
index 1ab3c75a37..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/monthCode/basic.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.monthcode
-description: Basic tests for monthCode().
-features: [Temporal]
----*/
-
-const md = new Temporal.PlainMonthDay(1, 15);
-assert.sameValue(md.monthCode, "M01");
diff --git a/polyfill/test/PlainMonthDay/prototype/monthCode/branding.js b/polyfill/test/PlainMonthDay/prototype/monthCode/branding.js
deleted file mode 100644
index 9f511333e1..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "monthCode").get;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/monthCode/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/monthCode/prop-desc.js
deleted file mode 100644
index d0a88a5519..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainmonthday.prototype.monthcode
-description: The "monthCode" property of Temporal.PlainMonthDay.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainMonthDay.prototype, "monthCode");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/branding.js b/polyfill/test/PlainMonthDay/prototype/toJSON/branding.js
deleted file mode 100644
index 996ffd883f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.PlainMonthDay.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/builtin.js b/polyfill/test/PlainMonthDay/prototype/toJSON/builtin.js
deleted file mode 100644
index b451fb15bf..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: >
- Tests that Temporal.PlainMonthDay.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/calendarname.js b/polyfill/test/PlainMonthDay/prototype/toJSON/calendarname.js
deleted file mode 100644
index a590710d69..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/calendarname.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tojson
-description: toJSON doesn't take calendarName into account.
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02"],
- [[{ toString() { return "custom"; } }], "1972-05-02[u-ca=custom]"],
- [[{ toString() { return "iso8601"; } }], "05-02"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02[u-ca=ISO8601]"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02[u-ca=\u0131so8601]"], // dotless i
-];
-const options = {
- get calendarName() {
- TemporalHelpers.assertUnreachable("calendarName should not be accessed");
- return "";
- }
-};
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const result = monthday.toJSON(options);
- assert.sameValue(result, expected);
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/length.js b/polyfill/test/PlainMonthDay/prototype/toJSON/length.js
deleted file mode 100644
index 7a7116091e..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: Temporal.PlainMonthDay.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/name.js b/polyfill/test/PlainMonthDay/prototype/toJSON/name.js
deleted file mode 100644
index 021aa0724a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: Temporal.PlainMonthDay.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 9ff94e212a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: >
- Temporal.PlainMonthDay.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.toJSON), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.toJSON)");
diff --git a/polyfill/test/PlainMonthDay/prototype/toJSON/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/toJSON/prop-desc.js
deleted file mode 100644
index c8bffd2b90..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tojson
-description: The "toJSON" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.toJSON,
- "function",
- "`typeof PlainMonthDay.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/branding.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/branding.js
deleted file mode 100644
index 273b40964b..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.PlainMonthDay.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/builtin.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/builtin.js
deleted file mode 100644
index 8f4db7271c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: >
- Tests that Temporal.PlainMonthDay.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/length.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/length.js
deleted file mode 100644
index 7b647b1e47..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: Temporal.PlainMonthDay.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/locales-undefined.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index b3f91e23d4..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [Temporal]
----*/
-
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const { calendar } = defaultFormatter.resolvedOptions();
-const monthday = new Temporal.PlainMonthDay(5, 2, calendar);
-const expected = defaultFormatter.format(monthday);
-
-const actualExplicit = monthday.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = monthday.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/name.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/name.js
deleted file mode 100644
index b24cb9f370..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: Temporal.PlainMonthDay.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index 51a538d372..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: >
- Temporal.PlainMonthDay.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.toLocaleString), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.toLocaleString)");
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/options-undefined.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 3c021fc7a3..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const { calendar } = defaultFormatter.resolvedOptions();
-const monthday = new Temporal.PlainMonthDay(5, 2, calendar);
-const expected = defaultFormatter.format(monthday);
-
-const actualExplicit = monthday.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = monthday.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainMonthDay/prototype/toLocaleString/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index 878ff5f9c2..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.toLocaleString,
- "function",
- "`typeof PlainMonthDay.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/argument-not-object.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/argument-not-object.js
deleted file mode 100644
index a64f4d2fbb..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/argument-not-object.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Throws a TypeError if the argument is not an Object, before any other observable actions
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[null, undefined, true, 3.1416, "a string", Symbol("symbol"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarThrowEverything();
- const plainMonthDay = new Temporal.PlainMonthDay(5, 2, calendar);
- assert.throws(TypeError, () => plainMonthDay.toPlainDate(primitive));
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/basic.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/basic.js
deleted file mode 100644
index efb577adc9..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/basic.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Basic tests for toPlainDate().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const md = Temporal.PlainMonthDay.from("01-22");
-const d = md.toPlainDate({ year: 2002 });
-TemporalHelpers.assertPlainDate(d, 2002, 1, "M01", 22);
-
-assert.throws(TypeError, () => md.toPlainDate({ something: 'nothing' }), "missing fields");
-
-const leapDay = Temporal.PlainMonthDay.from('02-29');
-TemporalHelpers.assertPlainDate(leapDay.toPlainDate({ year: 2019 }), 2019, 2, "M02", 28);
-TemporalHelpers.assertPlainDate(leapDay.toPlainDate({ year: 2020 }), 2020, 2, "M02", 29);
-
-const options = {
- get overflow() {
- TemporalHelpers.assertUnreachable("Should not get overflow option");
- return "";
- }
-};
-TemporalHelpers.assertPlainDate(leapDay.toPlainDate({ year: 2019 }, options), 2019, 2, "M02", 28);
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/branding.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/branding.js
deleted file mode 100644
index eb321664b3..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDate = Temporal.PlainMonthDay.prototype.toPlainDate;
-
-assert.sameValue(typeof toPlainDate, "function");
-
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/builtin.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/builtin.js
deleted file mode 100644
index 5846613fa2..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: >
- Tests that Temporal.PlainMonthDay.prototype.toPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.toPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.toPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.toPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.toPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-fields-iterable.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-fields-iterable.js
deleted file mode 100644
index 6921148209..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainmonthday.prototype.toplaindate step 4:
- 4. Let _receiverFieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"monthCode"* »).
- sec-temporal.plainmonthday.prototype.toplaindate step 7:
- 7. Let _inputFieldNames_ be ? CalendarFields(_calendar_, « *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "day",
- "monthCode",
-];
-const expected2 = [
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const monthday = new Temporal.PlainMonthDay(5, 2, calendar);
-monthday.toPlainDate({ year: 1997 });
-
-assert.sameValue(calendar.fieldsCallCount, 2, "fields() method called twice");
-assert.compareArray(calendar.fieldsCalledWith[0], expected1, "fields() method called first time with correct args");
-assert.compareArray(calendar.fieldsCalledWith[1], expected2, "fields() method called second time with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole first iterable");
-assert(calendar.iteratorExhausted[1], "iterated through the whole second iterable");
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index 307cb68a81..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainMonthDay(5, 2, calendar);
- assert.throws(TypeError, () => instance.toPlainDate({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.dateFromFieldsCallCount, 0, "dateFromFields() never called");
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/copies-merge-fields-object.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/copies-merge-fields-object.js
deleted file mode 100644
index 3c0f4b69b5..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/copies-merge-fields-object.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: The object returned from mergeFields() is copied before being passed to monthDayFromFields().
-info: |
- sec-temporal.plainmonthday.prototype.toplaindate steps 9 and 11:
- 9. Let _mergedFields_ be ? CalendarMergeFields(_calendar_, _fields_, _inputFields_).
- 11. Set _mergedFields_ to ? PrepareTemporalFields(_mergedFields_, _mergedFieldNames_, «»).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const monthday = new Temporal.PlainMonthDay(3, 31, calendar);
-monthday.toPlainDate({ year: 2000 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index 1c1597f204..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws a RangeError if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2);
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.toPlainDate({ year: inf }), `year property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "year");
- assert.throws(RangeError, () => instance.toPlainDate({ year: obj }));
- assert.compareArray(calls, ["get year.valueOf", "call year.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/length.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/length.js
deleted file mode 100644
index 1ba7ab257a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Temporal.PlainMonthDay.prototype.toPlainDate.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toPlainDate, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/name.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/name.js
deleted file mode 100644
index d2e65880b7..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: Temporal.PlainMonthDay.prototype.toPlainDate.name is "toPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toPlainDate, "name", {
- value: "toPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/not-a-constructor.js
deleted file mode 100644
index b0b1962675..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: >
- Temporal.PlainMonthDay.prototype.toPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.toPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.toPlainDate), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.toPlainDate)");
diff --git a/polyfill/test/PlainMonthDay/prototype/toPlainDate/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/toPlainDate/prop-desc.js
deleted file mode 100644
index 4172671533..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-description: The "toPlainDate" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.toPlainDate,
- "function",
- "`typeof PlainMonthDay.prototype.toPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "toPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/branding.js b/polyfill/test/PlainMonthDay/prototype/toString/branding.js
deleted file mode 100644
index 2388be21ef..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.PlainMonthDay.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => toString.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/builtin.js b/polyfill/test/PlainMonthDay/prototype/toString/builtin.js
deleted file mode 100644
index 361417cbf1..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: >
- Tests that Temporal.PlainMonthDay.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-always.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-always.js
deleted file mode 100644
index fadff8929f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-always.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: If calendarName is "always", the calendar ID should be included.
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02[u-ca=iso8601]"],
- [[{ toString() { return "custom"; } }], "1972-05-02[u-ca=custom]"],
- [[{ toString() { return "iso8601"; } }], "05-02[u-ca=iso8601]"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02[u-ca=ISO8601]"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02[u-ca=\u0131so8601]"], // dotless i
-];
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const result = monthday.toString({ calendarName: "always" });
- assert.sameValue(result, expected);
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-auto.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-auto.js
deleted file mode 100644
index c5f75d787d..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-auto.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: If calendarName is "auto", "iso8601" should be omitted.
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02"],
- [[{ toString() { return "custom"; } }], "1972-05-02[u-ca=custom]"],
- [[{ toString() { return "iso8601"; } }], "05-02"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02[u-ca=ISO8601]"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02[u-ca=\u0131so8601]"], // dotless i
-];
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const result = monthday.toString({ calendarName: "auto" });
- assert.sameValue(result, expected);
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-invalid-string.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-invalid-string.js
deleted file mode 100644
index 5e702560d8..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: RangeError thrown when calendarName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainmonthday.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const monthday = new Temporal.PlainMonthDay(5, 2);
-for (const calendarName of ["ALWAYS", "sometimes", "other string"]) {
- assert.throws(RangeError, () => monthday.toString({ calendarName }));
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-never.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-never.js
deleted file mode 100644
index cee35d9bde..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-never.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: If calendarName is "never", the calendar ID should be omitted.
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02"],
- [[{ toString() { return "custom"; } }], "1972-05-02"],
- [[{ toString() { return "iso8601"; } }], "05-02"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02"], // dotless i
-];
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const result = monthday.toString({ calendarName: "never" });
- assert.sameValue(result, expected);
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-undefined.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-undefined.js
deleted file mode 100644
index b59e15d916..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-undefined.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: Fallback value for calendarName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainmonthday.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02"],
- [[{ toString() { return "custom"; } }], "1972-05-02[u-ca=custom]"],
- [[{ toString() { return "iso8601"; } }], "05-02"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02[u-ca=ISO8601]"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02[u-ca=\u0131so8601]"], // dotless i
-];
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const explicit = monthday.toString({ calendarName: undefined });
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = monthday.toString({});
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-wrong-type.js b/polyfill/test/PlainMonthDay/prototype/toString/calendarname-wrong-type.js
deleted file mode 100644
index 260c7d3c87..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/calendarname-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.protoype.tostring
-description: Type conversions for calendarName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainmonthday.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const monthday = new Temporal.PlainMonthDay(5, 2, calendar);
-
-TemporalHelpers.checkStringOptionWrongType("calendarName", "auto",
- (calendarName) => monthday.toString({ calendarName }),
- (result, descr) => assert.sameValue(result, "1972-05-02[u-ca=custom]", descr),
-);
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/length.js b/polyfill/test/PlainMonthDay/prototype/toString/length.js
deleted file mode 100644
index b1990cece9..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: Temporal.PlainMonthDay.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/name.js b/polyfill/test/PlainMonthDay/prototype/toString/name.js
deleted file mode 100644
index 0a14932aef..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: Temporal.PlainMonthDay.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 90bd397139..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: >
- Temporal.PlainMonthDay.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.toString), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.toString)");
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/options-undefined.js b/polyfill/test/PlainMonthDay/prototype/toString/options-undefined.js
deleted file mode 100644
index da53b9a72c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const tests = [
- [[], "05-02"],
- [[{ toString() { return "custom"; } }], "1972-05-02[u-ca=custom]"],
- [[{ toString() { return "iso8601"; } }], "05-02"],
- [[{ toString() { return "ISO8601"; } }], "1972-05-02[u-ca=ISO8601]"],
- [[{ toString() { return "\u0131so8601"; } }], "1972-05-02[u-ca=\u0131so8601]"], // dotless i
-];
-
-for (const [args, expected] of tests) {
- const monthday = new Temporal.PlainMonthDay(5, 2, ...args);
- const explicit = monthday.toString(undefined);
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = monthday.toString();
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/toString/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/toString/prop-desc.js
deleted file mode 100644
index 482f29ba2c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tostring
-description: The "toString" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.toString,
- "function",
- "`typeof PlainMonthDay.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/basic.js b/polyfill/test/PlainMonthDay/prototype/valueOf/basic.js
deleted file mode 100644
index 4c617d95c1..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/basic.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: Basic tests for valueOf().
-features: [Temporal]
----*/
-
-const plainMonthDay = Temporal.PlainMonthDay.from("1963-02-13");
-const plainMonthDay2 = Temporal.PlainMonthDay.from("1963-02-13");
-
-assert.throws(TypeError, () => plainMonthDay.valueOf(), "valueOf");
-assert.throws(TypeError, () => plainMonthDay < plainMonthDay, "<");
-assert.throws(TypeError, () => plainMonthDay <= plainMonthDay, "<=");
-assert.throws(TypeError, () => plainMonthDay > plainMonthDay, ">");
-assert.throws(TypeError, () => plainMonthDay >= plainMonthDay, ">=");
-assert.sameValue(plainMonthDay === plainMonthDay, true, "===");
-assert.sameValue(plainMonthDay === plainMonthDay2, false, "===");
-assert.sameValue(plainMonthDay !== plainMonthDay, false, "!==");
-assert.sameValue(plainMonthDay !== plainMonthDay2, true, "!==");
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/branding.js b/polyfill/test/PlainMonthDay/prototype/valueOf/branding.js
deleted file mode 100644
index 354f67906b..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.PlainMonthDay.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/builtin.js b/polyfill/test/PlainMonthDay/prototype/valueOf/builtin.js
deleted file mode 100644
index 2fcbf7121a..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: >
- Tests that Temporal.PlainMonthDay.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/length.js b/polyfill/test/PlainMonthDay/prototype/valueOf/length.js
deleted file mode 100644
index a70a8f67d2..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: Temporal.PlainMonthDay.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/name.js b/polyfill/test/PlainMonthDay/prototype/valueOf/name.js
deleted file mode 100644
index cac08d14fa..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: Temporal.PlainMonthDay.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index e04c8ed259..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: >
- Temporal.PlainMonthDay.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.valueOf), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.valueOf)");
diff --git a/polyfill/test/PlainMonthDay/prototype/valueOf/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/valueOf/prop-desc.js
deleted file mode 100644
index b270e38b24..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.valueof
-description: The "valueOf" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.valueOf,
- "function",
- "`typeof PlainMonthDay.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/basic.js b/polyfill/test/PlainMonthDay/prototype/with/basic.js
deleted file mode 100644
index 0fb248efec..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/basic.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Basic tests for with().
-includes: [compareArray.js, temporalHelpers.js]
-features: [Symbol, Temporal]
----*/
-
-const md = Temporal.PlainMonthDay.from("01-15");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ day: 22 }),
- "M01", 22, "with({day})");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ monthCode: "M12" }),
- "M12", 15, "with({monthCode})");
-
-assert.throws(TypeError, () => md.with({ month: 12 }), "with({month})");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ month: 12, monthCode: "M12" }),
- "M12", 15, "with({month, monthCode}) agree");
-
-assert.throws(RangeError, () => md.with({ month: 12, monthCode: "M11" }), "with({month, monthCode}) disagree");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ year: 2000, month: 12 }),
- "M12", 15, "with({year, month})");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ year: 2000 }),
- "M01", 15, "with({year})");
-
-assert.throws(TypeError, () => md.with({ day: 1, calendar: "iso8601" }), "with({calendar})");
-
-assert.throws(TypeError, () => md.with({ day: 1, timeZone: "UTC" }), "with({timeZone})");
-
-assert.throws(TypeError, () => md.with({}), "with({})");
-assert.throws(TypeError, () => md.with({ months: 12 }), "with({months})");
-
-TemporalHelpers.assertPlainMonthDay(md.with({ monthCode: "M12", days: 1 }),
- "M12", 15, "with({monthCode, days})");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/branding.js b/polyfill/test/PlainMonthDay/prototype/with/branding.js
deleted file mode 100644
index e178fbad23..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.PlainMonthDay.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainMonthDay), "Temporal.PlainMonthDay");
-assert.throws(TypeError, () => with_.call(Temporal.PlainMonthDay.prototype), "Temporal.PlainMonthDay.prototype");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/builtin.js b/polyfill/test/PlainMonthDay/prototype/with/builtin.js
deleted file mode 100644
index 57bd87f06c..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: >
- Tests that Temporal.PlainMonthDay.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainMonthDay.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainMonthDay.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainMonthDay.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainMonthDay.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/calendar-arguments.js b/polyfill/test/PlainMonthDay/prototype/with/calendar-arguments.js
deleted file mode 100644
index aee39245f9..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Correct options value is passed to calendar method
-info: |
- MonthDayFromFields ( calendar, fields [ , options ] )
-
- 5. Let monthDay be ? Invoke(calendar, "monthDayFromFields", « fields, options »).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const options = {};
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- monthDayFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], options, "args[1]");
- return super.monthDayFromFields(...args);
- }
-}
-const plainMonthDay = new Temporal.PlainMonthDay(7, 2, new CustomCalendar());
-const result = plainMonthDay.with({ monthCode: "M05" }, options);
-TemporalHelpers.assertPlainMonthDay(result, "M05", 2);
diff --git a/polyfill/test/PlainMonthDay/prototype/with/calendar-fields-iterable.js b/polyfill/test/PlainMonthDay/prototype/with/calendar-fields-iterable.js
deleted file mode 100644
index cd4a94896f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/calendar-fields-iterable.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainmonthday.prototype.with step 9:
- 9. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const monthday = new Temporal.PlainMonthDay(5, 2, calendar);
-monthday.with({ day: 6 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainMonthDay/prototype/with/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index 5cf1657acc..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainMonthDay(5, 2, calendar);
- assert.throws(TypeError, () => instance.with({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.monthDayFromFieldsCallCount, 0, "monthDayFromFields() never called");
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/copies-merge-fields-object.js b/polyfill/test/PlainMonthDay/prototype/with/copies-merge-fields-object.js
deleted file mode 100644
index ee7d3e4122..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/copies-merge-fields-object.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: The object returned from mergeFields() is copied before being passed to monthDayFromFields().
-info: |
- sec-temporal.plainmonthday.prototype.with steps 13–15:
- 13. Set _fields_ to ? CalendarMergeFields(_calendar_, _fields_, _partialMonthDay_).
- 14. Set _fields_ to ? PrepareTemporalFields(_fields_, _fieldNames_, «»).
- 15. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month", // PlainMonthDay.month property does not exist, no valueOf
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year", // undefined, no valueOf
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const monthday = new Temporal.PlainMonthDay(3, 31, calendar);
-monthday.with({ day: 1 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/PlainMonthDay/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 339ef7b0cc..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ day: inf }, { overflow }), `day property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "day");
- assert.throws(RangeError, () => instance.with({ day: obj }, { overflow }));
- assert.compareArray(calls, ["get day.valueOf", "call day.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/length.js b/polyfill/test/PlainMonthDay/prototype/with/length.js
deleted file mode 100644
index ddc88571b0..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Temporal.PlainMonthDay.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/name.js b/polyfill/test/PlainMonthDay/prototype/with/name.js
deleted file mode 100644
index 207cb15a70..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Temporal.PlainMonthDay.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainMonthDay.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/not-a-constructor.js b/polyfill/test/PlainMonthDay/prototype/with/not-a-constructor.js
deleted file mode 100644
index eb83f6c4d8..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: >
- Temporal.PlainMonthDay.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainMonthDay.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainMonthDay.prototype.with), false,
- "isConstructor(Temporal.PlainMonthDay.prototype.with)");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/options-invalid.js b/polyfill/test/PlainMonthDay/prototype/with/options-invalid.js
deleted file mode 100644
index e26eb9a40b..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/options-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: TypeError thrown when options argument is a primitive
-features: [BigInt, Symbol, Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(2, 2);
-[null, true, "hello", Symbol("foo"), 1, 1n].forEach((badOptions) =>
- assert.throws(TypeError, () => instance.with({ day: 17 }, badOptions))
-);
diff --git a/polyfill/test/PlainMonthDay/prototype/with/options-undefined.js b/polyfill/test/PlainMonthDay/prototype/with/options-undefined.js
deleted file mode 100644
index 035f174b71..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const monthday = new Temporal.PlainMonthDay(2, 2);
-const fields = { day: 100 };
-
-const explicit = monthday.with(fields, undefined);
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = monthday.with(fields);
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/order-of-operations.js b/polyfill/test/PlainMonthDay/prototype/with/order-of-operations.js
deleted file mode 100644
index 7daf9f20b8..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2);
-const expected = [
- "get calendar",
- "get timeZone",
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
- day: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertPlainMonthDay(result, "M01", 1);
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/overflow-invalid-string.js b/polyfill/test/PlainMonthDay/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index 5ed47e9753..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.prototype.with step 16:
- 16. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const monthday = new Temporal.PlainMonthDay(5, 2);
-for (const overflow of ["", "CONSTRAIN", "balance", "other string", "constra\u0131n"]) {
- assert.throws(RangeError, () => monthday.with({ day: 8 }, { overflow }));
-}
diff --git a/polyfill/test/PlainMonthDay/prototype/with/overflow-undefined.js b/polyfill/test/PlainMonthDay/prototype/with/overflow-undefined.js
deleted file mode 100644
index ecc8f7fc66..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.prototype.with step 16:
- 16. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const monthday = new Temporal.PlainMonthDay(5, 2);
-const explicit = monthday.with({ day: 33 }, { overflow: undefined });
-TemporalHelpers.assertPlainMonthDay(explicit, "M05", 31, "default overflow is constrain");
-const implicit = monthday.with({ day: 33 }, {});
-TemporalHelpers.assertPlainMonthDay(implicit, "M05", 31, "default overflow is constrain");
-const lambda = monthday.with({ day: 33 }, () => {});
-TemporalHelpers.assertPlainMonthDay(lambda, "M05", 31, "default overflow is constrain");
diff --git a/polyfill/test/PlainMonthDay/prototype/with/overflow-wrong-type.js b/polyfill/test/PlainMonthDay/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index 6fe7d4fb8f..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isomonthdayfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainmonthday.prototype.with step 16:
- 16. Return ? MonthDayFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const monthday = new Temporal.PlainMonthDay(5, 2);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => monthday.with({ day: 8 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainMonthDay(result, "M05", 8, descr),
-);
diff --git a/polyfill/test/PlainMonthDay/prototype/with/prop-desc.js b/polyfill/test/PlainMonthDay/prototype/with/prop-desc.js
deleted file mode 100644
index 1daa312ca5..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: The "with" property of Temporal.PlainMonthDay.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainMonthDay.prototype.with,
- "function",
- "`typeof PlainMonthDay.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.PlainMonthDay.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainMonthDay/prototype/with/subclassing-ignored.js b/polyfill/test/PlainMonthDay/prototype/with/subclassing-ignored.js
deleted file mode 100644
index e45e8c77d4..0000000000
--- a/polyfill/test/PlainMonthDay/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.with
-description: Objects of a subclass are never created as return values for with()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainMonthDay,
- [5, 2],
- "with",
- [{ day: 20 }],
- (result) => TemporalHelpers.assertPlainMonthDay(result, "M05", 20),
-);
diff --git a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 07dadb0d57..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-const time = new Temporal.PlainTime(16, 50, 35, 0, 0, 1);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result1 = Temporal.PlainTime.compare(time, datetime);
-assert.sameValue(result1, 0);
-
-const result2 = Temporal.PlainTime.compare(datetime, time);
-assert.sameValue(result2, 0);
diff --git a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 72c5b1d431..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, Infinity, -Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
- assert.throws(RangeError, () => Temporal.PlainTime.compare(datetime, time));
- assert.throws(RangeError, () => Temporal.PlainTime.compare(time, datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 61ef5976d1..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
- assert.throws(RangeError, () => Temporal.PlainTime.compare(datetime, time));
- assert.throws(RangeError, () => Temporal.PlainTime.compare(time, datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index eafc91fe90..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
- assert.throws(TypeError, () => Temporal.PlainTime.compare(datetime, time));
- assert.throws(TypeError, () => Temporal.PlainTime.compare(time, datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/builtin.js b/polyfill/test/PlainTime/constructor/compare/builtin.js
deleted file mode 100644
index 72266655c8..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: Tests that Temporal.PlainTime.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/constructor/compare/calendar-temporal-object.js b/polyfill/test/PlainTime/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index c1eb23e228..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalTime(_one_).
- 2. Set _two_ to ? ToTemporalTime(_two_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => Temporal.PlainTime.compare({ hour: 12, minute: 30, calendar: temporalObject }, time));
- assert.throws(RangeError, () => Temporal.PlainTime.compare(time, { hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/length.js b/polyfill/test/PlainTime/constructor/compare/length.js
deleted file mode 100644
index 32981237e3..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: Temporal.PlainTime.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/name.js b/polyfill/test/PlainTime/constructor/compare/name.js
deleted file mode 100644
index 8c9de9b7ae..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: Temporal.PlainTime.compare.name is "compare"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/not-a-constructor.js b/polyfill/test/PlainTime/constructor/compare/not-a-constructor.js
deleted file mode 100644
index 89228d3193..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: Temporal.PlainTime.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.compare), false,
- "isConstructor(Temporal.PlainTime.compare)");
diff --git a/polyfill/test/PlainTime/constructor/compare/prop-desc.js b/polyfill/test/PlainTime/constructor/compare/prop-desc.js
deleted file mode 100644
index f3c91caee1..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.compare
-description: The "compare" property of Temporal.PlainTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.compare,
- "function",
- "`typeof PlainTime.compare` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/compare/use-internal-slots.js b/polyfill/test/PlainTime/constructor/compare/use-internal-slots.js
deleted file mode 100644
index 6c92397982..0000000000
--- a/polyfill/test/PlainTime/constructor/compare/use-internal-slots.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-comparetemporaltime
-description: compare() ignores the observable properties and uses internal slots
-features: [Temporal]
----*/
-
-function CustomError() {}
-
-class AvoidGettersTime extends Temporal.PlainTime {
- get hour() {
- throw new CustomError();
- }
- get minute() {
- throw new CustomError();
- }
- get second() {
- throw new CustomError();
- }
- get millisecond() {
- throw new CustomError();
- }
- get microsecond() {
- throw new CustomError();
- }
- get nanosecond() {
- throw new CustomError();
- }
-}
-
-const one = new AvoidGettersTime(12, 34, 56, 987, 654, 321);
-const two = new AvoidGettersTime(6, 54, 32, 123, 456, 789);
-assert.sameValue(Temporal.PlainTime.compare(one, two), 1);
diff --git a/polyfill/test/PlainTime/constructor/constructor/basic.js b/polyfill/test/PlainTime/constructor/constructor/basic.js
deleted file mode 100644
index 40ea36f208..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/basic.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Basic tests for the PlainTime constructor.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const args = [15, 23, 30, 123, 456, 789];
-const plainTime = new Temporal.PlainTime(...args);
-TemporalHelpers.assertPlainTime(plainTime, ...args);
-assert.sameValue(plainTime.calendar.id, "iso8601", "calendar");
diff --git a/polyfill/test/PlainTime/constructor/constructor/builtin.js b/polyfill/test/PlainTime/constructor/constructor/builtin.js
deleted file mode 100644
index a17dad6bc0..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Tests that Temporal.PlainTime meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.PlainTime.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/PlainTime/constructor/constructor/constructor.js b/polyfill/test/PlainTime/constructor/constructor/constructor.js
deleted file mode 100644
index 819dcba897..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Temporal.PlainTime constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainTime());
diff --git a/polyfill/test/PlainTime/constructor/constructor/hour-undefined.js b/polyfill/test/PlainTime/constructor/constructor/hour-undefined.js
deleted file mode 100644
index a3e31b731f..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/hour-undefined.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Hour argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const explicit = new Temporal.PlainTime(undefined);
-TemporalHelpers.assertPlainTime(explicit, 0, 0, 0, 0, 0, 0, "explicit");
-
-const implicit = new Temporal.PlainTime();
-TemporalHelpers.assertPlainTime(implicit, 0, 0, 0, 0, 0, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index 7c3952cbf9..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainTime throws a RangeError if any value is Infinity
-esid: sec-temporal.plaintime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainTime(Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, 0, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, 0, 0, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite hour",
- [O(Infinity, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf"]
- ],
- [
- "infinite minute",
- [O(1, "hour"), O(Infinity, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf"]
- ],
- [
- "infinite second",
- [O(1, "hour"), O(1, "minute"), O(Infinity, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf"]
- ],
- [
- "infinite millisecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(Infinity, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf"]
- ],
- [
- "infinite microsecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(Infinity, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf", "get microsecond.valueOf", "call microsecond.valueOf"]
- ],
- [
- "infinite nanosecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(Infinity, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf", "get microsecond.valueOf", "call microsecond.valueOf", "get nanosecond.valueOf", "call nanosecond.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainTime(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainTime/constructor/constructor/length.js b/polyfill/test/PlainTime/constructor/constructor/length.js
deleted file mode 100644
index ac94c418c6..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Temporal.PlainTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/constructor/microsecond-undefined.js b/polyfill/test/PlainTime/constructor/constructor/microsecond-undefined.js
deleted file mode 100644
index 401c42bb86..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/microsecond-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Microsecond argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const args = [12, 34, 56, 123];
-
-const explicit = new Temporal.PlainTime(...args, undefined);
-TemporalHelpers.assertPlainTime(explicit, ...args, 0, 0, "explicit");
-
-const implicit = new Temporal.PlainTime(...args);
-TemporalHelpers.assertPlainTime(implicit, ...args, 0, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/constructor/millisecond-undefined.js b/polyfill/test/PlainTime/constructor/constructor/millisecond-undefined.js
deleted file mode 100644
index ce786d2aa2..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/millisecond-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Millisecond argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const args = [12, 34, 56];
-
-const explicit = new Temporal.PlainTime(...args, undefined);
-TemporalHelpers.assertPlainTime(explicit, ...args, 0, 0, 0, "explicit");
-
-const implicit = new Temporal.PlainTime(...args);
-TemporalHelpers.assertPlainTime(implicit, ...args, 0, 0, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/constructor/minute-undefined.js b/polyfill/test/PlainTime/constructor/constructor/minute-undefined.js
deleted file mode 100644
index 36f0f74ab2..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/minute-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Minute argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const hour = 12;
-
-const explicit = new Temporal.PlainTime(hour, undefined);
-TemporalHelpers.assertPlainTime(explicit, hour, 0, 0, 0, 0, 0, "explicit");
-
-const implicit = new Temporal.PlainTime(hour);
-TemporalHelpers.assertPlainTime(implicit, hour, 0, 0, 0, 0, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/constructor/name.js b/polyfill/test/PlainTime/constructor/constructor/name.js
deleted file mode 100644
index ded7b772e4..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Temporal.PlainTime.name is "PlainTime"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime, "name", {
- value: "PlainTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/constructor/nanosecond-undefined.js b/polyfill/test/PlainTime/constructor/constructor/nanosecond-undefined.js
deleted file mode 100644
index 827a2bfba8..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/nanosecond-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Nanosecond argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const args = [12, 34, 56, 123, 456];
-
-const explicit = new Temporal.PlainTime(...args, undefined);
-TemporalHelpers.assertPlainTime(explicit, ...args, 0, "explicit");
-
-const implicit = new Temporal.PlainTime(...args);
-TemporalHelpers.assertPlainTime(implicit, ...args, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainTime/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 42221addc1..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainDate throws a RangeError if any value is -Infinity
-esid: sec-temporal.plaintime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.PlainTime(-Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, 0, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainTime(0, 0, 0, 0, 0, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite hour",
- [O(-Infinity, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf"]
- ],
- [
- "infinite minute",
- [O(1, "hour"), O(-Infinity, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf"]
- ],
- [
- "infinite second",
- [O(1, "hour"), O(1, "minute"), O(-Infinity, "second"), O(1, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf"]
- ],
- [
- "infinite millisecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(-Infinity, "millisecond"), O(1, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf"]
- ],
- [
- "infinite microsecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(-Infinity, "microsecond"), O(1, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf", "get microsecond.valueOf", "call microsecond.valueOf"]
- ],
- [
- "infinite nanosecond",
- [O(1, "hour"), O(1, "minute"), O(1, "second"), O(1, "millisecond"), O(1, "microsecond"), O(-Infinity, "nanosecond")],
- ["get hour.valueOf", "call hour.valueOf", "get minute.valueOf", "call minute.valueOf", "get second.valueOf", "call second.valueOf", "get millisecond.valueOf", "call millisecond.valueOf", "get microsecond.valueOf", "call microsecond.valueOf", "get nanosecond.valueOf", "call nanosecond.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainTime(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainTime/constructor/constructor/prop-desc.js b/polyfill/test/PlainTime/constructor/constructor/prop-desc.js
deleted file mode 100644
index 99ba689978..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: The "PlainTime" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime,
- "function",
- "`typeof PlainTime` is `function`"
-);
-
-verifyProperty(Temporal, "PlainTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/constructor/second-undefined.js b/polyfill/test/PlainTime/constructor/constructor/second-undefined.js
deleted file mode 100644
index b783a859f5..0000000000
--- a/polyfill/test/PlainTime/constructor/constructor/second-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime
-description: Second argument defaults to 0 if not given
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const args = [12, 34];
-
-const explicit = new Temporal.PlainTime(...args, undefined);
-TemporalHelpers.assertPlainTime(explicit, ...args, 0, 0, 0, 0, "explicit");
-
-const implicit = new Temporal.PlainTime(...args);
-TemporalHelpers.assertPlainTime(implicit, ...args, 0, 0, 0, 0, "implicit");
diff --git a/polyfill/test/PlainTime/constructor/from/argument-string-with-calendar.js b/polyfill/test/PlainTime/constructor/from/argument-string-with-calendar.js
deleted file mode 100644
index 84bb8ee43b..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-string-with-calendar.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-totemporaltime
-description: Strings with non-ISO calendars are not supported.
-info: |
- b. Let result be ? ParseTemporalTimeString(string).
- d. If result.[[Calendar]] is not one of undefined or "iso8601", then
- i. Throw a RangeError exception.
-features: [Temporal]
----*/
-
-const isoString = "2004-03-21T10:00:00";
-
-const valid = [
- "",
- "[u-ca=iso8601]",
-];
-
-for (const s of valid) {
- const input = isoString + s;
- const plainTime = Temporal.PlainTime.from(input);
- assert.sameValue(plainTime.calendar.id, "iso8601");
-}
-
-const invalid = [
- "[u-ca=indian]",
- "[u-ca=hebrew]",
-];
-
-for (const s of invalid) {
- const input = isoString + s;
- assert.throws(RangeError, () => Temporal.PlainTime.from(input));
-}
diff --git a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 6013cb32b7..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaintime.from step 4:
- 4. Return ? ToTemporalTime(_temporalTime_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const time = Temporal.PlainTime.from(datetime);
-
-TemporalHelpers.assertPlainTime(time, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index a67da3eb4d..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = Temporal.PlainTime.from(datetime);
-TemporalHelpers.assertPlainTime(result, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index db1149cc4c..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainTime.from(datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f9212b45f3..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => Temporal.PlainTime.from(datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index ff20e6fefe..0000000000
--- a/polyfill/test/PlainTime/constructor/from/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => Temporal.PlainTime.from(datetime));
-});
diff --git a/polyfill/test/PlainTime/constructor/from/builtin.js b/polyfill/test/PlainTime/constructor/from/builtin.js
deleted file mode 100644
index 339f8f8631..0000000000
--- a/polyfill/test/PlainTime/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Tests that Temporal.PlainTime.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/constructor/from/calendar-temporal-object.js b/polyfill/test/PlainTime/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index 639a79426a..0000000000
--- a/polyfill/test/PlainTime/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.from step 4:
- 4. Return ? ToTemporalTime(_temporalTime_, _overflow_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- assert.throws(RangeError, () => Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainTime/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 074e386029..0000000000
--- a/polyfill/test/PlainTime/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainTime.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainTime.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainTime/constructor/from/length.js b/polyfill/test/PlainTime/constructor/from/length.js
deleted file mode 100644
index 3742bfe96d..0000000000
--- a/polyfill/test/PlainTime/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Temporal.PlainTime.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/from/name.js b/polyfill/test/PlainTime/constructor/from/name.js
deleted file mode 100644
index 7033050d2a..0000000000
--- a/polyfill/test/PlainTime/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Temporal.PlainTime.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/from/not-a-constructor.js b/polyfill/test/PlainTime/constructor/from/not-a-constructor.js
deleted file mode 100644
index 6dcfaf4b6b..0000000000
--- a/polyfill/test/PlainTime/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Temporal.PlainTime.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.from), false,
- "isConstructor(Temporal.PlainTime.from)");
diff --git a/polyfill/test/PlainTime/constructor/from/options-undefined.js b/polyfill/test/PlainTime/constructor/from/options-undefined.js
deleted file mode 100644
index 060636b2fe..0000000000
--- a/polyfill/test/PlainTime/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const fields = { hour: 12, minute: 60 };
-
-const explicit = Temporal.PlainTime.from(fields, undefined);
-assert.sameValue(explicit.minute, 59, "default overflow is constrain");
-
-const implicit = Temporal.PlainTime.from(fields);
-assert.sameValue(implicit.minute, 59, "default overflow is constrain");
diff --git a/polyfill/test/PlainTime/constructor/from/order-of-operations.js b/polyfill/test/PlainTime/constructor/from/order-of-operations.js
deleted file mode 100644
index afcfd14b89..0000000000
--- a/polyfill/test/PlainTime/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
-];
-const actual = [];
-const fields = {
- hour: 1.7,
- minute: 1.7,
- second: 1.7,
- millisecond: 1.7,
- microsecond: 1.7,
- nanosecond: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- if (key === "calendar") return Temporal.Calendar.from("iso8601");
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.PlainTime.from(argument);
-TemporalHelpers.assertPlainTime(result, 1, 1, 1, 1, 1, 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainTime/constructor/from/overflow-invalid-string.js b/polyfill/test/PlainTime/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index 7d974dd5e9..0000000000
--- a/polyfill/test/PlainTime/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.from step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainTime(12),
- { hour: 12 },
- "12:00",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.PlainTime.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/PlainTime/constructor/from/overflow-undefined.js b/polyfill/test/PlainTime/constructor/from/overflow-undefined.js
deleted file mode 100644
index 76f2e7d824..0000000000
--- a/polyfill/test/PlainTime/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.from step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainTime(12),
- "12:00",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.PlainTime.from(value, { overflow: undefined });
- TemporalHelpers.assertPlainTime(explicit, 12, 0, 0, 0, 0, 0, "overflow is ignored");
- const implicit = Temporal.PlainTime.from(value, {});
- TemporalHelpers.assertPlainTime(implicit, 12, 0, 0, 0, 0, 0, "overflow is ignored");
-});
-
-const propertyBag = { hour: 26 };
-const explicit = Temporal.PlainTime.from(propertyBag, { overflow: undefined });
-TemporalHelpers.assertPlainTime(explicit, 23, 0, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = Temporal.PlainTime.from(propertyBag, {});
-TemporalHelpers.assertPlainTime(implicit, 23, 0, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainTime/constructor/from/overflow-wrong-type.js b/polyfill/test/PlainTime/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index 2eac35a855..0000000000
--- a/polyfill/test/PlainTime/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.from step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainTime(12),
- { hour: 12 },
- "12:00",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.PlainTime.from(value, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 0, 0, 0, 0, 0, descr),
-));
diff --git a/polyfill/test/PlainTime/constructor/from/prop-desc.js b/polyfill/test/PlainTime/constructor/from/prop-desc.js
deleted file mode 100644
index f00247f31e..0000000000
--- a/polyfill/test/PlainTime/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: The "from" property of Temporal.PlainTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.from,
- "function",
- "`typeof PlainTime.from` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/constructor/from/subclassing-ignored.js b/polyfill/test/PlainTime/constructor/from/subclassing-ignored.js
deleted file mode 100644
index e999e09c5d..0000000000
--- a/polyfill/test/PlainTime/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.PlainTime,
- "from",
- ["12:34:56.987654321"],
- (result) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 987, 654, 321),
-);
diff --git a/polyfill/test/PlainTime/prototype/add/argument-not-object.js b/polyfill/test/PlainTime/prototype/add/argument-not-object.js
deleted file mode 100644
index d9680e852c..0000000000
--- a/polyfill/test/PlainTime/prototype/add/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Passing a primitive other than string to add() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-assert.throws(RangeError, () => instance.add(undefined), "undefined");
-assert.throws(RangeError, () => instance.add(null), "null");
-assert.throws(RangeError, () => instance.add(true), "boolean");
-assert.throws(RangeError, () => instance.add(""), "empty string");
-assert.throws(TypeError, () => instance.add(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.add(7), "number");
-assert.throws(RangeError, () => instance.add(7n), "bigint");
diff --git a/polyfill/test/PlainTime/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/PlainTime/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 81a981bd6e..0000000000
--- a/polyfill/test/PlainTime/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime();
-
-const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainTime(resultHours, 23, 25, 55, 595, 557, 201, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainTime(resultMinutes, 23, 59, 25, 926, 592, 621, "negative fractional minutes");
diff --git a/polyfill/test/PlainTime/prototype/add/argument-string.js b/polyfill/test/PlainTime/prototype/add/argument-string.js
deleted file mode 100644
index 2e4b12a51a..0000000000
--- a/polyfill/test/PlainTime/prototype/add/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-const result = instance.add("PT3M");
-TemporalHelpers.assertPlainTime(result, 12, 37, 56, 987, 654, 321);
diff --git a/polyfill/test/PlainTime/prototype/add/balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/add/balance-negative-time-units.js
deleted file mode 100644
index c21c8c01ca..0000000000
--- a/polyfill/test/PlainTime/prototype/add/balance-negative-time-units.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal.plaintime.prototype.add step 4:
- 4. Let _result_ be ? AddTime(_temporalTime_.[[ISOHour]], _temporalTime_.[[ISOMinute]], _temporalTime_.[[ISOSecond]], _temporalTime_.[[ISOMillisecond]], _temporalTime_.[[ISOMicrosecond]], _temporalTime_.[[ISONanosecond]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(1, 1, 1, 1, 1, 1);
-
-const result1 = time.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result1, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = time.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result2, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = time.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result3, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = time.add(new Temporal.Duration(0, 0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result4, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = time.add(new Temporal.Duration(0, 0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result5, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-const result6 = time.add(new Temporal.Duration(0, 0, 0, 0, -2));
-TemporalHelpers.assertPlainTime(result6, 23, 1, 1, 1, 1, 1, "hours mod 24");
diff --git a/polyfill/test/PlainTime/prototype/add/branding.js b/polyfill/test/PlainTime/prototype/add/branding.js
deleted file mode 100644
index 681834574b..0000000000
--- a/polyfill/test/PlainTime/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.PlainTime.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => add.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/add/builtin.js b/polyfill/test/PlainTime/prototype/add/builtin.js
deleted file mode 100644
index 5701cf749a..0000000000
--- a/polyfill/test/PlainTime/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: >
- Tests that Temporal.PlainTime.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index cbffd18225..0000000000
--- a/polyfill/test/PlainTime/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainTime.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaintime.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/add/length.js b/polyfill/test/PlainTime/prototype/add/length.js
deleted file mode 100644
index 9c20a771c0..0000000000
--- a/polyfill/test/PlainTime/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Temporal.PlainTime.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/add/name.js b/polyfill/test/PlainTime/prototype/add/name.js
deleted file mode 100644
index 9a882f9389..0000000000
--- a/polyfill/test/PlainTime/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Temporal.PlainTime.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 3c88355789..0000000000
--- a/polyfill/test/PlainTime/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainTime.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaintime.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 9ad3acf10a..0000000000
--- a/polyfill/test/PlainTime/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15, 30, 45, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainTime/prototype/add/not-a-constructor.js b/polyfill/test/PlainTime/prototype/add/not-a-constructor.js
deleted file mode 100644
index f7fe58e9f8..0000000000
--- a/polyfill/test/PlainTime/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: >
- Temporal.PlainTime.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.add), false,
- "isConstructor(Temporal.PlainTime.prototype.add)");
diff --git a/polyfill/test/PlainTime/prototype/add/order-of-operations.js b/polyfill/test/PlainTime/prototype/add/order-of-operations.js
deleted file mode 100644
index ee1993f389..0000000000
--- a/polyfill/test/PlainTime/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument);
-TemporalHelpers.assertPlainTime(result, 13, 35, 57, 988, 655, 322);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainTime/prototype/add/prop-desc.js b/polyfill/test/PlainTime/prototype/add/prop-desc.js
deleted file mode 100644
index 274aaea816..0000000000
--- a/polyfill/test/PlainTime/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: The "add" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.add,
- "function",
- "`typeof PlainTime.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/add/subclassing-ignored.js b/polyfill/test/PlainTime/prototype/add/subclassing-ignored.js
deleted file mode 100644
index 11c68bfe23..0000000000
--- a/polyfill/test/PlainTime/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.add
-description: Objects of a subclass are never created as return values for add()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainTime,
- [12, 34, 56, 987, 654, 321],
- "add",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 987, 654, 322),
-);
diff --git a/polyfill/test/PlainTime/prototype/calendar/branding.js b/polyfill/test/PlainTime/prototype/calendar/branding.js
deleted file mode 100644
index ccf2de2a6c..0000000000
--- a/polyfill/test/PlainTime/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/calendar/prop-desc.js b/polyfill/test/PlainTime/prototype/calendar/prop-desc.js
deleted file mode 100644
index d4ffd5312e..0000000000
--- a/polyfill/test/PlainTime/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.calendar
-description: The "calendar" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-wrong-type.js b/polyfill/test/PlainTime/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index d01e485613..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainTime.from({ minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(TypeError, () => instance.equals({}), "plain object");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 75db40bce7..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaintime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-assert(new Temporal.PlainTime(1, 1, 1, 1, 0, 999).equals(datetime));
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index f815332b38..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainTime(16, 50, 35, 0, 0, 1);
-const result = instance.equals(datetime);
-assert.sameValue(result, true);
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index a903404fcd..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.equals(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index a7545c0a20..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.equals(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index be2ce0f1ad..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => time.equals(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/branding.js b/polyfill/test/PlainTime/prototype/equals/branding.js
deleted file mode 100644
index 350a74dd43..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.PlainTime.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => equals.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/equals/builtin.js b/polyfill/test/PlainTime/prototype/equals/builtin.js
deleted file mode 100644
index 95b80823d0..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: >
- Tests that Temporal.PlainTime.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/equals/calendar-temporal-object.js b/polyfill/test/PlainTime/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 0234fb5444..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => time.equals({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/length.js b/polyfill/test/PlainTime/prototype/equals/length.js
deleted file mode 100644
index 8df59ba5ee..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Temporal.PlainTime.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/name.js b/polyfill/test/PlainTime/prototype/equals/name.js
deleted file mode 100644
index 0363131f13..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: Temporal.PlainTime.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/equals/not-a-constructor.js b/polyfill/test/PlainTime/prototype/equals/not-a-constructor.js
deleted file mode 100644
index ed4b817e8d..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: >
- Temporal.PlainTime.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.equals), false,
- "isConstructor(Temporal.PlainTime.prototype.equals)");
diff --git a/polyfill/test/PlainTime/prototype/equals/prop-desc.js b/polyfill/test/PlainTime/prototype/equals/prop-desc.js
deleted file mode 100644
index 7a99062d51..0000000000
--- a/polyfill/test/PlainTime/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.equals
-description: The "equals" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.equals,
- "function",
- "`typeof PlainTime.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/branding.js b/polyfill/test/PlainTime/prototype/getISOFields/branding.js
deleted file mode 100644
index 523925b7b8..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.PlainTime.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/builtin.js b/polyfill/test/PlainTime/prototype/getISOFields/builtin.js
deleted file mode 100644
index 352d8b55c0..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: >
- Tests that Temporal.PlainTime.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/field-names.js b/polyfill/test/PlainTime/prototype/getISOFields/field-names.js
deleted file mode 100644
index df16645aa9..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-const result = time.getISOFields();
-assert.sameValue(result.isoHour, 12, "isoHour result");
-assert.sameValue(result.isoMinute, 34, "isoMinute result");
-assert.sameValue(result.isoSecond, 56, "isoSecond result");
-assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
-assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
-assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/field-prop-desc.js b/polyfill/test/PlainTime/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index 3d4c7a6cb5..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoNanosecond",
- "isoSecond",
-];
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const result = time.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/field-traversal-order.js b/polyfill/test/PlainTime/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index 882bfda76e..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoNanosecond",
- "isoSecond",
-];
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const result = time.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/length.js b/polyfill/test/PlainTime/prototype/getISOFields/length.js
deleted file mode 100644
index 8e71933c38..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Temporal.PlainTime.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/name.js b/polyfill/test/PlainTime/prototype/getISOFields/name.js
deleted file mode 100644
index 9ad9e6438b..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: Temporal.PlainTime.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/not-a-constructor.js b/polyfill/test/PlainTime/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index 1160d5f9e1..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: >
- Temporal.PlainTime.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.getISOFields), false,
- "isConstructor(Temporal.PlainTime.prototype.getISOFields)");
diff --git a/polyfill/test/PlainTime/prototype/getISOFields/prop-desc.js b/polyfill/test/PlainTime/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index 534c3d0172..0000000000
--- a/polyfill/test/PlainTime/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.getisofields
-description: The "getISOFields" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.getISOFields,
- "function",
- "`typeof PlainTime.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/hour/branding.js b/polyfill/test/PlainTime/prototype/hour/branding.js
deleted file mode 100644
index 586b32246f..0000000000
--- a/polyfill/test/PlainTime/prototype/hour/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.hour
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const hour = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "hour").get;
-
-assert.sameValue(typeof hour, "function");
-
-assert.throws(TypeError, () => hour.call(undefined), "undefined");
-assert.throws(TypeError, () => hour.call(null), "null");
-assert.throws(TypeError, () => hour.call(true), "true");
-assert.throws(TypeError, () => hour.call(""), "empty string");
-assert.throws(TypeError, () => hour.call(Symbol()), "symbol");
-assert.throws(TypeError, () => hour.call(1), "1");
-assert.throws(TypeError, () => hour.call({}), "plain object");
-assert.throws(TypeError, () => hour.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => hour.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/hour/prop-desc.js b/polyfill/test/PlainTime/prototype/hour/prop-desc.js
deleted file mode 100644
index 48cab0f78b..0000000000
--- a/polyfill/test/PlainTime/prototype/hour/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.hour
-description: The "hour" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "hour");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/microsecond/branding.js b/polyfill/test/PlainTime/prototype/microsecond/branding.js
deleted file mode 100644
index 9054ea3f86..0000000000
--- a/polyfill/test/PlainTime/prototype/microsecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.microsecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const microsecond = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "microsecond").get;
-
-assert.sameValue(typeof microsecond, "function");
-
-assert.throws(TypeError, () => microsecond.call(undefined), "undefined");
-assert.throws(TypeError, () => microsecond.call(null), "null");
-assert.throws(TypeError, () => microsecond.call(true), "true");
-assert.throws(TypeError, () => microsecond.call(""), "empty string");
-assert.throws(TypeError, () => microsecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => microsecond.call(1), "1");
-assert.throws(TypeError, () => microsecond.call({}), "plain object");
-assert.throws(TypeError, () => microsecond.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => microsecond.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/microsecond/prop-desc.js b/polyfill/test/PlainTime/prototype/microsecond/prop-desc.js
deleted file mode 100644
index 6259a08777..0000000000
--- a/polyfill/test/PlainTime/prototype/microsecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.microsecond
-description: The "microsecond" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "microsecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/millisecond/branding.js b/polyfill/test/PlainTime/prototype/millisecond/branding.js
deleted file mode 100644
index 19c62c4b2d..0000000000
--- a/polyfill/test/PlainTime/prototype/millisecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.millisecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const millisecond = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "millisecond").get;
-
-assert.sameValue(typeof millisecond, "function");
-
-assert.throws(TypeError, () => millisecond.call(undefined), "undefined");
-assert.throws(TypeError, () => millisecond.call(null), "null");
-assert.throws(TypeError, () => millisecond.call(true), "true");
-assert.throws(TypeError, () => millisecond.call(""), "empty string");
-assert.throws(TypeError, () => millisecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => millisecond.call(1), "1");
-assert.throws(TypeError, () => millisecond.call({}), "plain object");
-assert.throws(TypeError, () => millisecond.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => millisecond.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/millisecond/prop-desc.js b/polyfill/test/PlainTime/prototype/millisecond/prop-desc.js
deleted file mode 100644
index 7da8095fcf..0000000000
--- a/polyfill/test/PlainTime/prototype/millisecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.millisecond
-description: The "millisecond" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "millisecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/minute/branding.js b/polyfill/test/PlainTime/prototype/minute/branding.js
deleted file mode 100644
index bd05ddebf3..0000000000
--- a/polyfill/test/PlainTime/prototype/minute/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.minute
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const minute = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "minute").get;
-
-assert.sameValue(typeof minute, "function");
-
-assert.throws(TypeError, () => minute.call(undefined), "undefined");
-assert.throws(TypeError, () => minute.call(null), "null");
-assert.throws(TypeError, () => minute.call(true), "true");
-assert.throws(TypeError, () => minute.call(""), "empty string");
-assert.throws(TypeError, () => minute.call(Symbol()), "symbol");
-assert.throws(TypeError, () => minute.call(1), "1");
-assert.throws(TypeError, () => minute.call({}), "plain object");
-assert.throws(TypeError, () => minute.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => minute.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/minute/prop-desc.js b/polyfill/test/PlainTime/prototype/minute/prop-desc.js
deleted file mode 100644
index 1d02d79a8b..0000000000
--- a/polyfill/test/PlainTime/prototype/minute/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.minute
-description: The "minute" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "minute");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/nanosecond/branding.js b/polyfill/test/PlainTime/prototype/nanosecond/branding.js
deleted file mode 100644
index b4c3354f48..0000000000
--- a/polyfill/test/PlainTime/prototype/nanosecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.nanosecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const nanosecond = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "nanosecond").get;
-
-assert.sameValue(typeof nanosecond, "function");
-
-assert.throws(TypeError, () => nanosecond.call(undefined), "undefined");
-assert.throws(TypeError, () => nanosecond.call(null), "null");
-assert.throws(TypeError, () => nanosecond.call(true), "true");
-assert.throws(TypeError, () => nanosecond.call(""), "empty string");
-assert.throws(TypeError, () => nanosecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => nanosecond.call(1), "1");
-assert.throws(TypeError, () => nanosecond.call({}), "plain object");
-assert.throws(TypeError, () => nanosecond.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => nanosecond.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/nanosecond/prop-desc.js b/polyfill/test/PlainTime/prototype/nanosecond/prop-desc.js
deleted file mode 100644
index f076273e15..0000000000
--- a/polyfill/test/PlainTime/prototype/nanosecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.nanosecond
-description: The "nanosecond" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "nanosecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/round/branding.js b/polyfill/test/PlainTime/prototype/round/branding.js
deleted file mode 100644
index e476134418..0000000000
--- a/polyfill/test/PlainTime/prototype/round/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const round = Temporal.PlainTime.prototype.round;
-
-assert.sameValue(typeof round, "function");
-
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => round.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/round/builtin.js b/polyfill/test/PlainTime/prototype/round/builtin.js
deleted file mode 100644
index b54eda61a1..0000000000
--- a/polyfill/test/PlainTime/prototype/round/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: >
- Tests that Temporal.PlainTime.prototype.round
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.round),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.round),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.round),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.round.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/round/length.js b/polyfill/test/PlainTime/prototype/round/length.js
deleted file mode 100644
index 0232e328a2..0000000000
--- a/polyfill/test/PlainTime/prototype/round/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Temporal.PlainTime.prototype.round.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.round, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/round/name.js b/polyfill/test/PlainTime/prototype/round/name.js
deleted file mode 100644
index e535cea8d8..0000000000
--- a/polyfill/test/PlainTime/prototype/round/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Temporal.PlainTime.prototype.round.name is "round".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.round, "name", {
- value: "round",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/round/not-a-constructor.js b/polyfill/test/PlainTime/prototype/round/not-a-constructor.js
deleted file mode 100644
index 65abb6eaea..0000000000
--- a/polyfill/test/PlainTime/prototype/round/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: >
- Temporal.PlainTime.prototype.round does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.round();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.round), false,
- "isConstructor(Temporal.PlainTime.prototype.round)");
diff --git a/polyfill/test/PlainTime/prototype/round/prop-desc.js b/polyfill/test/PlainTime/prototype/round/prop-desc.js
deleted file mode 100644
index cf3667adff..0000000000
--- a/polyfill/test/PlainTime/prototype/round/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: The "round" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.round,
- "function",
- "`typeof PlainTime.prototype.round` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "round", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/round/roundingincrement-nan.js b/polyfill/test/PlainTime/prototype/round/roundingincrement-nan.js
deleted file mode 100644
index c292460f39..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingincrement-nan.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.round step 11:
- 10. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-assert.throws(RangeError, () => time.round({ smallestUnit: 'second', roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainTime/prototype/round/roundingincrement-non-integer.js b/polyfill/test/PlainTime/prototype/round/roundingincrement-non-integer.js
deleted file mode 100644
index fcee98cb7b..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-const result = time.round({ smallestUnit: "nanosecond", roundingIncrement: 2.5 });
-TemporalHelpers.assertPlainTime(result, 12, 34, 56, 0, 0, 6, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainTime/prototype/round/roundingincrement-out-of-range.js b/polyfill/test/PlainTime/prototype/round/roundingincrement-out-of-range.js
deleted file mode 100644
index fb0493f205..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => time.round({ smallestUnit: "nanoseconds", roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => time.round({ smallestUnit: "nanoseconds", roundingIncrement: -1 }));
-assert.throws(RangeError, () => time.round({ smallestUnit: "nanoseconds", roundingIncrement: 0 }));
-assert.throws(RangeError, () => time.round({ smallestUnit: "nanoseconds", roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainTime/prototype/round/roundingincrement-undefined.js b/polyfill/test/PlainTime/prototype/round/roundingincrement-undefined.js
deleted file mode 100644
index 8cb695450e..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingincrement-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.round step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-const explicit = time.round({ smallestUnit: 'second', roundingIncrement: undefined });
-TemporalHelpers.assertPlainTime(explicit, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
-
-const implicit = time.round({ smallestUnit: 'second' });
-TemporalHelpers.assertPlainTime(implicit, 12, 34, 57, 0, 0, 0, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainTime/prototype/round/roundingincrement-wrong-type.js b/polyfill/test/PlainTime/prototype/round/roundingincrement-wrong-type.js
deleted file mode 100644
index ebd59bb799..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.round step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => time.round({ smallestUnit: 'second', roundingIncrement }),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 34, 57, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/round/roundingmode-invalid-string.js b/polyfill/test/PlainTime/prototype/round/roundingmode-invalid-string.js
deleted file mode 100644
index 8048aab5b5..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => time.round({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/round/roundingmode-undefined.js b/polyfill/test/PlainTime/prototype/round/roundingmode-undefined.js
deleted file mode 100644
index 9e02425c01..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingmode-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-
-const explicit1 = time.round({ smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertPlainTime(explicit1, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-const implicit1 = time.round({ smallestUnit: "microsecond" });
-TemporalHelpers.assertPlainTime(implicit1, 12, 34, 56, 123, 988, 0, "default roundingMode is halfExpand");
-
-const explicit2 = time.round({ smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertPlainTime(explicit2, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-const implicit2 = time.round({ smallestUnit: "millisecond" });
-TemporalHelpers.assertPlainTime(implicit2, 12, 34, 56, 124, 0, 0, "default roundingMode is halfExpand");
-
-const explicit3 = time.round({ smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertPlainTime(explicit3, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
-const implicit3 = time.round({ smallestUnit: "second" });
-TemporalHelpers.assertPlainTime(implicit3, 12, 34, 56, 0, 0, 0, "default roundingMode is halfExpand");
diff --git a/polyfill/test/PlainTime/prototype/round/roundingmode-wrong-type.js b/polyfill/test/PlainTime/prototype/round/roundingmode-wrong-type.js
deleted file mode 100644
index 74311402cb..0000000000
--- a/polyfill/test/PlainTime/prototype/round/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "halfExpand",
- (roundingMode) => time.round({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/round/smallestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/round/smallestunit-invalid-string.js
deleted file mode 100644
index 71a8d55f25..0000000000
--- a/polyfill/test/PlainTime/prototype/round/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => time.round({ smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/round/smallestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/round/smallestunit-plurals-accepted.js
deleted file mode 100644
index 32ab2bbfee..0000000000
--- a/polyfill/test/PlainTime/prototype/round/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 789, 999, 999);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => time.round({ smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/round/smallestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/round/smallestunit-wrong-type.js
deleted file mode 100644
index b1eb4b1e2f..0000000000
--- a/polyfill/test/PlainTime/prototype/round/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => time.round({ smallestUnit }),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 123, 988, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/round/subclassing-ignored.js b/polyfill/test/PlainTime/prototype/round/subclassing-ignored.js
deleted file mode 100644
index 2cb25eca98..0000000000
--- a/polyfill/test/PlainTime/prototype/round/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.round
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainTime,
- [12, 34, 56, 987, 654, 321],
- "round",
- [{ smallestUnit: 'second' }],
- (result) => TemporalHelpers.assertPlainTime(result, 12, 34, 57, 0, 0, 0),
-);
diff --git a/polyfill/test/PlainTime/prototype/second/branding.js b/polyfill/test/PlainTime/prototype/second/branding.js
deleted file mode 100644
index e984aaa80b..0000000000
--- a/polyfill/test/PlainTime/prototype/second/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.second
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const second = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "second").get;
-
-assert.sameValue(typeof second, "function");
-
-assert.throws(TypeError, () => second.call(undefined), "undefined");
-assert.throws(TypeError, () => second.call(null), "null");
-assert.throws(TypeError, () => second.call(true), "true");
-assert.throws(TypeError, () => second.call(""), "empty string");
-assert.throws(TypeError, () => second.call(Symbol()), "symbol");
-assert.throws(TypeError, () => second.call(1), "1");
-assert.throws(TypeError, () => second.call({}), "plain object");
-assert.throws(TypeError, () => second.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => second.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/second/prop-desc.js b/polyfill/test/PlainTime/prototype/second/prop-desc.js
deleted file mode 100644
index 89566763a1..0000000000
--- a/polyfill/test/PlainTime/prototype/second/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaintime.prototype.second
-description: The "second" property of Temporal.PlainTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainTime.prototype, "second");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index e1ab14b150..0000000000
--- a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaintime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const diff = new Temporal.PlainTime().since(datetime);
-
-TemporalHelpers.assertDuration(diff, 0, 0, 0, 0, -1, -1, -1, -1, 0, -999);
diff --git a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 815dbfc9f2..0000000000
--- a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainTime(15);
-const result = instance.since(datetime);
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, -1, -50, -35, 0, 0, -1);
diff --git a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index c8230cbea4..0000000000
--- a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.since(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index af347d52ba..0000000000
--- a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.since(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0f0a068687..0000000000
--- a/polyfill/test/PlainTime/prototype/since/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => time.since(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/since/balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/since/balance-negative-time-units.js
deleted file mode 100644
index 06e8e8140e..0000000000
--- a/polyfill/test/PlainTime/prototype/since/balance-negative-time-units.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal.plaintime.prototype.since step 12:
- 12. Let _result_ be ! DifferenceTime(_other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]], _temporalTime_.[[ISOHour]], _temporalTime_.[[ISOMinute]], _temporalTime_.[[ISOSecond]], _temporalTime_.[[ISOMillisecond]], _temporalTime_.[[ISOMicrosecond]], _temporalTime_.[[ISONanosecond]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(1, 1, 1, 1, 1, 1);
-
-const result1 = time.since(new Temporal.PlainTime(0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = time.since(new Temporal.PlainTime(0, 0, 0, 0, 2));
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = time.since(new Temporal.PlainTime(0, 0, 0, 2));
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = time.since(new Temporal.PlainTime(0, 0, 2));
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = time.since(new Temporal.PlainTime(0, 2));
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = time.since(new Temporal.PlainTime(2));
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/PlainTime/prototype/since/branding.js b/polyfill/test/PlainTime/prototype/since/branding.js
deleted file mode 100644
index 632ee5c8b3..0000000000
--- a/polyfill/test/PlainTime/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.PlainTime.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => since.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/since/builtin.js b/polyfill/test/PlainTime/prototype/since/builtin.js
deleted file mode 100644
index 6b123454a3..0000000000
--- a/polyfill/test/PlainTime/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: >
- Tests that Temporal.PlainTime.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/since/calendar-temporal-object.js b/polyfill/test/PlainTime/prototype/since/calendar-temporal-object.js
deleted file mode 100644
index 04bf4d7492..0000000000
--- a/polyfill/test/PlainTime/prototype/since/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => time.since({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainTime/prototype/since/largestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index 4a7de90c93..0000000000
--- a/polyfill/test/PlainTime/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => later.since(earlier, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index 4a8fe1df48..0000000000
--- a/polyfill/test/PlainTime/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/since/largestunit-undefined.js b/polyfill/test/PlainTime/prototype/since/largestunit-undefined.js
deleted file mode 100644
index 2893685f29..0000000000
--- a/polyfill/test/PlainTime/prototype/since/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-
-const explicit = later.since(earlier, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default largestUnit is hour");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default largestUnit is hour");
diff --git a/polyfill/test/PlainTime/prototype/since/largestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index d499ddf919..0000000000
--- a/polyfill/test/PlainTime/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "second",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 3661, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/since/length.js b/polyfill/test/PlainTime/prototype/since/length.js
deleted file mode 100644
index c908634bae..0000000000
--- a/polyfill/test/PlainTime/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Temporal.PlainTime.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/since/name.js b/polyfill/test/PlainTime/prototype/since/name.js
deleted file mode 100644
index 16c2d967dd..0000000000
--- a/polyfill/test/PlainTime/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Temporal.PlainTime.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/since/not-a-constructor.js b/polyfill/test/PlainTime/prototype/since/not-a-constructor.js
deleted file mode 100644
index eb8d40cc1d..0000000000
--- a/polyfill/test/PlainTime/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: >
- Temporal.PlainTime.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.since), false,
- "isConstructor(Temporal.PlainTime.prototype.since)");
diff --git a/polyfill/test/PlainTime/prototype/since/options-undefined.js b/polyfill/test/PlainTime/prototype/since/options-undefined.js
deleted file mode 100644
index 5971f0246f..0000000000
--- a/polyfill/test/PlainTime/prototype/since/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(18, 34, 56, 987, 654, 322);
-
-const explicit = later.since(earlier, undefined);
-assert.sameValue(explicit.hours, 6, "default largest unit is hours");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = later.since(earlier);
-assert.sameValue(implicit.hours, 6, "default largest unit is hours");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/PlainTime/prototype/since/prop-desc.js b/polyfill/test/PlainTime/prototype/since/prop-desc.js
deleted file mode 100644
index dc5dbda78b..0000000000
--- a/polyfill/test/PlainTime/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: The "since" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.since,
- "function",
- "`typeof PlainTime.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/since/roundingincrement-nan.js b/polyfill/test/PlainTime/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index 2c04580678..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainTime/prototype/since/roundingincrement-non-integer.js b/polyfill/test/PlainTime/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index 2795f426db..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainTime/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/PlainTime/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index 6e3d7a1c8b..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainTime/prototype/since/roundingincrement-undefined.js b/polyfill/test/PlainTime/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index 8dcd5c2bea..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainTime/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/PlainTime/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index 6db72c5dc3..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.since step 11:
- 11. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/since/roundingmode-invalid-string.js b/polyfill/test/PlainTime/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index 9778f33342..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/since/roundingmode-undefined.js b/polyfill/test/PlainTime/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index 91eaf05841..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-
-const explicit1 = later.since(earlier, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = later.since(earlier, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = later.since(earlier, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = later.since(earlier, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = later.since(earlier, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = later.since(earlier, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainTime/prototype/since/roundingmode-wrong-type.js b/polyfill/test/PlainTime/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index a7289d534d..0000000000
--- a/polyfill/test/PlainTime/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/since/smallestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 100e9957a0..0000000000
--- a/polyfill/test/PlainTime/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index afbc7ca765..0000000000
--- a/polyfill/test/PlainTime/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/since/smallestunit-undefined.js b/polyfill/test/PlainTime/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index c28576d54c..0000000000
--- a/polyfill/test/PlainTime/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/PlainTime/prototype/since/smallestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 35292e3667..0000000000
--- a/polyfill/test/PlainTime/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/subtract/argument-not-object.js b/polyfill/test/PlainTime/prototype/subtract/argument-not-object.js
deleted file mode 100644
index f8ea166d1d..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Passing a primitive other than string to subtract() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-assert.throws(RangeError, () => instance.subtract(undefined), "undefined");
-assert.throws(RangeError, () => instance.subtract(null), "null");
-assert.throws(RangeError, () => instance.subtract(true), "boolean");
-assert.throws(RangeError, () => instance.subtract(""), "empty string");
-assert.throws(TypeError, () => instance.subtract(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.subtract(7), "number");
-assert.throws(RangeError, () => instance.subtract(7n), "bigint");
diff --git a/polyfill/test/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 6ccef17a29..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime();
-
-const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainTime(resultHours, 0, 34, 4, 404, 442, 799, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainTime(resultMinutes, 0, 0, 34, 73, 407, 379, "negative fractional minutes");
diff --git a/polyfill/test/PlainTime/prototype/subtract/argument-string.js b/polyfill/test/PlainTime/prototype/subtract/argument-string.js
deleted file mode 100644
index 173b93a6ae..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-const result = instance.subtract("PT3M");
-TemporalHelpers.assertPlainTime(result, 12, 31, 56, 987, 654, 321);
diff --git a/polyfill/test/PlainTime/prototype/subtract/balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/subtract/balance-negative-time-units.js
deleted file mode 100644
index be65da5155..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/balance-negative-time-units.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal.plaintime.prototype.subtract step 4:
- 4. Let _result_ be ? AddTime(_temporalTime_.[[ISOHour]], _temporalTime_.[[ISOMinute]], _temporalTime_.[[ISOSecond]], _temporalTime_.[[ISOMillisecond]], _temporalTime_.[[ISOMicrosecond]], _temporalTime_.[[ISONanosecond]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(1, 1, 1, 1, 1, 1);
-
-const result1 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result1, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result2, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result3, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result4, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result5, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-const result6 = time.subtract(new Temporal.Duration(0, 0, 0, 0, 2));
-TemporalHelpers.assertPlainTime(result6, 23, 1, 1, 1, 1, 1, "hours mod 24");
diff --git a/polyfill/test/PlainTime/prototype/subtract/branding.js b/polyfill/test/PlainTime/prototype/subtract/branding.js
deleted file mode 100644
index 503d158caa..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.PlainTime.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/subtract/builtin.js b/polyfill/test/PlainTime/prototype/subtract/builtin.js
deleted file mode 100644
index f8b1d93ccf..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: >
- Tests that Temporal.PlainTime.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index a1aa1c47a4..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainTime.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plaintime.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/length.js b/polyfill/test/PlainTime/prototype/subtract/length.js
deleted file mode 100644
index 9c28212c18..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Temporal.PlainTime.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/name.js b/polyfill/test/PlainTime/prototype/subtract/name.js
deleted file mode 100644
index f8fa13204f..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Temporal.PlainTime.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index ebd611101f..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainTime.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plaintime.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainTime.from({ hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 8c12169628..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15, 30, 45, 987, 654, 321);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/not-a-constructor.js b/polyfill/test/PlainTime/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index dc5130b40e..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: >
- Temporal.PlainTime.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.subtract), false,
- "isConstructor(Temporal.PlainTime.prototype.subtract)");
diff --git a/polyfill/test/PlainTime/prototype/subtract/order-of-operations.js b/polyfill/test/PlainTime/prototype/subtract/order-of-operations.js
deleted file mode 100644
index 789f70df52..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument);
-TemporalHelpers.assertPlainTime(result, 11, 33, 55, 986, 653, 320);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainTime/prototype/subtract/prop-desc.js b/polyfill/test/PlainTime/prototype/subtract/prop-desc.js
deleted file mode 100644
index 56a2821980..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: The "subtract" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.subtract,
- "function",
- "`typeof PlainTime.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/subtract/subclassing-ignored.js b/polyfill/test/PlainTime/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 66df1a958b..0000000000
--- a/polyfill/test/PlainTime/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.subtract
-description: Objects of a subclass are never created as return values for subtract()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainTime,
- [12, 34, 56, 987, 654, 321],
- "subtract",
- [{ nanoseconds: 1 }],
- (result) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 987, 654, 320),
-);
diff --git a/polyfill/test/PlainTime/prototype/toJSON/branding.js b/polyfill/test/PlainTime/prototype/toJSON/branding.js
deleted file mode 100644
index 56b534e217..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.PlainTime.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/toJSON/builtin.js b/polyfill/test/PlainTime/prototype/toJSON/builtin.js
deleted file mode 100644
index a4fa6f763d..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: >
- Tests that Temporal.PlainTime.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/toJSON/length.js b/polyfill/test/PlainTime/prototype/toJSON/length.js
deleted file mode 100644
index db86c20499..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: Temporal.PlainTime.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toJSON/name.js b/polyfill/test/PlainTime/prototype/toJSON/name.js
deleted file mode 100644
index 5c5eb807e5..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: Temporal.PlainTime.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toJSON/not-a-constructor.js b/polyfill/test/PlainTime/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 4a890bdea4..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: >
- Temporal.PlainTime.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.toJSON), false,
- "isConstructor(Temporal.PlainTime.prototype.toJSON)");
diff --git a/polyfill/test/PlainTime/prototype/toJSON/prop-desc.js b/polyfill/test/PlainTime/prototype/toJSON/prop-desc.js
deleted file mode 100644
index 962b450095..0000000000
--- a/polyfill/test/PlainTime/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tojson
-description: The "toJSON" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.toJSON,
- "function",
- "`typeof PlainTime.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/branding.js b/polyfill/test/PlainTime/prototype/toLocaleString/branding.js
deleted file mode 100644
index bacc0ea7bf..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.PlainTime.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/builtin.js b/polyfill/test/PlainTime/prototype/toLocaleString/builtin.js
deleted file mode 100644
index 4ec490c27c..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: >
- Tests that Temporal.PlainTime.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/length.js b/polyfill/test/PlainTime/prototype/toLocaleString/length.js
deleted file mode 100644
index 73dc66e495..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: Temporal.PlainTime.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/locales-undefined.js b/polyfill/test/PlainTime/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index cbf18f7881..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const expected = defaultFormatter.format(time);
-
-const actualExplicit = time.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = time.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/name.js b/polyfill/test/PlainTime/prototype/toLocaleString/name.js
deleted file mode 100644
index fe49689fc1..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: Temporal.PlainTime.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/PlainTime/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index 351b7e6077..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: >
- Temporal.PlainTime.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.toLocaleString), false,
- "isConstructor(Temporal.PlainTime.prototype.toLocaleString)");
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/options-conflict.js b/polyfill/test/PlainTime/prototype/toLocaleString/options-conflict.js
deleted file mode 100644
index 3bc613c8f6..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/options-conflict.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Kate Miháliková. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sup-temporal.plaintime.prototype.tolocalestring
-description: >
- Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
-info: |
- Using sec-temporal-getdatetimeformatpattern:
- GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
-
- 1. If dateStyle is not undefined or timeStyle is not undefined, then
- a. For each row in Table 7, except the header row, do
- i. Let prop be the name given in the Property column of the row.
- ii. Let p be opt.[[]].
- iii. If p is not undefined, then
- 1. Throw a TypeError exception.
-features: [Temporal]
----*/
-
-// Table 14 - Supported fields + example value for each field
-const conflictingOptions = [
- [ "hour", "numeric" ],
- [ "minute", "numeric" ],
- [ "second", "numeric" ],
- [ "dayPeriod", "short" ],
- [ "fractionalSecondDigits", 3 ],
-];
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-assert.sameValue(typeof time.toLocaleString("en", { timeStyle: "short" }), "string");
-
-for (const [ option, value ] of conflictingOptions) {
- assert.throws(TypeError, function() {
- time.toLocaleString("en", { [option]: value, timeStyle: "short" });
- }, `time.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
-}
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/options-undefined.js b/polyfill/test/PlainTime/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 03c98be9da..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const expected = defaultFormatter.format(time);
-
-const actualExplicit = time.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default options are determined by Intl.DateTimeFormat");
-
-const actualImplicit = time.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default options are determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainTime/prototype/toLocaleString/prop-desc.js b/polyfill/test/PlainTime/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index d025d1b1c2..0000000000
--- a/polyfill/test/PlainTime/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.toLocaleString,
- "function",
- "`typeof PlainTime.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-plaindatetime.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-plaindatetime.js
deleted file mode 100644
index 6ea0d4cc4e..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-plaindatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.toplaindatetime
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.toplaindatetime step 3:
- 3. Set _temporalDate_ to ? ToTemporalDate(_temporalDate_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const time = new Temporal.PlainTime(6, 54, 32, 123, 456, 789);
- const result = time.toPlainDateTime(datetime);
- TemporalHelpers.assertPlainDateTime(result, 2000, 5, "M05", 2, 6, 54, 32, 123, 456, 789);
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 0ca2efd3bd..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f8a337841e..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 99bde536c2..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => time.toPlainDateTime(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/basic.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/basic.js
deleted file mode 100644
index 500a3e891f..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/basic.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.toplaindatetime
-description: Basic tests for toPlainDateTime().
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainTime = Temporal.PlainTime.from("11:30:23.123456789");
-
-const plainDate = plainTime.toPlainDateTime(Temporal.PlainDate.from("1976-11-18"));
-TemporalHelpers.assertPlainDateTime(plainDate, 1976, 11, "M11", 18, 11, 30, 23, 123, 456, 789, "PlainDate");
-
-const optionBag = plainTime.toPlainDateTime({ year: 1976, month: 11, day: 18 });
-TemporalHelpers.assertPlainDateTime(optionBag, 1976, 11, "M11", 18, 11, 30, 23, 123, 456, 789, "option bag");
-
-const string = plainTime.toPlainDateTime("1976-11-18");
-TemporalHelpers.assertPlainDateTime(string, 1976, 11, "M11", 18, 11, 30, 23, 123, 456, 789, "string");
-
-assert.throws(TypeError, () => plainTime.toPlainDateTime({ year: 1976 }), "missing properties");
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/branding.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/branding.js
deleted file mode 100644
index 16a5cd64a0..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDateTime = Temporal.PlainTime.prototype.toPlainDateTime;
-
-assert.sameValue(typeof toPlainDateTime, "function");
-
-assert.throws(TypeError, () => toPlainDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDateTime.call(null), "null");
-assert.throws(TypeError, () => toPlainDateTime.call(true), "true");
-assert.throws(TypeError, () => toPlainDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDateTime.call(1), "1");
-assert.throws(TypeError, () => toPlainDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/builtin.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/builtin.js
deleted file mode 100644
index 25f4d61902..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: >
- Tests that Temporal.PlainTime.prototype.toPlainDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.toPlainDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.toPlainDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.toPlainDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.toPlainDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-fields-iterable.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-fields-iterable.js
deleted file mode 100644
index b7f5e7bee7..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-fields-iterable.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaintime.prototype.toplaindatetime step 3:
- 3. Set _temporalDate_ to ? ToTemporalDate(_temporalDate_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const time = new Temporal.PlainTime(13, 3);
-const calendar = TemporalHelpers.calendarFieldsIterable();
-time.toPlainDateTime({ year: 2000, month: 5, day: 3, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-temporal-object.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-temporal-object.js
deleted file mode 100644
index c165f41d6d..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.toplaindatetime step 3:
- 3. Set _temporalDate_ to ? ToTemporalDate(_temporalDate_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const time = new Temporal.PlainTime(13, 3);
- const result = time.toPlainDateTime({ year: 2000, month: 5, day: 3, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js
deleted file mode 100644
index 95ed40d0ee..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.toPlainDateTime({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.toPlainDateTime({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/length.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/length.js
deleted file mode 100644
index 151a4b4259..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: Temporal.PlainTime.prototype.toPlainDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toPlainDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/name.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/name.js
deleted file mode 100644
index 0096b44aff..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: Temporal.PlainTime.prototype.toPlainDateTime.name is "toPlainDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toPlainDateTime, "name", {
- value: "toPlainDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/not-a-constructor.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/not-a-constructor.js
deleted file mode 100644
index e6ccf089c8..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: >
- Temporal.PlainTime.prototype.toPlainDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.toPlainDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.toPlainDateTime), false,
- "isConstructor(Temporal.PlainTime.prototype.toPlainDateTime)");
diff --git a/polyfill/test/PlainTime/prototype/toPlainDateTime/prop-desc.js b/polyfill/test/PlainTime/prototype/toPlainDateTime/prop-desc.js
deleted file mode 100644
index 6258633f33..0000000000
--- a/polyfill/test/PlainTime/prototype/toPlainDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-description: The "toPlainDateTime" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.toPlainDateTime,
- "function",
- "`typeof PlainTime.prototype.toPlainDateTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "toPlainDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toString/branding.js b/polyfill/test/PlainTime/prototype/toString/branding.js
deleted file mode 100644
index 903758004d..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.PlainTime.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toString.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/toString/builtin.js b/polyfill/test/PlainTime/prototype/toString/builtin.js
deleted file mode 100644
index 878b55efaf..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: >
- Tests that Temporal.PlainTime.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-invalid-string.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-invalid-string.js
deleted file mode 100644
index 2ab8852f59..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option not one of the allowed string values
-info: |
- sec-getstringornumberoption step 4:
- 4. If _stringValues_ is not *undefined* and _stringValues_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-
-assert.throws(RangeError, () => time.toString({ fractionalSecondDigits: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-nan.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-nan.js
deleted file mode 100644
index 0dcdd44981..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-assert.throws(RangeError, () => time.toString({ fractionalSecondDigits: NaN }));
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-non-integer.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-non-integer.js
deleted file mode 100644
index 9b7c5250e0..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-non-integer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Rounding for fractionalSecondDigits option
-info: |
- sec-getstringornumberoption step 3.b:
- b. Return floor(ℝ(_value_)).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-
-const string = time.toString({ fractionalSecondDigits: 2.5 });
-assert.sameValue(string, "12:34:56.98", "fractionalSecondDigits 2.5 floors to 2");
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-out-of-range.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-out-of-range.js
deleted file mode 100644
index d9b2f9c2ae..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-out-of-range.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option out of range
-info: |
- sec-getstringornumberoption step 3.a:
- a. If _value_ < _minimum_ or _value_ > _maximum_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-
-assert.throws(RangeError, () => time.toString({ fractionalSecondDigits: -1 }));
-assert.throws(RangeError, () => time.toString({ fractionalSecondDigits: 10 }));
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-undefined.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
deleted file mode 100644
index f4d320b047..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Fallback value for fractionalSecondDigits option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, *"stringOrNumber"*, *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-
-const explicit = time.toString({ fractionalSecondDigits: undefined });
-assert.sameValue(explicit, "12:34:56.98765", "default fractionalSecondDigits is auto");
-
-const implicit = time.toString({});
-assert.sameValue(implicit, "12:34:56.98765", "default fractionalSecondDigits is auto");
diff --git a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-wrong-type.js b/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-wrong-type.js
deleted file mode 100644
index 54440155aa..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/fractionalseconddigits-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Type conversions for fractionalSecondDigits option
-info: |
- sec-getoption steps 8–9:
- 8. Else if _type_ is Number, then
- a. Set _value_ to ? ToNumber(value).
- b. ...
- 9. Else,
- a. Set _value_ to ? ToString(value).
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.plaintime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650, 0);
-TemporalHelpers.checkFractionalSecondDigitsOptionWrongType(time);
diff --git a/polyfill/test/PlainTime/prototype/toString/length.js b/polyfill/test/PlainTime/prototype/toString/length.js
deleted file mode 100644
index a722f58ab5..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Temporal.PlainTime.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toString/name.js b/polyfill/test/PlainTime/prototype/toString/name.js
deleted file mode 100644
index 064547137f..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Temporal.PlainTime.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toString/not-a-constructor.js b/polyfill/test/PlainTime/prototype/toString/not-a-constructor.js
deleted file mode 100644
index d919698725..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: >
- Temporal.PlainTime.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.toString), false,
- "isConstructor(Temporal.PlainTime.prototype.toString)");
diff --git a/polyfill/test/PlainTime/prototype/toString/options-undefined.js b/polyfill/test/PlainTime/prototype/toString/options-undefined.js
deleted file mode 100644
index 9299685b31..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 650);
-const expected = "12:34:56.98765";
-
-const explicit = time.toString(undefined);
-assert.sameValue(explicit, expected, "default precision is auto and no rounding");
-
-const propertyImplicit = time.toString({});
-assert.sameValue(propertyImplicit, expected, "default precision is auto and no rounding");
-
-const implicit = time.toString();
-assert.sameValue(implicit, expected, "default precision is auto and no rounding");
diff --git a/polyfill/test/PlainTime/prototype/toString/prop-desc.js b/polyfill/test/PlainTime/prototype/toString/prop-desc.js
deleted file mode 100644
index 8c6639ce4f..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: The "toString" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.toString,
- "function",
- "`typeof PlainTime.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toString/roundingmode-invalid-string.js b/polyfill/test/PlainTime/prototype/toString/roundingmode-invalid-string.js
deleted file mode 100644
index 902833f63c..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => time.toString({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/toString/roundingmode-undefined.js b/polyfill/test/PlainTime/prototype/toString/roundingmode-undefined.js
deleted file mode 100644
index 3a427ce6c6..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-
-const explicit1 = time.toString({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1, "12:34:56.123987", "default roundingMode is trunc");
-const implicit1 = time.toString({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1, "12:34:56.123987", "default roundingMode is trunc");
-
-const explicit2 = time.toString({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2, "12:34:56.123", "default roundingMode is trunc");
-const implicit2 = time.toString({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2, "12:34:56.123", "default roundingMode is trunc");
-
-const explicit3 = time.toString({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3, "12:34:56", "default roundingMode is trunc");
-const implicit3 = time.toString({ smallestUnit: "second" });
-assert.sameValue(implicit3, "12:34:56", "default roundingMode is trunc");
diff --git a/polyfill/test/PlainTime/prototype/toString/roundingmode-wrong-type.js b/polyfill/test/PlainTime/prototype/toString/roundingmode-wrong-type.js
deleted file mode 100644
index 805fe39ea2..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => time.toString({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result, "12:34:56.123987", descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/toString/smallestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/toString/smallestunit-invalid-string.js
deleted file mode 100644
index 583b5696e9..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-assert.throws(RangeError, () => time.toString({ smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/toString/smallestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/toString/smallestunit-plurals-accepted.js
deleted file mode 100644
index 9c3525fae2..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 789, 999, 999);
-const validUnits = [
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => time.toString({ smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/toString/smallestunit-undefined.js b/polyfill/test/PlainTime/prototype/toString/smallestunit-undefined.js
deleted file mode 100644
index a64bf38293..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/smallestunit-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Fallback value for smallestUnit option
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-
-const explicit1 = time.toString({ smallestUnit: undefined, fractionalSecondDigits: 6 });
-assert.sameValue(explicit1, "12:34:56.123987", "default smallestUnit defers to fractionalSecondDigits");
-const implicit1 = time.toString({ fractionalSecondDigits: 6 });
-assert.sameValue(implicit1, "12:34:56.123987", "default smallestUnit defers to fractionalSecondDigits");
-
-const explicit2 = time.toString({ smallestUnit: undefined, fractionalSecondDigits: 3 });
-assert.sameValue(explicit2, "12:34:56.123", "default smallestUnit defers to fractionalSecondDigits");
-const implicit2 = time.toString({ fractionalSecondDigits: 3 });
-assert.sameValue(implicit2, "12:34:56.123", "default smallestUnit defers to fractionalSecondDigits");
diff --git a/polyfill/test/PlainTime/prototype/toString/smallestunit-valid-units.js b/polyfill/test/PlainTime/prototype/toString/smallestunit-valid-units.js
deleted file mode 100644
index beb5fe4cb1..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/smallestunit-valid-units.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Valid units for the smallestUnit option
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 789, 999, 999);
-
-assert.sameValue(time.toString({ smallestUnit: "minute" }), "12:34");
-assert.sameValue(time.toString({ smallestUnit: "second" }), "12:34:56");
-assert.sameValue(time.toString({ smallestUnit: "millisecond" }), "12:34:56.789");
-assert.sameValue(time.toString({ smallestUnit: "microsecond" }), "12:34:56.789999");
-assert.sameValue(time.toString({ smallestUnit: "nanosecond" }), "12:34:56.789999999");
-
-const notValid = [
- "year",
- "month",
- "week",
- "day",
- "hour",
-];
-
-notValid.forEach((smallestUnit) => {
- assert.throws(RangeError, () => time.toString({ smallestUnit }), smallestUnit);
-});
diff --git a/polyfill/test/PlainTime/prototype/toString/smallestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/toString/smallestunit-wrong-type.js
deleted file mode 100644
index 802bbf9af6..0000000000
--- a/polyfill/test/PlainTime/prototype/toString/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tostring
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => time.toString({ smallestUnit }),
- (result, descr) => assert.sameValue(result, "12:34:56.123987", descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-plaindatetime.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-plaindatetime.js
deleted file mode 100644
index fafd121de4..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-plaindatetime.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.tozoneddatetime
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.tozoneddatetime step 5:
- 5. Let _temporalDate_ be ? ToTemporalDate(_temporalDateLike_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const time = new Temporal.PlainTime(6, 54, 32, 123, 456, 789);
- const result = time.toZonedDateTime({ plainDate: datetime, timeZone: "UTC" });
- assert.sameValue(result.year, 2000, "year result");
- assert.sameValue(result.month, 5, "month result");
- assert.sameValue(result.day, 2, "day result");
- assert.sameValue(result.hour, 6, "hour result");
- assert.sameValue(result.minute, 54, "minute result");
- assert.sameValue(result.second, 32, "second result");
- assert.sameValue(result.millisecond, 123, "millisecond result");
- assert.sameValue(result.microsecond, 456, "microsecond result");
- assert.sameValue(result.nanosecond, 789, "nanosecond result");
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-primitive.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-primitive.js
deleted file mode 100644
index 9cef2cdeff..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-primitive.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.tozoneddatetime
-description: TypeError thrown if a primitive is passed as the argument
-info: |
- Temporal.PlainTime.prototype.toZonedDateTime ( item )
-
- 3. If Type(item) is not Object, then
- a. Throw a TypeError exception.
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainTime.from("00:00");
-
-assert.throws(TypeError, () => instance.toZonedDateTime(undefined), "undefined");
-assert.throws(TypeError, () => instance.toZonedDateTime(null), "null");
-assert.throws(TypeError, () => instance.toZonedDateTime(true), "true");
-assert.throws(TypeError, () => instance.toZonedDateTime(""), "empty string");
-assert.throws(TypeError, () => instance.toZonedDateTime(Symbol()), "symbol");
-assert.throws(TypeError, () => instance.toZonedDateTime(1), "1");
-assert.throws(TypeError, () => instance.toZonedDateTime(1n), "1n");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 09cba3a722..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.toZonedDateTime({ plainDate: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 089b5b358d..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.toZonedDateTime({ plainDate: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index eb8ce9d574..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => time.toZonedDateTime({ plainDate: datetime, timeZone: "UTC" }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/basic.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/basic.js
deleted file mode 100644
index 2cbd2cb167..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/basic.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.tozoneddatetime
-description: Basic tests for toZonedDateTime().
-features: [Temporal]
----*/
-
-const plainTime = Temporal.PlainTime.from('12:00');
-const plainDate = Temporal.PlainDate.from('2020-07-08');
-const timeZone = Temporal.TimeZone.from('America/Los_Angeles');
-
-const objects = plainTime.toZonedDateTime({ timeZone, plainDate });
-assert.sameValue(objects.epochNanoseconds, 1594234800000000000n, "objects: epochNanoseconds");
-assert.sameValue(objects.timeZone, timeZone, "objects: timeZone");
-
-const timeZoneString = plainTime.toZonedDateTime({ timeZone: "America/Los_Angeles", plainDate });
-assert.sameValue(timeZoneString.epochNanoseconds, 1594234800000000000n, "timeZone string: epochNanoseconds");
-assert.sameValue(timeZoneString.timeZone.id, "America/Los_Angeles", "timeZone string: timeZone");
-
-const plainDateString = plainTime.toZonedDateTime({ timeZone, plainDate: "2020-07-08" });
-assert.sameValue(plainDateString.epochNanoseconds, 1594234800000000000n, "plainDate string: epochNanoseconds");
-assert.sameValue(plainDateString.timeZone.id, "America/Los_Angeles", "plainDate string: timeZone");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/branding.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/branding.js
deleted file mode 100644
index 870960fd5a..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toZonedDateTime = Temporal.PlainTime.prototype.toZonedDateTime;
-
-assert.sameValue(typeof toZonedDateTime, "function");
-
-assert.throws(TypeError, () => toZonedDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toZonedDateTime.call(null), "null");
-assert.throws(TypeError, () => toZonedDateTime.call(true), "true");
-assert.throws(TypeError, () => toZonedDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toZonedDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toZonedDateTime.call(1), "1");
-assert.throws(TypeError, () => toZonedDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => toZonedDateTime.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/builtin.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/builtin.js
deleted file mode 100644
index 24d45e9e63..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: >
- Tests that Temporal.PlainTime.prototype.toZonedDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.toZonedDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.toZonedDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.toZonedDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.toZonedDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 6c10625d57..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.PlainTime();
-instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(1970, 1, 1, calendar), timeZone });
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-fields-iterable.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-fields-iterable.js
deleted file mode 100644
index 9bf110f06d..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-fields-iterable.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plaintime.prototype.tozoneddatetime step 5:
- 3. Let _temporalDate_ be ? ToTemporalDate(_temporalDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const time = new Temporal.PlainTime(13, 3);
-const calendar = TemporalHelpers.calendarFieldsIterable();
-time.toZonedDateTime({ plainDate: { year: 2000, month: 5, day: 3, calendar }, timeZone: "UTC" });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-temporal-object.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-temporal-object.js
deleted file mode 100644
index 400e9cbacb..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.tozoneddatetime step 5:
- 5. Let _temporalDate_ be ? ToTemporalDate(_temporalDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const time = new Temporal.PlainTime(13, 3);
- const result = time.toZonedDateTime({ timeZone: "UTC", plainDate: { year: 2000, month: 5, day: 3, calendar: temporalObject } });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/infinity-throws-rangeerror.js
deleted file mode 100644
index 7061b0fc39..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/length.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/length.js
deleted file mode 100644
index 62a7caaa07..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Temporal.PlainTime.prototype.toZonedDateTime.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toZonedDateTime, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/name.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/name.js
deleted file mode 100644
index 53fd0fe9f2..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Temporal.PlainTime.prototype.toZonedDateTime.name is "toZonedDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.toZonedDateTime, "name", {
- value: "toZonedDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/not-a-constructor.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/not-a-constructor.js
deleted file mode 100644
index 279ec0b92e..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: >
- Temporal.PlainTime.prototype.toZonedDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.toZonedDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.toZonedDateTime), false,
- "isConstructor(Temporal.PlainTime.prototype.toZonedDateTime)");
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js
deleted file mode 100644
index a17f45bbeb..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15);
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, [prop]: inf } }), `${prop} property cannot be ${inf} in plainDate`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, [prop]: obj } }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/prop-desc.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/prop-desc.js
deleted file mode 100644
index 0cd061a583..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: The "toZonedDateTime" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.toZonedDateTime,
- "function",
- "`typeof PlainTime.prototype.toZonedDateTime` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "toZonedDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 3ad1346c99..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const plainDate = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => time.toZonedDateTime({ plainDate, timeZone }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 3721ecbc3d..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const plainDate = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => time.toZonedDateTime({ plainDate, timeZone }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 2c45c48bb6..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const plainDate = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(TypeError, () => time.toZonedDateTime({ plainDate, timeZone }));
-});
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 2fd76d4a05..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.plaintime.prototype.tozoneddatetime step 10:
- 10. Let _instant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _temporalDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-builtintimezonegetinstantfor step 14:
- 14. Assert: _disambiguation_ is *"compatible"* or *"later"*.
- sec-temporal-builtintimezonegetinstantfor step 16:
- 16. Set _possibleInstants_ to ? GetPossibleInstantsFor(_timeZone_, _later_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "2000-05-02T12:34:56.987654321",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- time.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-}, expected1);
-
-// Same, but test the other path where the time doesn't exist and
-// GetPossibleInstantsFor is called again on a later time
-
-const expected2 = [
- "2030-01-01T00:30:00",
- "2030-01-01T01:30:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const time = new Temporal.PlainTime(0, 30);
- time.toZonedDateTime({ plainDate: new Temporal.PlainDate(2030, 1, 1), timeZone });
-}, expected2);
diff --git a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-string-datetime.js b/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-string-datetime.js
deleted file mode 100644
index 1a0b308000..0000000000
--- a/polyfill/test/PlainTime/prototype/toZonedDateTime/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime();
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone });
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.toZonedDateTime({ plainDate: new Temporal.PlainDate(2000, 5, 2), timeZone: { timeZone } });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 35c808f283..0000000000
--- a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.plaintime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const diff = new Temporal.PlainTime().until(datetime);
-
-TemporalHelpers.assertDuration(diff, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999);
diff --git a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 64031b2338..0000000000
--- a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.PlainTime(15);
-const result = instance.until(datetime);
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 4c579f3255..0000000000
--- a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.until(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c81871f722..0000000000
--- a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => time.until(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 5fb897fa7e..0000000000
--- a/polyfill/test/PlainTime/prototype/until/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => time.until(datetime));
-});
diff --git a/polyfill/test/PlainTime/prototype/until/balance-negative-time-units.js b/polyfill/test/PlainTime/prototype/until/balance-negative-time-units.js
deleted file mode 100644
index 7a30884b19..0000000000
--- a/polyfill/test/PlainTime/prototype/until/balance-negative-time-units.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal.plaintime.prototype.until step 11:
- 11. Let _result_ be ! DifferenceTime(_temporalTime_.[[ISOHour]], _temporalTime_.[[ISOMinute]], _temporalTime_.[[ISOSecond]], _temporalTime_.[[ISOMillisecond]], _temporalTime_.[[ISOMicrosecond]], _temporalTime_.[[ISONanosecond]], _other_.[[ISOHour]], _other_.[[ISOMinute]], _other_.[[ISOSecond]], _other_.[[ISOMillisecond]], _other_.[[ISOMicrosecond]], _other_.[[ISONanosecond]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(1, 1, 1, 1, 1, 1);
-
-const result1 = new Temporal.PlainTime(0, 0, 0, 0, 0, 2).until(time);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = new Temporal.PlainTime(0, 0, 0, 0, 2).until(time);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = new Temporal.PlainTime(0, 0, 0, 2).until(time);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = new Temporal.PlainTime(0, 0, 2).until(time);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = new Temporal.PlainTime(0, 2).until(time);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = new Temporal.PlainTime(2).until(time);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/PlainTime/prototype/until/branding.js b/polyfill/test/PlainTime/prototype/until/branding.js
deleted file mode 100644
index 44234d5887..0000000000
--- a/polyfill/test/PlainTime/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.PlainTime.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => until.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/until/builtin.js b/polyfill/test/PlainTime/prototype/until/builtin.js
deleted file mode 100644
index 669d05ea16..0000000000
--- a/polyfill/test/PlainTime/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: >
- Tests that Temporal.PlainTime.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/until/calendar-temporal-object.js b/polyfill/test/PlainTime/prototype/until/calendar-temporal-object.js
deleted file mode 100644
index 983c110723..0000000000
--- a/polyfill/test/PlainTime/prototype/until/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaintime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalTime(_other_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => time.until({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/PlainTime/prototype/until/largestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index 2683390e90..0000000000
--- a/polyfill/test/PlainTime/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => earlier.until(later, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index 54c94fabe3..0000000000
--- a/polyfill/test/PlainTime/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/until/largestunit-undefined.js b/polyfill/test/PlainTime/prototype/until/largestunit-undefined.js
deleted file mode 100644
index d333e67d7a..0000000000
--- a/polyfill/test/PlainTime/prototype/until/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-
-const explicit = earlier.until(later, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default largestUnit is hour");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default largestUnit is hour");
diff --git a/polyfill/test/PlainTime/prototype/until/largestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index 84aa559640..0000000000
--- a/polyfill/test/PlainTime/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "second",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 3661, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/until/length.js b/polyfill/test/PlainTime/prototype/until/length.js
deleted file mode 100644
index 0bae90dead..0000000000
--- a/polyfill/test/PlainTime/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Temporal.PlainTime.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/until/name.js b/polyfill/test/PlainTime/prototype/until/name.js
deleted file mode 100644
index bc519f1843..0000000000
--- a/polyfill/test/PlainTime/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Temporal.PlainTime.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/until/not-a-constructor.js b/polyfill/test/PlainTime/prototype/until/not-a-constructor.js
deleted file mode 100644
index 4e30b6dfe9..0000000000
--- a/polyfill/test/PlainTime/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: >
- Temporal.PlainTime.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.until), false,
- "isConstructor(Temporal.PlainTime.prototype.until)");
diff --git a/polyfill/test/PlainTime/prototype/until/options-undefined.js b/polyfill/test/PlainTime/prototype/until/options-undefined.js
deleted file mode 100644
index c4b3886713..0000000000
--- a/polyfill/test/PlainTime/prototype/until/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(18, 34, 56, 987, 654, 322);
-
-const explicit = earlier.until(later, undefined);
-assert.sameValue(explicit.hours, 6, "default largest unit is hours");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = earlier.until(later, undefined);
-assert.sameValue(implicit.hours, 6, "default largest unit is hours");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/PlainTime/prototype/until/prop-desc.js b/polyfill/test/PlainTime/prototype/until/prop-desc.js
deleted file mode 100644
index 1b62794ee3..0000000000
--- a/polyfill/test/PlainTime/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: The "until" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.until,
- "function",
- "`typeof PlainTime.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/until/roundingincrement-nan.js b/polyfill/test/PlainTime/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index 2dbdae0e16..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.until step 10:
- 10. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainTime/prototype/until/roundingincrement-non-integer.js b/polyfill/test/PlainTime/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index f875e90a7f..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainTime/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/PlainTime/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index 064f18ed40..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(12, 34, 56, 0, 0, 5);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainTime/prototype/until/roundingincrement-undefined.js b/polyfill/test/PlainTime/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index 4cea2367c0..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.until step 10:
- 10. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainTime/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/PlainTime/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index 216d77a53a..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plaintime.prototype.until step 10:
- 10. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/until/roundingmode-invalid-string.js b/polyfill/test/PlainTime/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index 48cd2a79bc..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/until/roundingmode-undefined.js b/polyfill/test/PlainTime/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index ca0e24aba9..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-
-const explicit1 = earlier.until(later, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = earlier.until(later, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 1, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = earlier.until(later, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = earlier.until(later, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainTime/prototype/until/roundingmode-wrong-type.js b/polyfill/test/PlainTime/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index c8ba9d59f6..0000000000
--- a/polyfill/test/PlainTime/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 123, 987, 500);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/until/smallestunit-invalid-string.js b/polyfill/test/PlainTime/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index 8e75933653..0000000000
--- a/polyfill/test/PlainTime/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainTime/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/PlainTime/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index e7a0def265..0000000000
--- a/polyfill/test/PlainTime/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const later = new Temporal.PlainTime(13, 35, 57, 988, 655, 322);
-const validUnits = [
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainTime/prototype/until/smallestunit-undefined.js b/polyfill/test/PlainTime/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index e48c684e9a..0000000000
--- a/polyfill/test/PlainTime/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 1, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/PlainTime/prototype/until/smallestunit-wrong-type.js b/polyfill/test/PlainTime/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index ebe6bf1705..0000000000
--- a/polyfill/test/PlainTime/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainTime(12, 34, 56, 0, 0, 0);
-const later = new Temporal.PlainTime(13, 35, 57, 987, 654, 321);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 1, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/valueOf/branding.js b/polyfill/test/PlainTime/prototype/valueOf/branding.js
deleted file mode 100644
index a92145f42e..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.PlainTime.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/valueOf/builtin.js b/polyfill/test/PlainTime/prototype/valueOf/builtin.js
deleted file mode 100644
index 643f92b1d6..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: >
- Tests that Temporal.PlainTime.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/valueOf/length.js b/polyfill/test/PlainTime/prototype/valueOf/length.js
deleted file mode 100644
index 56351e36f3..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: Temporal.PlainTime.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/valueOf/name.js b/polyfill/test/PlainTime/prototype/valueOf/name.js
deleted file mode 100644
index 379ecc02d4..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: Temporal.PlainTime.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/valueOf/not-a-constructor.js b/polyfill/test/PlainTime/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index 6ac96440a0..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: >
- Temporal.PlainTime.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.valueOf), false,
- "isConstructor(Temporal.PlainTime.prototype.valueOf)");
diff --git a/polyfill/test/PlainTime/prototype/valueOf/prop-desc.js b/polyfill/test/PlainTime/prototype/valueOf/prop-desc.js
deleted file mode 100644
index ab7a55c522..0000000000
--- a/polyfill/test/PlainTime/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.valueof
-description: The "valueOf" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.valueOf,
- "function",
- "`typeof PlainTime.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/with/argument-not-object.js b/polyfill/test/PlainTime/prototype/with/argument-not-object.js
deleted file mode 100644
index 4a13aa5422..0000000000
--- a/polyfill/test/PlainTime/prototype/with/argument-not-object.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: TypeError is thrown if a primitive is passed, including ISO strings
-info: |
- Temporal.PlainTime.prototype.with ( temporalTimeLike [ , options ] )
-
- 3. If Type(temporalTimeLike) is not Object, then
- a. Throw a TypeError exception.
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-assert.throws(TypeError, () => instance.with(undefined), "undefined");
-assert.throws(TypeError, () => instance.with(null), "null");
-assert.throws(TypeError, () => instance.with(true), "true");
-assert.throws(TypeError, () => instance.with(Symbol()), "symbol");
-assert.throws(TypeError, () => instance.with(1), "1");
-assert.throws(TypeError, () => instance.with(1n), "1n");
-
-const strings = [
- "",
- "18:05:42.577",
- "2019-05-17T18:05:42.577",
- "2019-05-17T18:05:42.577Z",
- "2019-05-17",
- "42",
-];
-for (const s of strings) {
- assert.throws(TypeError, () => instance.with(s), s);
-}
diff --git a/polyfill/test/PlainTime/prototype/with/basic.js b/polyfill/test/PlainTime/prototype/with/basic.js
deleted file mode 100644
index 6333cc882f..0000000000
--- a/polyfill/test/PlainTime/prototype/with/basic.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Basic tests for with().
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainTime = new Temporal.PlainTime(15, 23, 30, 123, 456, 789);
-TemporalHelpers.assertPlainTime(plainTime, 15, 23, 30, 123, 456, 789, "initial");
-
-const hour = plainTime.with({ hour: 3 });
-TemporalHelpers.assertPlainTime(hour, 3, 23, 30, 123, 456, 789, "hour");
-
-const minute = plainTime.with({ minute: 3 });
-TemporalHelpers.assertPlainTime(minute, 15, 3, 30, 123, 456, 789, "minute");
-
-const second = plainTime.with({ second: 3 });
-TemporalHelpers.assertPlainTime(second, 15, 23, 3, 123, 456, 789, "second");
-
-const millisecond = plainTime.with({ millisecond: 3 });
-TemporalHelpers.assertPlainTime(millisecond, 15, 23, 30, 3, 456, 789, "millisecond");
-
-const microsecond = plainTime.with({ microsecond: 3 });
-TemporalHelpers.assertPlainTime(microsecond, 15, 23, 30, 123, 3, 789, "microsecond");
-
-const nanosecond = plainTime.with({ nanosecond: 3 });
-TemporalHelpers.assertPlainTime(nanosecond, 15, 23, 30, 123, 456, 3, "nanosecond");
-
-const combined = plainTime.with({ minute: 8, nanosecond: 3 });
-TemporalHelpers.assertPlainTime(combined, 15, 8, 30, 123, 456, 3, "combined");
-
-const plural = plainTime.with({ minutes: 8, nanosecond: 3 });
-TemporalHelpers.assertPlainTime(plural, 15, 23, 30, 123, 456, 3, "plural");
diff --git a/polyfill/test/PlainTime/prototype/with/branding.js b/polyfill/test/PlainTime/prototype/with/branding.js
deleted file mode 100644
index e67ed99889..0000000000
--- a/polyfill/test/PlainTime/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.PlainTime.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainTime), "Temporal.PlainTime");
-assert.throws(TypeError, () => with_.call(Temporal.PlainTime.prototype), "Temporal.PlainTime.prototype");
diff --git a/polyfill/test/PlainTime/prototype/with/builtin.js b/polyfill/test/PlainTime/prototype/with/builtin.js
deleted file mode 100644
index 01059e6730..0000000000
--- a/polyfill/test/PlainTime/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: >
- Tests that Temporal.PlainTime.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainTime.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainTime.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainTime.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainTime.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainTime/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/PlainTime/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 8611613c2b..0000000000
--- a/polyfill/test/PlainTime/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.with({ [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainTime/prototype/with/length.js b/polyfill/test/PlainTime/prototype/with/length.js
deleted file mode 100644
index 05606553da..0000000000
--- a/polyfill/test/PlainTime/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Temporal.PlainTime.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/with/name.js b/polyfill/test/PlainTime/prototype/with/name.js
deleted file mode 100644
index f2cd06a7da..0000000000
--- a/polyfill/test/PlainTime/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Temporal.PlainTime.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainTime.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/with/not-a-constructor.js b/polyfill/test/PlainTime/prototype/with/not-a-constructor.js
deleted file mode 100644
index d26a2c657a..0000000000
--- a/polyfill/test/PlainTime/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: >
- Temporal.PlainTime.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainTime.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainTime.prototype.with), false,
- "isConstructor(Temporal.PlainTime.prototype.with)");
diff --git a/polyfill/test/PlainTime/prototype/with/options-invalid.js b/polyfill/test/PlainTime/prototype/with/options-invalid.js
deleted file mode 100644
index c0c64d4292..0000000000
--- a/polyfill/test/PlainTime/prototype/with/options-invalid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: TypeError thrown when a primitive is passed as the options argument
-features: [Temporal]
----*/
-
-const plainTime = new Temporal.PlainTime(12);
-for (const badOptions of [null, true, "hello", Symbol("foo"), 1, 1n]) {
- assert.throws(TypeError, () => plainTime.with({ hour: 3 }, badOptions));
-}
diff --git a/polyfill/test/PlainTime/prototype/with/options-undefined.js b/polyfill/test/PlainTime/prototype/with/options-undefined.js
deleted file mode 100644
index b79b6f916c..0000000000
--- a/polyfill/test/PlainTime/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-includes: [temporalHelpers.js]
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const fields = { minute: 60 };
-
-const explicit = time.with(fields, undefined);
-TemporalHelpers.assertPlainTime(explicit, 12, 59, 56, 987, 654, 321, "explicit");
-
-const implicit = time.with(fields);
-TemporalHelpers.assertPlainTime(implicit, 12, 59, 56, 987, 654, 321, "implicit");
-
-const lambda = time.with(fields, () => {});
-TemporalHelpers.assertPlainTime(lambda, 12, 59, 56, 987, 654, 321, "lambda");
diff --git a/polyfill/test/PlainTime/prototype/with/order-of-operations.js b/polyfill/test/PlainTime/prototype/with/order-of-operations.js
deleted file mode 100644
index 2571ba5cb8..0000000000
--- a/polyfill/test/PlainTime/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-const expected = [
- "get calendar",
- "get timeZone",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
-];
-const actual = [];
-const fields = {
- hour: 1.7,
- minute: 1.7,
- second: 1.7,
- millisecond: 1.7,
- microsecond: 1.7,
- nanosecond: 1.7,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertPlainTime(result, 1, 1, 1, 1, 1, 1);
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainTime/prototype/with/overflow-invalid-string.js b/polyfill/test/PlainTime/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index 796cec5fcf..0000000000
--- a/polyfill/test/PlainTime/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.prototype.with step 11:
- 11. Let _overflow_ be ? ToTemporalOverflow(_options_).
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12);
-const values = ["", "CONSTRAIN", "balance", "other string"];
-for (const overflow of values) {
- assert.throws(RangeError, () => time.with({ minute: 45 }, { overflow }));
-}
diff --git a/polyfill/test/PlainTime/prototype/with/overflow-undefined.js b/polyfill/test/PlainTime/prototype/with/overflow-undefined.js
deleted file mode 100644
index 49e4ae8f29..0000000000
--- a/polyfill/test/PlainTime/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.prototype.with step 11:
- 11. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12);
-const explicit = time.with({ minute: 67 }, { overflow: undefined });
-TemporalHelpers.assertPlainTime(explicit, 12, 59, 0, 0, 0, 0, "default overflow is constrain");
-const implicit = time.with({ minute: 67 }, {});
-TemporalHelpers.assertPlainTime(implicit, 12, 59, 0, 0, 0, 0, "default overflow is constrain");
diff --git a/polyfill/test/PlainTime/prototype/with/overflow-wrong-type.js b/polyfill/test/PlainTime/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index 8cbc874238..0000000000
--- a/polyfill/test/PlainTime/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.plaintime.prototype.with step 11:
- 11. Let _overflow_ be ? ToTemporalOverflow(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const time = new Temporal.PlainTime(12);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => time.with({ minute: 45 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainTime(result, 12, 45, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainTime/prototype/with/plaintimelike-invalid.js b/polyfill/test/PlainTime/prototype/with/plaintimelike-invalid.js
deleted file mode 100644
index 8e0bc2e31a..0000000000
--- a/polyfill/test/PlainTime/prototype/with/plaintimelike-invalid.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Throws TypeError on an argument that is not a PlainTime-like property bag
-features: [Temporal]
----*/
-
-const plainTime = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
-
-const tests = [
- // Step 3.
- [undefined],
- [null],
- [true],
- ["2019-05-17"],
- ["2019-05-17T12:34"],
- ["2019-05-17T12:34Z"],
- ["18:05:42.577"],
- ["42"],
- [Symbol(), "symbol"],
- [42, "number"],
- [42n, "bigint"],
-
- // Step 4.
- [Temporal.PlainDate.from("2019-05-17"), "PlainDate"],
- [Temporal.PlainDateTime.from("2019-05-17T12:34"), "PlainDateTime"],
- [Temporal.PlainMonthDay.from("2019-05-17"), "PlainMonthDay"],
- [Temporal.PlainTime.from("12:34"), "PlainTime"],
- [Temporal.PlainYearMonth.from("2019-05-17"), "PlainYearMonth"],
- [Temporal.ZonedDateTime.from("2019-05-17T12:34Z[UTC]"), "ZonedDateTime"],
-
- // Step 5-6.
- [{ hour: 14, calendar: "iso8601" }, "calendar"],
-
- // Step 7-8.
- [{ hour: 14, timeZone: "UTC" }, "timeZone"],
-
- // Step 9.
- [{}, "empty object"],
- [{ hours: 14 }, "only plural property"],
-];
-
-for (const [value, message = String(value)] of tests) {
- assert.throws(TypeError, () => plainTime.with(value), message);
-}
diff --git a/polyfill/test/PlainTime/prototype/with/prop-desc.js b/polyfill/test/PlainTime/prototype/with/prop-desc.js
deleted file mode 100644
index f92c178713..0000000000
--- a/polyfill/test/PlainTime/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: The "with" property of Temporal.PlainTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainTime.prototype.with,
- "function",
- "`typeof PlainTime.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.PlainTime.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainTime/prototype/with/subclassing-ignored.js b/polyfill/test/PlainTime/prototype/with/subclassing-ignored.js
deleted file mode 100644
index e06d11f76f..0000000000
--- a/polyfill/test/PlainTime/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.with
-description: Objects of a subclass are never created as return values for with()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainTime,
- [12, 34, 56, 987, 654, 321],
- "with",
- [{ nanosecond: 1 }],
- (result) => TemporalHelpers.assertPlainTime(result, 12, 34, 56, 987, 654, 1),
-);
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/builtin.js b/polyfill/test/PlainYearMonth/constructor/compare/builtin.js
deleted file mode 100644
index 49437b7595..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Tests that Temporal.PlainYearMonth.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/constructor/compare/calendar-fields-iterable.js
deleted file mode 100644
index d4776d7069..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/calendar-fields-iterable.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalYearMonth(_one_).
- 2. Set _two_ to ? ToTemporalYearMonth(_two_).
- sec-temporal-totemporalyearmonth step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainYearMonth.compare(
- { year: 2000, month: 5, calendar: calendar1 },
- { year: 2001, month: 6, calendar: calendar2 },
-);
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index 5f5275f1a3..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalYearMonth(_one_).
- 2. Set _two_ to ? ToTemporalYearMonth(_two_).
- sec-temporal-totemporaldate step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- Temporal.PlainYearMonth.compare(
- { year: 2000, month: 5, calendar: temporalObject },
- { year: 2001, month: 6, calendar: temporalObject },
- );
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index 4d8c1ebc00..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainYearMonth(2000, 5);
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare({ ...base, [prop]: inf }, other), `${prop} property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare(other, { ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare({ ...base, [prop]: obj1 }, other));
- assert.compareArray(calls1, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare(other, { ...base, [prop]: obj2 }));
- assert.compareArray(calls2, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/length.js b/polyfill/test/PlainYearMonth/constructor/compare/length.js
deleted file mode 100644
index f7b17076a1..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Temporal.PlainYearMonth.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/name.js b/polyfill/test/PlainYearMonth/constructor/compare/name.js
deleted file mode 100644
index bdbef0824f..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Temporal.PlainYearMonth.compare.name is "compare".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/not-a-constructor.js b/polyfill/test/PlainYearMonth/constructor/compare/not-a-constructor.js
deleted file mode 100644
index 3dac4d8d97..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: Temporal.PlainYearMonth.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.compare), false,
- "isConstructor(Temporal.PlainYearMonth.compare)");
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/prop-desc.js b/polyfill/test/PlainYearMonth/constructor/compare/prop-desc.js
deleted file mode 100644
index fe4b6ef4ac..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.compare
-description: The "compare" property of Temporal.PlainYearMonth
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.compare,
- "function",
- "`typeof PlainYearMonth.compare` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/compare/use-internal-slots.js b/polyfill/test/PlainYearMonth/constructor/compare/use-internal-slots.js
deleted file mode 100644
index 5b2fde22b2..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/compare/use-internal-slots.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-sec-temporal.yearmonth.compare
-description: compare() ignores the observable properties and uses internal slots
-features: [Temporal]
----*/
-
-function CustomError() {}
-
-class AvoidGettersYearMonth extends Temporal.PlainYearMonth {
- get year() {
- throw new CustomError();
- }
- get month() {
- throw new CustomError();
- }
-}
-
-const one = new AvoidGettersYearMonth(2000, 5);
-const two = new AvoidGettersYearMonth(2006, 3);
-assert.sameValue(Temporal.PlainYearMonth.compare(one, two), -1);
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/builtin.js b/polyfill/test/PlainYearMonth/constructor/constructor/builtin.js
deleted file mode 100644
index 2ab0c93e87..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Tests that Temporal.PlainYearMonth meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.PlainYearMonth.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-invalid.js b/polyfill/test/PlainYearMonth/constructor/constructor/calendar-invalid.js
deleted file mode 100644
index dd2fcc96f0..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-invalid.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth throws a RangeError if the calendar argument is invalid
-esid: sec-temporal.plainyearmonth
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"];
-const actual = [];
-const args = [
- TemporalHelpers.toPrimitiveObserver(actual, 1970, "year"),
- TemporalHelpers.toPrimitiveObserver(actual, 1, "month"),
- "local",
- TemporalHelpers.toPrimitiveObserver(actual, 1, "day")
-];
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/constructor/constructor/calendar-temporal-object.js
deleted file mode 100644
index e962ad9edb..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth step 5:
- 5. Let _calendar_ be ? ToTemporalCalendarWithISODefault(_calendarLike_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = new Temporal.PlainYearMonth(2000, 5, temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-undefined.js b/polyfill/test/PlainYearMonth/constructor/constructor/calendar-undefined.js
deleted file mode 100644
index 457e632418..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/calendar-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [Temporal]
----*/
-
-const args = [2000, 5];
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const dateExplicit = new Temporal.PlainYearMonth(...args, undefined);
-assert.sameValue(dateExplicit.calendar.toString(), "iso8601");
-
-const dateImplicit = new Temporal.PlainYearMonth(...args);
-assert.sameValue(dateImplicit.calendar.toString(), "iso8601");
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/constructor.js b/polyfill/test/PlainYearMonth/constructor/constructor/constructor.js
deleted file mode 100644
index eee25f7bff..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Temporal.PlainYearMonth constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.PlainYearMonth());
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/constructor/constructor/infinity-throws-rangeerror.js
deleted file mode 100644
index b81f09b70e..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth throws a RangeError if any numerical value is Infinity
-esid: sec-temporal.plainyearmonth
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const isoCalendar = Temporal.Calendar.from('iso8601');
-
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(1970, Infinity));
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(1970, 1, isoCalendar, Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(Infinity, "year"), O(1, "month"), () => "iso8601", O(1, "day")],
- ["get year.valueOf", "call year.valueOf"]
- ],
- [
- "infinite month",
- [O(1970, "year"), O(Infinity, "month"), () => "iso8601", O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(1970, "year"), O(1, "month"), () => "iso8601", O(Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainYearMonth(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/length.js b/polyfill/test/PlainYearMonth/constructor/constructor/length.js
deleted file mode 100644
index b0874fc3eb..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Temporal.PlainYearMonth.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/missing-arguments.js b/polyfill/test/PlainYearMonth/constructor/constructor/missing-arguments.js
deleted file mode 100644
index f19be5b592..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: RangeError thrown after processing given args when invoked without all required args
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "valueOf year",
-];
-const actual = [];
-const args = [
- { valueOf() { actual.push("valueOf year"); return 1; } },
-];
-
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(...args));
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/name.js b/polyfill/test/PlainYearMonth/constructor/constructor/name.js
deleted file mode 100644
index b999180eeb..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: Temporal.PlainYearMonth.name is "PlainYearMonth"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth, "name", {
- value: "PlainYearMonth",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/constructor/constructor/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 0f65524ae8..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth throws a RangeError if any numerical value is -Infinity
-esid: sec-temporal.plainyearmonth
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const isoCalendar = Temporal.Calendar.from('iso8601');
-
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(-Infinity, 1));
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(1970, -Infinity));
-assert.throws(RangeError, () => new Temporal.PlainYearMonth(1970, 1, isoCalendar, -Infinity));
-
-const O = (primitiveValue, propertyName) => (calls) => TemporalHelpers.toPrimitiveObserver(calls, primitiveValue, propertyName);
-const tests = [
- [
- "infinite year",
- [O(-Infinity, "year"), O(1, "month"), () => "iso8601", O(1, "day")],
- ["get year.valueOf", "call year.valueOf"]
- ],
- [
- "infinite month",
- [O(1970, "year"), O(-Infinity, "month"), () => "iso8601", O(1, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf"]
- ],
- [
- "infinite day",
- [O(1970, "year"), O(1, "month"), () => "iso8601", O(-Infinity, "day")],
- ["get year.valueOf", "call year.valueOf", "get month.valueOf", "call month.valueOf", "get day.valueOf", "call day.valueOf"]
- ],
-];
-
-for (const [description, args, expected] of tests) {
- const actual = [];
- const args_ = args.map((o) => o(actual));
- assert.throws(RangeError, () => new Temporal.PlainYearMonth(...args_), description);
- assert.compareArray(actual, expected, `${description} order of operations`);
-}
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/prop-desc.js b/polyfill/test/PlainYearMonth/constructor/constructor/prop-desc.js
deleted file mode 100644
index 0ac93b2ebc..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: The "PlainYearMonth" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth,
- "function",
- "`typeof PlainYearMonth` is `function`"
-);
-
-verifyProperty(Temporal, "PlainYearMonth", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/constructor/refisoday-undefined.js b/polyfill/test/PlainYearMonth/constructor/constructor/refisoday-undefined.js
deleted file mode 100644
index 95496c7764..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/constructor/refisoday-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth
-description: referenceISODay argument defaults to 1 if not given
-features: [Temporal]
----*/
-
-const calendar = new Temporal.Calendar("iso8601");
-const args = [2000, 5, calendar];
-
-const dateExplicit = new Temporal.PlainYearMonth(...args, undefined);
-assert.sameValue(dateExplicit.getISOFields().isoDay, 1, "default referenceISODay is 1");
-
-const dateImplicit = new Temporal.PlainYearMonth(...args);
-assert.sameValue(dateImplicit.getISOFields().isoDay, 1, "default referenceISODay is 1");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/argument-string.js b/polyfill/test/PlainYearMonth/constructor/from/argument-string.js
deleted file mode 100644
index b3a4885726..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/argument-string.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const plainYearMonth = Temporal.PlainYearMonth.from("1970-12");
-TemporalHelpers.assertPlainYearMonth(plainYearMonth, 1970, 12, "M12");
-const fields = plainYearMonth.getISOFields();
-assert.sameValue(fields.calendar.id, "iso8601");
-assert.sameValue(fields.isoDay, 1, "isoDay");
-assert.sameValue(fields.isoMonth, 12, "isoMonth");
-assert.sameValue(fields.isoYear, 1970, "isoYear");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/builtin.js b/polyfill/test/PlainYearMonth/constructor/from/builtin.js
deleted file mode 100644
index b586fb9922..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Tests that Temporal.PlainYearMonth.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/constructor/from/calendar-fields-iterable.js
deleted file mode 100644
index 4676d5ab08..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/calendar-fields-iterable.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.from step 3:
- 3. Return ? ToTemporalYearMonth(_item_, _options_).
- sec-temporal-totemporalyearmonth step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-Temporal.PlainYearMonth.from({ year: 2000, month: 5, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index f2d3897f46..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth.from step 3:
- 3. Return ? ToTemporalYearMonth(_item_, _options_).
- sec-temporal-totemporaldate step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.PlainYearMonth.from({ year: 2000, month: 5, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 21a03bca67..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainYearMonth.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.PlainYearMonth.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/length.js b/polyfill/test/PlainYearMonth/constructor/from/length.js
deleted file mode 100644
index 40235dcb22..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Temporal.PlainYearMonth.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/name.js b/polyfill/test/PlainYearMonth/constructor/from/name.js
deleted file mode 100644
index 83973eecfe..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Temporal.PlainYearMonth.from.name is "from".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/not-a-constructor.js b/polyfill/test/PlainYearMonth/constructor/from/not-a-constructor.js
deleted file mode 100644
index c48300ab8f..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Temporal.PlainYearMonth.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.from), false,
- "isConstructor(Temporal.PlainYearMonth.from)");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/options-undefined.js b/polyfill/test/PlainYearMonth/constructor/from/options-undefined.js
deleted file mode 100644
index 88573c9c10..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const fields = { year: 2000, month: 13 };
-
-const explicit = Temporal.PlainYearMonth.from(fields, undefined);
-assert.sameValue(explicit.month, 12, "default overflow is constrain");
-
-const implicit = Temporal.PlainYearMonth.from(fields);
-assert.sameValue(implicit.month, 12, "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/order-of-operations.js b/polyfill/test/PlainYearMonth/constructor/from/order-of-operations.js
deleted file mode 100644
index f6f2ef142e..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/order-of-operations.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Properties on an object passed to from() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get calendar",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- if (key === "calendar") return Temporal.Calendar.from("iso8601");
- const result = target[key];
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = Temporal.PlainYearMonth.from(argument);
-TemporalHelpers.assertPlainYearMonth(result, 1, 1, "M01");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/overflow-invalid-string.js b/polyfill/test/PlainYearMonth/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index b0e4fb0931..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalyearmonth steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- e. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalYearMonth]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalYearMonth(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainYearMonth(2000, 5),
- { year: 2000, month: 5 },
- "2000-05",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.PlainYearMonth.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/overflow-undefined.js b/polyfill/test/PlainYearMonth/constructor/from/overflow-undefined.js
deleted file mode 100644
index 1d906e3c27..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalyearmonth steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- e. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalYearMonth]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalYearMonth(_item_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainYearMonth(2000, 5),
- "2000-05",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.PlainYearMonth.from(value, { overflow: undefined });
- TemporalHelpers.assertPlainYearMonth(explicit, 2000, 5, "M05", "overflow is ignored");
- const implicit = Temporal.PlainYearMonth.from(value, {});
- TemporalHelpers.assertPlainYearMonth(implicit, 2000, 5, "M05", "overflow is ignored");
-});
-
-const propertyBag = { year: 2000, month: 13 };
-const explicit = Temporal.PlainYearMonth.from(propertyBag, { overflow: undefined });
-TemporalHelpers.assertPlainYearMonth(explicit, 2000, 12, "M12", "default overflow is constrain");
-const implicit = Temporal.PlainYearMonth.from(propertyBag, {});
-TemporalHelpers.assertPlainYearMonth(implicit, 2000, 12, "M12", "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/constructor/from/overflow-wrong-type.js b/polyfill/test/PlainYearMonth/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index 5eacc955ff..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-totemporalyearmonth steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- e. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
- 3. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalYearMonth]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- b. Return ...
- 3. Return ? ToTemporalYearMonth(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.PlainYearMonth(2000, 5),
- { year: 2000, month: 5 },
- "2000-05",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.PlainYearMonth.from(value, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05", descr),
-));
diff --git a/polyfill/test/PlainYearMonth/constructor/from/prop-desc.js b/polyfill/test/PlainYearMonth/constructor/from/prop-desc.js
deleted file mode 100644
index 7f4c318bb7..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: The "from" property of Temporal.PlainYearMonth
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.from,
- "function",
- "`typeof PlainYearMonth.from` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/constructor/from/subclassing-ignored.js b/polyfill/test/PlainYearMonth/constructor/from/subclassing-ignored.js
deleted file mode 100644
index 5e91cc04a5..0000000000
--- a/polyfill/test/PlainYearMonth/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.PlainYearMonth,
- "from",
- ["2000-05"],
- (result) => TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05"),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/add/argument-not-object.js b/polyfill/test/PlainYearMonth/prototype/add/argument-not-object.js
deleted file mode 100644
index 38d7029fd6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Passing a primitive other than string to add() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-assert.throws(RangeError, () => instance.add(undefined), "undefined");
-assert.throws(RangeError, () => instance.add(null), "null");
-assert.throws(RangeError, () => instance.add(true), "boolean");
-assert.throws(RangeError, () => instance.add(""), "empty string");
-assert.throws(TypeError, () => instance.add(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.add(7), "number");
-assert.throws(RangeError, () => instance.add(7n), "bigint");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/PlainYearMonth/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 9223156548..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-
-const resultHours = instance.add("-PT24.567890123H");
-TemporalHelpers.assertPlainYearMonth(resultHours, 2000, 5, "M05", "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-TemporalHelpers.assertPlainYearMonth(resultMinutes, 2000, 5, "M05", "negative fractional minutes");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/argument-string.js b/polyfill/test/PlainYearMonth/prototype/add/argument-string.js
deleted file mode 100644
index 73c4fdc69b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-const result = instance.add("P3M");
-TemporalHelpers.assertPlainYearMonth(result, 2000, 8, "M08");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/branding.js b/polyfill/test/PlainYearMonth/prototype/add/branding.js
deleted file mode 100644
index e7b67165b7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.PlainYearMonth.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => add.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/builtin.js b/polyfill/test/PlainYearMonth/prototype/add/builtin.js
deleted file mode 100644
index 5023a4b1e7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: >
- Tests that Temporal.PlainYearMonth.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments-extra-options.js b/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments-extra-options.js
deleted file mode 100644
index dcb5c382b7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments-extra-options.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: PlainYearMonth.prototype.add should pass extra fields in copied options objects.
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 5. Let yearMonth be ? Invoke(calendar, "yearMonthFromFields", « fields, options »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get extra",
- "get overflow",
-];
-const options = new Proxy({ extra: 5 }, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options) {
- const result = super.dateAdd(date, duration, options);
- options.overflow = 'meatloaf';
- return result;
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.notSameValue(args[1], options, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainYearMonth = new Temporal.PlainYearMonth(2000, 3, new CustomCalendar());
-const result = plainYearMonth.add({ months: 5 }, options);
-TemporalHelpers.assertPlainYearMonth(result, 2000, 8, "M08");
-assert.compareArray(actual, expected, "extra field options object order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments.js b/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments.js
deleted file mode 100644
index dd46462d75..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/calendar-arguments.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: PlainYearMonth.prototype.add should respect calendar arguments and pass copied options objects.
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 5. Let yearMonth be ? Invoke(calendar, "yearMonthFromFields", « fields, options »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get overflow",
- "get overflow",
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const options = new Proxy({ overflow: "constrain" }, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options) {
- const result = super.dateAdd(date, duration, options);
- options.overflow = 'meatloaf';
- return result;
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.notSameValue(args[1], options, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-
-const plainYearMonth = new Temporal.PlainYearMonth(2000, 3, new CustomCalendar());
-const result = plainYearMonth.add({ months: 10 }, options);
-TemporalHelpers.assertPlainYearMonth(result, 2001, 1, "M01");
-assert.compareArray(actual, expected, "copied options object order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/calendar-daysinmonth-wrong-value.js b/polyfill/test/PlainYearMonth/prototype/add/calendar-daysinmonth-wrong-value.js
deleted file mode 100644
index d44cd9105b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/calendar-daysinmonth-wrong-value.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: >
- The appropriate error is thrown if the calendar's daysInMonth method returns a
- value that cannot be converted to a positive integer
-includes: [compareArray.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-const actual = [];
-class CalendarDaysInMonthWrongValue extends Temporal.Calendar {
- constructor(badValue) {
- super("iso8601");
- this._badValue = badValue;
- }
- dateFromFields(fields, options) {
- actual.push("call dateFromFields");
- return super.dateFromFields(fields, options);
- }
- daysInMonth() {
- return this._badValue;
- }
-}
-// daysInMonth is only called if we are adding a negative duration
-const duration = new Temporal.Duration(-1, -1);
-
-[Infinity, -Infinity, -42].forEach((badValue) => {
- const calendar = new CalendarDaysInMonthWrongValue(badValue);
- const yearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(RangeError, () => yearMonth.add(duration), `daysInMonth ${badValue}`);
- assert.compareArray(actual, [], "dateFromFields not called");
-});
-
-[Symbol('foo'), 31n].forEach((badValue) => {
- const calendar = new CalendarDaysInMonthWrongValue(badValue);
- const yearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(TypeError, () => yearMonth.add(duration), `daysInMonth ${typeof badValue}`);
- assert.compareArray(actual, [], "dateFromFields not called");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/add/calendar-fields-iterable.js
deleted file mode 100644
index bc7a4053da..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.add step 8:
- 8. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.add({ months: 1 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/add/infinity-throws-rangeerror.js
deleted file mode 100644
index c7c90ab986..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth.prototype.add throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plainyearmonth.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/length.js b/polyfill/test/PlainYearMonth/prototype/add/length.js
deleted file mode 100644
index 9923124f26..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Temporal.PlainYearMonth.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/name.js b/polyfill/test/PlainYearMonth/prototype/add/name.js
deleted file mode 100644
index 824454bdd2..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Temporal.PlainYearMonth.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/add/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index ce4bd1db75..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth.prototype.add throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plainyearmonth.prototype.add
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.add({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index dfcd4a476b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/add/not-a-constructor.js
deleted file mode 100644
index 041790967b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: >
- Temporal.PlainYearMonth.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.add), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.add)");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/add/options-undefined.js
deleted file mode 100644
index c13d1ca842..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/options-undefined.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-// overflow option has no effect on addition in the ISO calendar, so verify this
-// with a custom calendar
-class CheckedAdd extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options, constructor) {
- this.called = true;
- assert.notSameValue(options, undefined, "options not undefined");
- return super.dateAdd(date, duration, options, constructor);
- }
-}
-const calendar = new CheckedAdd();
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 1, calendar);
-const duration = { months: 1 };
-
-yearmonth.add(duration, undefined);
-yearmonth.add(duration);
-
-assert(calendar.called);
diff --git a/polyfill/test/PlainYearMonth/prototype/add/order-of-operations.js b/polyfill/test/PlainYearMonth/prototype/add/order-of-operations.js
deleted file mode 100644
index a4ee7787e0..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Properties on an object passed to add() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.add(argument);
-TemporalHelpers.assertPlainYearMonth(result, 2001, 6, "M06");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/overflow-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/add/overflow-invalid-string.js
deleted file mode 100644
index 03c9d816f6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.add steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/add/overflow-undefined.js b/polyfill/test/PlainYearMonth/prototype/add/overflow-undefined.js
deleted file mode 100644
index 7f27befe44..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/overflow-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.add steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// In the ISO calendar, PlainYearMonth.prototype.add() actually ignores the
-// overflow option. There is no addition in the ISO calendar that we could test
-// which would actually show a difference between the 'constrain' and 'reject'
-// values.
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-const explicit = yearmonth.add(duration, { overflow: undefined });
-TemporalHelpers.assertPlainYearMonth(explicit, 2001, 6, "M06", "default overflow is constrain");
-const implicit = yearmonth.add(duration, {});
-TemporalHelpers.assertPlainYearMonth(implicit, 2001, 6, "M06", "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/overflow-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/add/overflow-wrong-type.js
deleted file mode 100644
index 30aba637d6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/overflow-wrong-type.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.add steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: null }), "null");
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: true }), "true");
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: false }), "false");
-assert.throws(TypeError, () => yearmonth.add(duration, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => yearmonth.add(duration, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateAdd() and then once again by
-// calendar.yearMonthFromFields().
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = yearmonth.add(duration, { overflow: observer });
-TemporalHelpers.assertPlainYearMonth(result, 2001, 6, "M06", "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/add/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/add/prop-desc.js
deleted file mode 100644
index 927ceb44b0..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: The "add" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.add,
- "function",
- "`typeof PlainYearMonth.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/add/subclassing-ignored.js b/polyfill/test/PlainYearMonth/prototype/add/subclassing-ignored.js
deleted file mode 100644
index 37f49b9a20..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.add
-description: Objects of a subclass are never created as return values for add()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainYearMonth,
- [2000, 5],
- "add",
- [{ months: 1 }],
- (result) => TemporalHelpers.assertPlainYearMonth(result, 2000, 6, "M06"),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/calendar/branding.js b/polyfill/test/PlainYearMonth/prototype/calendar/branding.js
deleted file mode 100644
index 4235571465..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => calendar.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/calendar/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/calendar/prop-desc.js
deleted file mode 100644
index 2a0eacf082..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.calendar
-description: The "calendar" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/daysInMonth/branding.js b/polyfill/test/PlainYearMonth/prototype/daysInMonth/branding.js
deleted file mode 100644
index 4e25ac2438..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/daysInMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.daysinmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInMonth = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "daysInMonth").get;
-
-assert.sameValue(typeof daysInMonth, "function");
-
-assert.throws(TypeError, () => daysInMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInMonth.call(null), "null");
-assert.throws(TypeError, () => daysInMonth.call(true), "true");
-assert.throws(TypeError, () => daysInMonth.call(""), "empty string");
-assert.throws(TypeError, () => daysInMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInMonth.call(1), "1");
-assert.throws(TypeError, () => daysInMonth.call({}), "plain object");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/daysInMonth/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/daysInMonth/prop-desc.js
deleted file mode 100644
index 2e6a4dd8eb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/daysInMonth/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.daysinmonth
-description: The "daysInMonth" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "daysInMonth");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/daysInYear/branding.js b/polyfill/test/PlainYearMonth/prototype/daysInYear/branding.js
deleted file mode 100644
index 89ed0ba7de..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/daysInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.daysinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInYear = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "daysInYear").get;
-
-assert.sameValue(typeof daysInYear, "function");
-
-assert.throws(TypeError, () => daysInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInYear.call(null), "null");
-assert.throws(TypeError, () => daysInYear.call(true), "true");
-assert.throws(TypeError, () => daysInYear.call(""), "empty string");
-assert.throws(TypeError, () => daysInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInYear.call(1), "1");
-assert.throws(TypeError, () => daysInYear.call({}), "plain object");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => daysInYear.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/daysInYear/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/daysInYear/prop-desc.js
deleted file mode 100644
index a19da6738a..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/daysInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.daysinyear
-description: The "daysInYear" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "daysInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/argument-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/equals/argument-wrong-type.js
deleted file mode 100644
index 61bac73601..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/argument-wrong-type.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Appropriate error thrown when argument cannot be converted to a valid string
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5, day: 2 });
-
-assert.throws(RangeError, () => instance.equals(undefined), "undefined");
-assert.throws(RangeError, () => instance.equals(null), "null");
-assert.throws(RangeError, () => instance.equals(true), "true");
-assert.throws(RangeError, () => instance.equals(""), "empty string");
-assert.throws(TypeError, () => instance.equals(Symbol()), "symbol");
-assert.throws(RangeError, () => instance.equals(1), "1");
-assert.throws(TypeError, () => instance.equals({}), "plain object");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => instance.equals(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/branding.js b/polyfill/test/PlainYearMonth/prototype/equals/branding.js
deleted file mode 100644
index b180108229..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.PlainYearMonth.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => equals.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/builtin.js b/polyfill/test/PlainYearMonth/prototype/equals/builtin.js
deleted file mode 100644
index 9f5913db4a..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: >
- Tests that Temporal.PlainYearMonth.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/equals/calendar-fields-iterable.js
deleted file mode 100644
index 90b1c8c53f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/calendar-fields-iterable.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal-totemporalyearmonth step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-yearmonth.equals({ year: 2005, month: 6, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 9af511590e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal-totemporalyearmonth step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const yearmonth = new Temporal.PlainYearMonth(2000, 5, temporalObject);
- yearmonth.equals({ year: 2005, month: 6, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index e79f5734b9..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/length.js b/polyfill/test/PlainYearMonth/prototype/equals/length.js
deleted file mode 100644
index bc8be37b45..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Temporal.PlainYearMonth.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/name.js b/polyfill/test/PlainYearMonth/prototype/equals/name.js
deleted file mode 100644
index 2f79e0d897..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: Temporal.PlainYearMonth.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/equals/not-a-constructor.js
deleted file mode 100644
index ed3caf22be..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: >
- Temporal.PlainYearMonth.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.equals), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.equals)");
diff --git a/polyfill/test/PlainYearMonth/prototype/equals/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/equals/prop-desc.js
deleted file mode 100644
index 3c877eb4c6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.equals
-description: The "equals" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.equals,
- "function",
- "`typeof PlainYearMonth.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/era/branding.js b/polyfill/test/PlainYearMonth/prototype/era/branding.js
deleted file mode 100644
index 805de77423..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/era/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.era
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const era = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "era").get;
-
-assert.sameValue(typeof era, "function");
-
-assert.throws(TypeError, () => era.call(undefined), "undefined");
-assert.throws(TypeError, () => era.call(null), "null");
-assert.throws(TypeError, () => era.call(true), "true");
-assert.throws(TypeError, () => era.call(""), "empty string");
-assert.throws(TypeError, () => era.call(Symbol()), "symbol");
-assert.throws(TypeError, () => era.call(1), "1");
-assert.throws(TypeError, () => era.call({}), "plain object");
-assert.throws(TypeError, () => era.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => era.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/era/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/era/prop-desc.js
deleted file mode 100644
index fd8c3ce029..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/era/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.era
-description: The "era" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "era");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/eraYear/branding.js b/polyfill/test/PlainYearMonth/prototype/eraYear/branding.js
deleted file mode 100644
index 23717f31e6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/eraYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.erayear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const eraYear = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "eraYear").get;
-
-assert.sameValue(typeof eraYear, "function");
-
-assert.throws(TypeError, () => eraYear.call(undefined), "undefined");
-assert.throws(TypeError, () => eraYear.call(null), "null");
-assert.throws(TypeError, () => eraYear.call(true), "true");
-assert.throws(TypeError, () => eraYear.call(""), "empty string");
-assert.throws(TypeError, () => eraYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => eraYear.call(1), "1");
-assert.throws(TypeError, () => eraYear.call({}), "plain object");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => eraYear.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/eraYear/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/eraYear/prop-desc.js
deleted file mode 100644
index 131088c5fa..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/eraYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.erayear
-description: The "eraYear" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "eraYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/branding.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/branding.js
deleted file mode 100644
index 88fe8f8e85..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.PlainYearMonth.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => getISOFields.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/builtin.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/builtin.js
deleted file mode 100644
index 190136a05c..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: >
- Tests that Temporal.PlainYearMonth.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-names.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/field-names.js
deleted file mode 100644
index 631c02891d..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const ym = new Temporal.PlainYearMonth(2000, 5);
-
-const result = ym.getISOFields();
-assert.sameValue(result.isoYear, 2000, "isoYear result");
-assert.sameValue(result.isoMonth, 5, "isoMonth result");
-assert.sameValue(result.isoDay, 1, "isoDay result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-prop-desc.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index 260fb52982..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const ym = new Temporal.PlainYearMonth(2000, 5);
-const result = ym.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-traversal-order.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index e2b1099f1b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoMonth",
- "isoYear",
-];
-
-const ym = new Temporal.PlainYearMonth(2000, 5);
-const result = ym.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/length.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/length.js
deleted file mode 100644
index 4037863e6e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Temporal.PlainYearMonth.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/name.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/name.js
deleted file mode 100644
index 5b38b8809a..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: Temporal.PlainYearMonth.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index ee99732e40..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: >
- Temporal.PlainYearMonth.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.getISOFields), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.getISOFields)");
diff --git a/polyfill/test/PlainYearMonth/prototype/getISOFields/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index ae6d524077..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.getisofields
-description: The "getISOFields" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.getISOFields,
- "function",
- "`typeof PlainYearMonth.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/inLeapYear/branding.js b/polyfill/test/PlainYearMonth/prototype/inLeapYear/branding.js
deleted file mode 100644
index ca4d439025..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/inLeapYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.inleapyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const inLeapYear = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "inLeapYear").get;
-
-assert.sameValue(typeof inLeapYear, "function");
-
-assert.throws(TypeError, () => inLeapYear.call(undefined), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null), "null");
-assert.throws(TypeError, () => inLeapYear.call(true), "true");
-assert.throws(TypeError, () => inLeapYear.call(""), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1), "1");
-assert.throws(TypeError, () => inLeapYear.call({}), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/inLeapYear/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/inLeapYear/prop-desc.js
deleted file mode 100644
index bd185e3456..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/inLeapYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.inleapyear
-description: The "inLeapYear" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "inLeapYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/month/branding.js b/polyfill/test/PlainYearMonth/prototype/month/branding.js
deleted file mode 100644
index ff3991403b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/month/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.month
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const month = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "month").get;
-
-assert.sameValue(typeof month, "function");
-
-assert.throws(TypeError, () => month.call(undefined), "undefined");
-assert.throws(TypeError, () => month.call(null), "null");
-assert.throws(TypeError, () => month.call(true), "true");
-assert.throws(TypeError, () => month.call(""), "empty string");
-assert.throws(TypeError, () => month.call(Symbol()), "symbol");
-assert.throws(TypeError, () => month.call(1), "1");
-assert.throws(TypeError, () => month.call({}), "plain object");
-assert.throws(TypeError, () => month.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => month.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/month/calendar-returns-infinity.js b/polyfill/test/PlainYearMonth/prototype/month/calendar-returns-infinity.js
deleted file mode 100644
index 54919c7ba4..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/month/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.month
-description: Getter throws if the calendar returns ±∞ from its month method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- month() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainYearMonth(2000, 5, pos);
-assert.throws(RangeError, () => instance1.month);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainYearMonth(2000, 5, neg);
-assert.throws(RangeError, () => instance2.month);
diff --git a/polyfill/test/PlainYearMonth/prototype/month/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/month/prop-desc.js
deleted file mode 100644
index 263ea6fa01..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/month/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.month
-description: The "month" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "month");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/monthCode/branding.js b/polyfill/test/PlainYearMonth/prototype/monthCode/branding.js
deleted file mode 100644
index 92ce886eb9..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "monthCode").get;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => monthCode.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/monthCode/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/monthCode/prop-desc.js
deleted file mode 100644
index d9f41958d7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.monthcode
-description: The "monthCode" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "monthCode");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/monthsInYear/branding.js b/polyfill/test/PlainYearMonth/prototype/monthsInYear/branding.js
deleted file mode 100644
index 51f5f1e096..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/monthsInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.monthsinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthsInYear = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "monthsInYear").get;
-
-assert.sameValue(typeof monthsInYear, "function");
-
-assert.throws(TypeError, () => monthsInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null), "null");
-assert.throws(TypeError, () => monthsInYear.call(true), "true");
-assert.throws(TypeError, () => monthsInYear.call(""), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1), "1");
-assert.throws(TypeError, () => monthsInYear.call({}), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/monthsInYear/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/monthsInYear/prop-desc.js
deleted file mode 100644
index 889a730336..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/monthsInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.monthsinyear
-description: The "monthsInYear" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "monthsInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/branding.js b/polyfill/test/PlainYearMonth/prototype/since/branding.js
deleted file mode 100644
index f7327b4124..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.PlainYearMonth.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => since.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/builtin.js b/polyfill/test/PlainYearMonth/prototype/since/builtin.js
deleted file mode 100644
index a22ac266f1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: >
- Tests that Temporal.PlainYearMonth.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainYearMonth/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index e4bf11cd73..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plainyearmonth.prototype.since steps 21–22:
- 21. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _largestUnit_).
- 22. Let _result_ be ? CalendarDateUntil(_calendar_, _thisDate_, _otherDate_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainYearMonth(2000, 5, calendar);
- const later = new Temporal.PlainYearMonth(2001, 6, calendar);
- later.since(earlier, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"]
- }
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/since/calendar-fields-iterable.js
deleted file mode 100644
index c7b4938043..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/calendar-fields-iterable.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal.plainyearmonth.prototype.since step 14:
- 14. Let fieldNames be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-totemporalyearmonth step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "monthCode",
- "year",
-];
-const expected2 = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-yearmonth.since({ year: 2005, month: 6, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method not called");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected1, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected2, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/prototype/since/calendar-temporal-object.js
deleted file mode 100644
index b4804389c9..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal-totemporalyearmonth step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const yearmonth = new Temporal.PlainYearMonth(2000, 5, temporalObject);
- yearmonth.since({ year: 2005, month: 6, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 8ef239002b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/since/largestunit-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index cabf7bd14f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => later.since(earlier, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/PlainYearMonth/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index 791d44106e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-const validUnits = [
- "year",
- "month",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/largestunit-undefined.js b/polyfill/test/PlainYearMonth/prototype/since/largestunit-undefined.js
deleted file mode 100644
index a46007e161..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = later.since(earlier, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default largestUnit is year");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default largestUnit is year");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/largestunit-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index 98b20c831e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "month",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/length.js b/polyfill/test/PlainYearMonth/prototype/since/length.js
deleted file mode 100644
index 243aef2ede..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Temporal.PlainYearMonth.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/since/name.js b/polyfill/test/PlainYearMonth/prototype/since/name.js
deleted file mode 100644
index 4cfda0d01b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Temporal.PlainYearMonth.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/since/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/since/not-a-constructor.js
deleted file mode 100644
index 090e056fe8..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: >
- Temporal.PlainYearMonth.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.since), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.since)");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/since/options-undefined.js
deleted file mode 100644
index c55628a010..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2002, 12);
-
-const explicit = later.since(earlier, undefined);
-assert.sameValue(explicit.years, 2, "default largest unit is years");
-assert.sameValue(explicit.months, 7, "default smallest unit is months and rounding is none");
-
-const implicit = later.since(earlier);
-assert.sameValue(implicit.years, 2, "default largest unit is years");
-assert.sameValue(implicit.months, 7, "default smallest unit is months and rounding is none");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/since/prop-desc.js
deleted file mode 100644
index d6ed3d6bde..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: The "since" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.since,
- "function",
- "`typeof PlainYearMonth.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-nan.js b/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index 945235c909..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-non-integer.js b/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index 0b9cc88ef3..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2000, 10);
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index 50710ab183..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2000, 10);
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-undefined.js b/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index a5ed492f61..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
-
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index 6aec0fdc7d..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index 14cbe1ac2f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-undefined.js b/polyfill/test/PlainYearMonth/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index 889c505077..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 1);
-
-const later1 = new Temporal.PlainYearMonth(2005, 2);
-const explicit1 = later1.since(earlier, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit1 = later1.since(earlier, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-
-const later2 = new Temporal.PlainYearMonth(2005, 12);
-const explicit2 = later2.since(earlier, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit2 = later2.since(earlier, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index f363ea1e16..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "year", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 64e17adf84..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/PlainYearMonth/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index 34ac2acb24..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-const validUnits = [
- "year",
- "month",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-undefined.js b/polyfill/test/PlainYearMonth/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index 5e84ad20be..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default smallestUnit is month");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default smallestUnit is month");
diff --git a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 6e9429a17d..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "year",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/argument-not-object.js b/polyfill/test/PlainYearMonth/prototype/subtract/argument-not-object.js
deleted file mode 100644
index d637cf0e53..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/argument-not-object.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Passing a primitive other than string to subtract() throws
-features: [Symbol, Temporal]
----*/
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-assert.throws(RangeError, () => instance.subtract(undefined), "undefined");
-assert.throws(RangeError, () => instance.subtract(null), "null");
-assert.throws(RangeError, () => instance.subtract(true), "boolean");
-assert.throws(RangeError, () => instance.subtract(""), "empty string");
-assert.throws(TypeError, () => instance.subtract(Symbol()), "Symbol");
-assert.throws(RangeError, () => instance.subtract(7), "number");
-assert.throws(RangeError, () => instance.subtract(7n), "bigint");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/PlainYearMonth/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 061060e979..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-
-const resultHours = instance.subtract("-PT24.567890123H");
-TemporalHelpers.assertPlainYearMonth(resultHours, 2000, 5, "M05", "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-TemporalHelpers.assertPlainYearMonth(resultMinutes, 2000, 5, "M05", "negative fractional minutes");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/argument-string.js b/polyfill/test/PlainYearMonth/prototype/subtract/argument-string.js
deleted file mode 100644
index 5de225dca6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/argument-string.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: A string is parsed into the correct object when passed as the argument
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-const result = instance.subtract("P3M");
-TemporalHelpers.assertPlainYearMonth(result, 2000, 2, "M02");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/branding.js b/polyfill/test/PlainYearMonth/prototype/subtract/branding.js
deleted file mode 100644
index cc60497b07..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.PlainYearMonth.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => subtract.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/builtin.js b/polyfill/test/PlainYearMonth/prototype/subtract/builtin.js
deleted file mode 100644
index f1f880fd90..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: >
- Tests that Temporal.PlainYearMonth.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments-extra-options.js b/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments-extra-options.js
deleted file mode 100644
index 085c3fe83c..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments-extra-options.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: plainyearmonth.prototype.subtract should pass extra fields in copied options objects.
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 5. Let yearMonth be ? Invoke(calendar, "yearMonthFromFields", « fields, options »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get extra",
- "get overflow",
-];
-const options = new Proxy({ extra: 5 }, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options) {
- const result = super.dateAdd(date, duration, options);
- options.overflow = 'meatloaf';
- return result;
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.notSameValue(args[1], options, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainYearMonth = new Temporal.PlainYearMonth(2000, 3, new CustomCalendar());
-const result = plainYearMonth.subtract({ months: 5 }, options);
-TemporalHelpers.assertPlainYearMonth(result, 1999, 10, "M10");
-assert.compareArray(actual, expected, "extra field options object order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments.js b/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments.js
deleted file mode 100644
index 008df86c6b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-arguments.js
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: plainyearmonth.prototype.subtract should respect calendar arguments and pass copied options objects.
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 5. Let yearMonth be ? Invoke(calendar, "yearMonthFromFields", « fields, options »).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get overflow",
- "get overflow",
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const options = new Proxy({ overflow: "constrain" }, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options) {
- const result = super.dateAdd(date, duration, options);
- options.overflow = 'meatloaf';
- return result;
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.notSameValue(args[1], options, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainYearMonth = new Temporal.PlainYearMonth(2000, 7, new CustomCalendar());
-const result = plainYearMonth.subtract({ months: 9 }, options);
-TemporalHelpers.assertPlainYearMonth(result, 1999, 10, "M10");
-assert.compareArray(actual, expected, "copied options object order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-daysinmonth-wrong-value.js b/polyfill/test/PlainYearMonth/prototype/subtract/calendar-daysinmonth-wrong-value.js
deleted file mode 100644
index 50d7feeab7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-daysinmonth-wrong-value.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: >
- The appropriate error is thrown if the calendar's daysInMonth method returns a
- value that cannot be converted to a positive integer
-includes: [compareArray.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-const actual = [];
-class CalendarDaysInMonthWrongValue extends Temporal.Calendar {
- constructor(badValue) {
- super("iso8601");
- this._badValue = badValue;
- }
- dateFromFields(fields, options) {
- actual.push("call dateFromFields");
- return super.dateFromFields(fields, options);
- }
- daysInMonth() {
- return this._badValue;
- }
-}
-// daysInMonth is only called if we are subtracting a positive duration
-const duration = new Temporal.Duration(1, 1);
-
-[Infinity, -Infinity, -42].forEach((badValue) => {
- const calendar = new CalendarDaysInMonthWrongValue(badValue);
- const yearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(RangeError, () => yearMonth.subtract(duration), `daysInMonth ${badValue}`);
- assert.compareArray(actual, [], "dateFromFields not called");
-});
-
-[Symbol('foo'), 31n].forEach((badValue) => {
- const calendar = new CalendarDaysInMonthWrongValue(badValue);
- const yearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(TypeError, () => yearMonth.subtract(duration), `daysInMonth ${typeof badValue}`);
- assert.compareArray(actual, [], "dateFromFields not called");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/subtract/calendar-fields-iterable.js
deleted file mode 100644
index 8329c5b6f5..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.subtract step 8:
- 8. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.subtract({ months: 1 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/subtract/infinity-throws-rangeerror.js
deleted file mode 100644
index 4801489331..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth.prototype.subtract throws a RangeError if any value in a property bag is Infinity
-esid: sec-temporal.plainyearmonth.prototype.subtract
-features: [Temporal]
----*/
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/length.js b/polyfill/test/PlainYearMonth/prototype/subtract/length.js
deleted file mode 100644
index 5c17ed8451..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Temporal.PlainYearMonth.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/name.js b/polyfill/test/PlainYearMonth/prototype/subtract/name.js
deleted file mode 100644
index 347e1a4457..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Temporal.PlainYearMonth.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/negative-infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/subtract/negative-infinity-throws-rangeerror.js
deleted file mode 100644
index 2079930fda..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/negative-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Temporal.PlainYearMonth.prototype.subtract throws a RangeError if any value in a property bag is -Infinity
-esid: sec-temporal.plainyearmonth.prototype.subtract
-features: [Temporal]
----*/
-
-const overflows = ["constrain", "reject"];
-const fields = ["years", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds", "microseconds", "nanoseconds"];
-
-const instance = Temporal.PlainYearMonth.from({ year: 2000, month: 5 });
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: -Infinity }, { overflow }));
- });
-});
-
-let calls = 0;
-const obj = {
- valueOf() {
- calls++;
- return -Infinity;
- }
-};
-
-overflows.forEach((overflow) => {
- fields.forEach((field) => {
- calls = 0;
- assert.throws(RangeError, () => instance.subtract({ [field]: obj }, { overflow }));
- assert.sameValue(calls, 1, "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 252bb15ae8..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 18ce8eb5bb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: >
- Temporal.PlainYearMonth.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.subtract), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.subtract)");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/subtract/options-undefined.js
deleted file mode 100644
index 3588779fe8..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/options-undefined.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-// overflow option has no effect on addition in the ISO calendar, so verify this
-// with a custom calendar
-class CheckedAdd extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(date, duration, options, constructor) {
- this.called = true;
- assert.notSameValue(options, undefined, "options not undefined");
- return super.dateAdd(date, duration, options, constructor);
- }
-}
-const calendar = new CheckedAdd();
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 3, calendar);
-const duration = { months: 1 };
-
-yearmonth.subtract(duration, undefined);
-yearmonth.subtract(duration);
-
-assert(calendar.called);
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/order-of-operations.js b/polyfill/test/PlainYearMonth/prototype/subtract/order-of-operations.js
deleted file mode 100644
index 1180777506..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/order-of-operations.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Properties on an object passed to subtract() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const expected = [
- "get days",
- "get days.valueOf",
- "call days.valueOf",
- "get hours",
- "get hours.valueOf",
- "call hours.valueOf",
- "get microseconds",
- "get microseconds.valueOf",
- "call microseconds.valueOf",
- "get milliseconds",
- "get milliseconds.valueOf",
- "call milliseconds.valueOf",
- "get minutes",
- "get minutes.valueOf",
- "call minutes.valueOf",
- "get months",
- "get months.valueOf",
- "call months.valueOf",
- "get nanoseconds",
- "get nanoseconds.valueOf",
- "call nanoseconds.valueOf",
- "get seconds",
- "get seconds.valueOf",
- "call seconds.valueOf",
- "get weeks",
- "get weeks.valueOf",
- "call weeks.valueOf",
- "get years",
- "get years.valueOf",
- "call years.valueOf",
-];
-const actual = [];
-const fields = {
- years: 1,
- months: 1,
- weeks: 1,
- days: 1,
- hours: 1,
- minutes: 1,
- seconds: 1,
- milliseconds: 1,
- microseconds: 1,
- nanoseconds: 1,
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.subtract(argument);
-TemporalHelpers.assertPlainYearMonth(result, 1999, 4, "M04");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/subtract/overflow-invalid-string.js
deleted file mode 100644
index aa3ed01cf6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.subtract steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-undefined.js b/polyfill/test/PlainYearMonth/prototype/subtract/overflow-undefined.js
deleted file mode 100644
index 0837beac76..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.subtract steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// In the ISO calendar, PlainYearMonth.prototype.subtract() actually ignores the
-// overflow option. There is no subtraction in the ISO calendar that we could
-// test which would actually show a difference between the 'constrain' and
-// 'reject' values.
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-const explicit = yearmonth.subtract(duration, { overflow: undefined });
-TemporalHelpers.assertPlainYearMonth(explicit, 1999, 4, "M04", "default overflow is constrain");
-const implicit = yearmonth.subtract(duration, {});
-TemporalHelpers.assertPlainYearMonth(implicit, 1999, 4, "M04", "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/subtract/overflow-wrong-type.js
deleted file mode 100644
index 4174c2ccfd..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/overflow-wrong-type.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.subtract steps 13–15:
- 13. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _date_, _durationToAdd_, _options_).
- 14. ...
- 15. Return ? YearMonthFromFields(_calendar_, _addedDateFields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const duration = new Temporal.Duration(1, 1);
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: null }), "null");
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: true }), "true");
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: false }), "false");
-assert.throws(TypeError, () => yearmonth.subtract(duration, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => yearmonth.subtract(duration, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateAdd() and then once again by
-// calendar.yearMonthFromFields().
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = yearmonth.subtract(duration, { overflow: observer });
-TemporalHelpers.assertPlainYearMonth(result, 1999, 4, "M04", "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/subtract/prop-desc.js
deleted file mode 100644
index 981f109116..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: The "subtract" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.subtract,
- "function",
- "`typeof PlainYearMonth.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/subtract/subclassing-ignored.js b/polyfill/test/PlainYearMonth/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 40a021baaf..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.subtract
-description: Objects of a subclass are never created as return values for subtract()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainYearMonth,
- [2000, 5],
- "subtract",
- [{ months: 1 }],
- (result) => TemporalHelpers.assertPlainYearMonth(result, 2000, 4, "M04"),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/branding.js b/polyfill/test/PlainYearMonth/prototype/toJSON/branding.js
deleted file mode 100644
index 18aada90e6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.PlainYearMonth.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => toJSON.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/builtin.js b/polyfill/test/PlainYearMonth/prototype/toJSON/builtin.js
deleted file mode 100644
index 0c1274aa37..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: >
- Tests that Temporal.PlainYearMonth.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/length.js b/polyfill/test/PlainYearMonth/prototype/toJSON/length.js
deleted file mode 100644
index 6f7808fa20..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: Temporal.PlainYearMonth.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/name.js b/polyfill/test/PlainYearMonth/prototype/toJSON/name.js
deleted file mode 100644
index e9c9eb564b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: Temporal.PlainYearMonth.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 0a1bcfb757..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: >
- Temporal.PlainYearMonth.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.toJSON), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.toJSON)");
diff --git a/polyfill/test/PlainYearMonth/prototype/toJSON/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/toJSON/prop-desc.js
deleted file mode 100644
index bf1635153f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tojson
-description: The "toJSON" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.toJSON,
- "function",
- "`typeof PlainYearMonth.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/branding.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/branding.js
deleted file mode 100644
index 62f18afc6a..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.PlainYearMonth.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/builtin.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/builtin.js
deleted file mode 100644
index d29dd0831b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: >
- Tests that Temporal.PlainYearMonth.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/length.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/length.js
deleted file mode 100644
index 6af3a1443b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: Temporal.PlainYearMonth.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/locales-undefined.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index c0a6f4750b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [Temporal]
----*/
-
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const { calendar } = defaultFormatter.resolvedOptions();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-const expected = defaultFormatter.format(yearmonth);
-
-const actualExplicit = yearmonth.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = yearmonth.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/name.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/name.js
deleted file mode 100644
index 0be23c10eb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: Temporal.PlainYearMonth.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index 859a4d02d1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: >
- Temporal.PlainYearMonth.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.toLocaleString), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.toLocaleString)");
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 5e3f04b00e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const { calendar } = defaultFormatter.resolvedOptions();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-const expected = defaultFormatter.format(yearmonth);
-
-const actualExplicit = yearmonth.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = yearmonth.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/PlainYearMonth/prototype/toLocaleString/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index f65d584638..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.toLocaleString,
- "function",
- "`typeof PlainYearMonth.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/argument-not-object.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/argument-not-object.js
deleted file mode 100644
index 16c1e06340..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/argument-not-object.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: Throws a TypeError if the argument is not an Object, before any other observable actions
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[null, undefined, true, 3.1416, "a string", Symbol("symbol"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarThrowEverything();
- const plainYearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(TypeError, () => plainYearMonth.toPlainDate(primitive));
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/branding.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/branding.js
deleted file mode 100644
index 67d16016cb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDate = Temporal.PlainYearMonth.prototype.toPlainDate;
-
-assert.sameValue(typeof toPlainDate, "function");
-
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/builtin.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/builtin.js
deleted file mode 100644
index 8473ff7c2f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: >
- Tests that Temporal.PlainYearMonth.prototype.toPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.toPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.toPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.toPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.toPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-fields-iterable.js
deleted file mode 100644
index 7d990bf231..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-fields-iterable.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.toplaindate step 5:
- 5. Let _receiverFieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal.plainyearmonth.prototype.toplaindate step 7:
- 7. Let _inputFieldNames_ be ? CalendarFields(_calendar_, « *"day"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "monthCode",
- "year",
-];
-const expected2 = [
- "day",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.toPlainDate({ day: 15 });
-
-assert.sameValue(calendar.fieldsCallCount, 2, "fields() method called twice");
-assert.compareArray(calendar.fieldsCalledWith[0], expected1, "fields() method called first time with correct args");
-assert.compareArray(calendar.fieldsCalledWith[1], expected2, "fields() method called second time with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole first iterable");
-assert(calendar.iteratorExhausted[1], "iterated through the whole second iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index 0b083aaab0..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(TypeError, () => instance.toPlainDate({ day: 2 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.dateFromFieldsCallCount, 0, "dateFromFields() never called");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/copies-merge-fields-object.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/copies-merge-fields-object.js
deleted file mode 100644
index ae24d79a26..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/copies-merge-fields-object.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: The object returned from mergeFields() is copied before being passed to monthDayFromFields().
-info: |
- sec-temporal.plainyearmonth.prototype.toplaindate steps 9 and 11:
- 9. Let _mergedFields_ be ? CalendarMergeFields(_calendar_, _fields_, _inputFields_).
- 11. Set _mergedFields_ to ? PrepareTemporalFields(_mergedFields_, _mergedFieldNames_, «»).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
- "get day", // first receiver fields, then input fields
- "get day.valueOf",
- "call day.valueOf",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.toPlainDate({ day: 2 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index c655904463..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.toPlainDate({ day: inf }), `day property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "day");
- assert.throws(RangeError, () => instance.toPlainDate({ day: obj }));
- assert.compareArray(calls, ["get day.valueOf", "call day.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/length.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/length.js
deleted file mode 100644
index 084bd53958..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: Temporal.PlainYearMonth.prototype.toPlainDate.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toPlainDate, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/name.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/name.js
deleted file mode 100644
index 806de87222..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: Temporal.PlainYearMonth.prototype.toPlainDate.name is "toPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toPlainDate, "name", {
- value: "toPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/not-a-constructor.js
deleted file mode 100644
index f29bf78d7e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: >
- Temporal.PlainYearMonth.prototype.toPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.toPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.toPlainDate), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.toPlainDate)");
diff --git a/polyfill/test/PlainYearMonth/prototype/toPlainDate/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/toPlainDate/prop-desc.js
deleted file mode 100644
index e19db789ca..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.toplaindate
-description: The "toPlainDate" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.toPlainDate,
- "function",
- "`typeof PlainYearMonth.prototype.toPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "toPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/branding.js b/polyfill/test/PlainYearMonth/prototype/toString/branding.js
deleted file mode 100644
index 8f756e98bb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.PlainYearMonth.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => toString.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/builtin.js b/polyfill/test/PlainYearMonth/prototype/toString/builtin.js
deleted file mode 100644
index ba64c8a524..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: >
- Tests that Temporal.PlainYearMonth.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/toString/calendarname-invalid-string.js
deleted file mode 100644
index e1b8b71025..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.protoype.tostring
-description: RangeError thrown when calendarName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainyearmonth.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-assert.throws(RangeError, () => yearmonth.toString({ calendarName: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-undefined.js b/polyfill/test/PlainYearMonth/prototype/toString/calendarname-undefined.js
deleted file mode 100644
index 6478995fc1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-undefined.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.protoype.tostring
-description: Fallback value for calendarName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainyearmonth.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const yearmonth1 = new Temporal.PlainYearMonth(2000, 5);
-const yearmonth2 = new Temporal.PlainYearMonth(2000, 5, calendar);
-
-[
- [yearmonth1, "2000-05"],
- [yearmonth2, "2000-05-01[u-ca=custom]"],
-].forEach(([yearmonth, expected]) => {
- const explicit = yearmonth.toString({ calendarName: undefined });
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = yearmonth.toString({});
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/toString/calendarname-wrong-type.js
deleted file mode 100644
index 301b62703a..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/calendarname-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.protoype.tostring
-description: Type conversions for calendarName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.plainyearmonth.protoype.tostring step 4:
- 4. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-
-TemporalHelpers.checkStringOptionWrongType("calendarName", "auto",
- (calendarName) => yearmonth.toString({ calendarName }),
- (result, descr) => assert.sameValue(result, "2000-05-01[u-ca=custom]", descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/length.js b/polyfill/test/PlainYearMonth/prototype/toString/length.js
deleted file mode 100644
index f053b88685..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: Temporal.PlainYearMonth.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/name.js b/polyfill/test/PlainYearMonth/prototype/toString/name.js
deleted file mode 100644
index d60737c473..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: Temporal.PlainYearMonth.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/toString/not-a-constructor.js
deleted file mode 100644
index 3dbe3a98c7..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: >
- Temporal.PlainYearMonth.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.toString), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.toString)");
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/toString/options-undefined.js
deleted file mode 100644
index 19b6e8e7b3..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const yearmonth1 = new Temporal.PlainYearMonth(2000, 5);
-const yearmonth2 = new Temporal.PlainYearMonth(2000, 5, calendar);
-
-[
- [yearmonth1, "2000-05"],
- [yearmonth2, "2000-05-01[u-ca=custom]"],
-].forEach(([yearmonth, expected]) => {
- const explicit = yearmonth.toString(undefined);
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- const implicit = yearmonth.toString();
- assert.sameValue(implicit, expected, "default calendarName option is auto");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/toString/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/toString/prop-desc.js
deleted file mode 100644
index 587c2b9713..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tostring
-description: The "toString" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.toString,
- "function",
- "`typeof PlainYearMonth.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/branding.js b/polyfill/test/PlainYearMonth/prototype/until/branding.js
deleted file mode 100644
index 4487e20d8d..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.PlainYearMonth.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => until.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/builtin.js b/polyfill/test/PlainYearMonth/prototype/until/builtin.js
deleted file mode 100644
index 2055f6dc26..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: >
- Tests that Temporal.PlainYearMonth.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/PlainYearMonth/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index 33e4f9bdf4..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.plainyearmonth.prototype.until steps 20–21:
- 20. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _largestUnit_).
- 21. Let _result_ be ? CalendarDateUntil(_calendar_, _thisDate_, _otherDate_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.PlainYearMonth(2000, 5, calendar);
- const later = new Temporal.PlainYearMonth(2001, 6, calendar);
- earlier.until(later, { largestUnit });
- },
- {
- years: ["year"],
- months: ["month"]
- }
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/until/calendar-fields-iterable.js
deleted file mode 100644
index e40c6d78bc..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/calendar-fields-iterable.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal.plainyearmonth.prototype.until step 13:
- 13. Let fieldNames be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-totemporalyearmonth step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "monthCode",
- "year",
-];
-const expected2 = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-yearmonth.until({ year: 2005, month: 6, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method not called");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected1, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected2, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/calendar-temporal-object.js b/polyfill/test/PlainYearMonth/prototype/until/calendar-temporal-object.js
deleted file mode 100644
index be28ad212b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plainyearmonth.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalYearMonth(_other_).
- sec-temporal-totemporalyearmonth step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const yearmonth = new Temporal.PlainYearMonth(2000, 5, temporalObject);
- yearmonth.until({ year: 2005, month: 6, calendar: temporalObject });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 19abebb431..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const base = { year: 2000, month: 5 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/largestunit-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index e711482a96..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => earlier.until(later, { largestUnit: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/PlainYearMonth/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index d0ba4bfa3c..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-const validUnits = [
- "year",
- "month",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/largestunit-undefined.js b/polyfill/test/PlainYearMonth/prototype/until/largestunit-undefined.js
deleted file mode 100644
index 4222cfe938..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = earlier.until(later, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default largestUnit is year");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default largestUnit is year");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/largestunit-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index bba851fc15..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "month",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/length.js b/polyfill/test/PlainYearMonth/prototype/until/length.js
deleted file mode 100644
index 8b382c25ed..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Temporal.PlainYearMonth.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/name.js b/polyfill/test/PlainYearMonth/prototype/until/name.js
deleted file mode 100644
index ffb3a43e5e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Temporal.PlainYearMonth.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/until/not-a-constructor.js
deleted file mode 100644
index 45a782f2b0..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: >
- Temporal.PlainYearMonth.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.until), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.until)");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/until/options-undefined.js
deleted file mode 100644
index 6717e477c6..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2002, 12);
-
-const explicit = earlier.until(later, undefined);
-assert.sameValue(explicit.years, 2, "default largest unit is years");
-assert.sameValue(explicit.months, 7, "default smallest unit is months and rounding is none");
-
-const implicit = earlier.until(later);
-assert.sameValue(implicit.years, 2, "default largest unit is years");
-assert.sameValue(implicit.months, 7, "default smallest unit is months and rounding is none");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/until/prop-desc.js
deleted file mode 100644
index d33ff7c2a9..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: The "until" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.until,
- "function",
- "`typeof PlainYearMonth.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-nan.js b/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index a48e5e7d76..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-non-integer.js b/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index 013e60247d..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2000, 10);
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index a798154825..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2000, 10);
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-undefined.js b/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index a601448bbb..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
-
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingIncrement is 1");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index 5dfa7203cf..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.plainyearmonth.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, *undefined*, *false*).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index 3e6231aef4..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-undefined.js b/polyfill/test/PlainYearMonth/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index c306c434cd..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 1);
-
-const later1 = new Temporal.PlainYearMonth(2005, 2);
-const explicit1 = earlier.until(later1, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later1, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-
-const later2 = new Temporal.PlainYearMonth(2005, 12);
-const explicit2 = earlier.until(later2, { smallestUnit: "year", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later2, { smallestUnit: "year" });
-TemporalHelpers.assertDuration(implicit2, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index 7093320744..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "year", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index 17bc84c279..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/PlainYearMonth/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index 601667cc93..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-const validUnits = [
- "year",
- "month",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-undefined.js b/polyfill/test/PlainYearMonth/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index 54aa1e8d9f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default smallestUnit is month");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, "default smallestUnit is month");
diff --git a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index 5f47720f4f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.PlainYearMonth(2000, 5);
-const later = new Temporal.PlainYearMonth(2001, 6);
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "year",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/branding.js b/polyfill/test/PlainYearMonth/prototype/valueOf/branding.js
deleted file mode 100644
index a524512d8f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.PlainYearMonth.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => valueOf.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/builtin.js b/polyfill/test/PlainYearMonth/prototype/valueOf/builtin.js
deleted file mode 100644
index 3c07f9a896..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: >
- Tests that Temporal.PlainYearMonth.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/length.js b/polyfill/test/PlainYearMonth/prototype/valueOf/length.js
deleted file mode 100644
index 70cfee64df..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: Temporal.PlainYearMonth.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/name.js b/polyfill/test/PlainYearMonth/prototype/valueOf/name.js
deleted file mode 100644
index 1635cee7ed..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: Temporal.PlainYearMonth.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index ef8255fc4b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: >
- Temporal.PlainYearMonth.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.valueOf), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.valueOf)");
diff --git a/polyfill/test/PlainYearMonth/prototype/valueOf/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/valueOf/prop-desc.js
deleted file mode 100644
index 819f12f999..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.valueof
-description: The "valueOf" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.valueOf,
- "function",
- "`typeof PlainYearMonth.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/branding.js b/polyfill/test/PlainYearMonth/prototype/with/branding.js
deleted file mode 100644
index 131d9f8c2e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.PlainYearMonth.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => with_.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/builtin.js b/polyfill/test/PlainYearMonth/prototype/with/builtin.js
deleted file mode 100644
index ad64fa7a8b..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: >
- Tests that Temporal.PlainYearMonth.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.PlainYearMonth.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.PlainYearMonth.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.PlainYearMonth.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.PlainYearMonth.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/calendar-arguments.js b/polyfill/test/PlainYearMonth/prototype/with/calendar-arguments.js
deleted file mode 100644
index 88332be0d1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Correct options value is passed to calendar method
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 5. Let yearMonth be ? Invoke(calendar, "yearMonthFromFields", « fields, options »).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const options = {};
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], options, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const plainYearMonth = new Temporal.PlainYearMonth(2000, 7, new CustomCalendar());
-const result = plainYearMonth.with({ month: 5 }, options);
-TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/calendar-fields-iterable.js b/polyfill/test/PlainYearMonth/prototype/with/calendar-fields-iterable.js
deleted file mode 100644
index 1c5fcb20c4..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/calendar-fields-iterable.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.plainyearmonth.prototype.with step 9:
- 9. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "month",
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.with({ year: 2005 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/calendar-merge-fields-returns-primitive.js b/polyfill/test/PlainYearMonth/prototype/with/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index 1139d27ee0..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.PlainYearMonth(2000, 5, calendar);
- assert.throws(TypeError, () => instance.with({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.yearMonthFromFieldsCallCount, 0, "yearMonthFromFields() never called");
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/copies-merge-fields-object.js b/polyfill/test/PlainYearMonth/prototype/with/copies-merge-fields-object.js
deleted file mode 100644
index 7cad0926d8..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/copies-merge-fields-object.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: The object returned from mergeFields() is copied before being passed to monthDayFromFields().
-info: |
- sec-temporal.plainyearmonth.prototype.with steps 13–15:
- 13. Set _fields_ to ? CalendarMergeFields(_calendar_, _fields_, _partialYearMonth_).
- 14. Set _fields_ to ? PrepareTemporalFields(_fields_, _fieldNames_, «»).
- 15. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const yearmonth = new Temporal.PlainYearMonth(2000, 5, calendar);
-yearmonth.with({ year: 2004 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/PlainYearMonth/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 6dbe7c6380..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.with({ [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/length.js b/polyfill/test/PlainYearMonth/prototype/with/length.js
deleted file mode 100644
index 64530ee84c..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Temporal.PlainYearMonth.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/name.js b/polyfill/test/PlainYearMonth/prototype/with/name.js
deleted file mode 100644
index 4162c764a1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Temporal.PlainYearMonth.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.PlainYearMonth.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/not-a-constructor.js b/polyfill/test/PlainYearMonth/prototype/with/not-a-constructor.js
deleted file mode 100644
index efa32a61b1..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: >
- Temporal.PlainYearMonth.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.PlainYearMonth.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.PlainYearMonth.prototype.with), false,
- "isConstructor(Temporal.PlainYearMonth.prototype.with)");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/options-undefined.js b/polyfill/test/PlainYearMonth/prototype/with/options-undefined.js
deleted file mode 100644
index a6c0c1abce..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 2);
-const fields = { month: 13 };
-
-const explicit = yearmonth.with(fields, undefined);
-assert.sameValue(explicit.month, 12, "default overflow is constrain");
-
-const implicit = yearmonth.with(fields);
-assert.sameValue(implicit.month, 12, "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/order-of-operations.js b/polyfill/test/PlainYearMonth/prototype/with/order-of-operations.js
deleted file mode 100644
index f78031bd4f..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/order-of-operations.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Properties on an object passed to with() are accessed in the correct order
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5);
-const expected = [
- "get calendar",
- "get timeZone",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
-];
-const actual = [];
-const fields = {
- year: 1.7,
- month: 1.7,
- monthCode: "M01",
-};
-const argument = new Proxy(fields, {
- get(target, key) {
- actual.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(actual, result, key);
- },
- has(target, key) {
- actual.push(`has ${key}`);
- return key in target;
- },
-});
-const result = instance.with(argument);
-TemporalHelpers.assertPlainYearMonth(result, 1, 1, "M01");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/overflow-invalid-string.js b/polyfill/test/PlainYearMonth/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index b02a099ca8..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.with step 16:
- 16. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-assert.throws(RangeError, () => yearmonth.with({ month: 8 }, { overflow: "other string" }));
diff --git a/polyfill/test/PlainYearMonth/prototype/with/overflow-undefined.js b/polyfill/test/PlainYearMonth/prototype/with/overflow-undefined.js
deleted file mode 100644
index e737c26171..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.with step 16:
- 16. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-const explicit = yearmonth.with({ month: 15 }, { overflow: undefined });
-TemporalHelpers.assertPlainYearMonth(explicit, 2000, 12, "M12", "default overflow is constrain");
-const implicit = yearmonth.with({ month: 15 }, {});
-TemporalHelpers.assertPlainYearMonth(implicit, 2000, 12, "M12", "default overflow is constrain");
diff --git a/polyfill/test/PlainYearMonth/prototype/with/overflow-wrong-type.js b/polyfill/test/PlainYearMonth/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index 7abe738780..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-isoyearmonthfromfields step 2:
- 2. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.plainyearmonth.prototype.with step 16:
- 16. Return ? YearMonthFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const yearmonth = new Temporal.PlainYearMonth(2000, 5);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => yearmonth.with({ month: 8 }, { overflow }),
- (result, descr) => TemporalHelpers.assertPlainYearMonth(result, 2000, 8, "M08", descr),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/with/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/with/prop-desc.js
deleted file mode 100644
index 66e39c51fe..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: The "with" property of Temporal.PlainYearMonth.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.PlainYearMonth.prototype.with,
- "function",
- "`typeof PlainYearMonth.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.PlainYearMonth.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/PlainYearMonth/prototype/with/subclassing-ignored.js b/polyfill/test/PlainYearMonth/prototype/with/subclassing-ignored.js
deleted file mode 100644
index b7b27961c2..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.with
-description: Objects of a subclass are never created as return values for with()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.PlainYearMonth,
- [2000, 5],
- "with",
- [{ month: 11 }],
- (result) => TemporalHelpers.assertPlainYearMonth(result, 2000, 11, "M11"),
-);
diff --git a/polyfill/test/PlainYearMonth/prototype/year/branding.js b/polyfill/test/PlainYearMonth/prototype/year/branding.js
deleted file mode 100644
index 5e95acd81e..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/year/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.year
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const year = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "year").get;
-
-assert.sameValue(typeof year, "function");
-
-assert.throws(TypeError, () => year.call(undefined), "undefined");
-assert.throws(TypeError, () => year.call(null), "null");
-assert.throws(TypeError, () => year.call(true), "true");
-assert.throws(TypeError, () => year.call(""), "empty string");
-assert.throws(TypeError, () => year.call(Symbol()), "symbol");
-assert.throws(TypeError, () => year.call(1), "1");
-assert.throws(TypeError, () => year.call({}), "plain object");
-assert.throws(TypeError, () => year.call(Temporal.PlainYearMonth), "Temporal.PlainYearMonth");
-assert.throws(TypeError, () => year.call(Temporal.PlainYearMonth.prototype), "Temporal.PlainYearMonth.prototype");
diff --git a/polyfill/test/PlainYearMonth/prototype/year/calendar-returns-infinity.js b/polyfill/test/PlainYearMonth/prototype/year/calendar-returns-infinity.js
deleted file mode 100644
index 2a16a71ee4..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/year/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.year
-description: Getter throws if the calendar returns ±∞ from its year method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- year() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainYearMonth(2000, 5, pos);
-assert.throws(RangeError, () => instance1.year);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainYearMonth(2000, 5, neg);
-assert.throws(RangeError, () => instance2.year);
diff --git a/polyfill/test/PlainYearMonth/prototype/year/prop-desc.js b/polyfill/test/PlainYearMonth/prototype/year/prop-desc.js
deleted file mode 100644
index c6cfdc2800..0000000000
--- a/polyfill/test/PlainYearMonth/prototype/year/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.year
-description: The "year" property of Temporal.PlainYearMonth.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.PlainYearMonth.prototype, "year");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/Temporal/getOwnPropertyNames.js b/polyfill/test/Temporal/getOwnPropertyNames.js
deleted file mode 100644
index 02de8fa0e9..0000000000
--- a/polyfill/test/Temporal/getOwnPropertyNames.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-objects
-description: Temporal has own property names
-includes: [arrayContains.js]
-features: [Temporal]
----*/
-
-const expected = [
- "Instant",
- "TimeZone",
- "PlainDate",
- "PlainTime",
- "PlainDateTime",
- "ZonedDateTime",
- "PlainYearMonth",
- "PlainMonthDay",
- "Duration",
- "Calendar",
- "Now",
-];
-const keys = Object.getOwnPropertyNames(Temporal);
-assert.sameValue(keys.length, expected.length, "length");
-assert(arrayContains(keys, expected), "contents");
diff --git a/polyfill/test/Temporal/keys.js b/polyfill/test/Temporal/keys.js
deleted file mode 100644
index 16e33be3b3..0000000000
--- a/polyfill/test/Temporal/keys.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-objects
-description: Temporal has no enumerable properties
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const keys = Object.keys(Temporal);
-assert.compareArray(keys, []);
diff --git a/polyfill/test/Temporal/prop-desc.js b/polyfill/test/Temporal/prop-desc.js
deleted file mode 100644
index 6018ceabe9..0000000000
--- a/polyfill/test/Temporal/prop-desc.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-objects
-includes: [propertyHelper.js]
-description: The "Temporal" property of the global object
-features: [Temporal]
----*/
-
-assert.sameValue(typeof Temporal, "object");
-verifyProperty(this, "Temporal", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Temporal/toStringTag/prop-desc.js b/polyfill/test/Temporal/toStringTag/prop-desc.js
deleted file mode 100644
index bbf0b174bd..0000000000
--- a/polyfill/test/Temporal/toStringTag/prop-desc.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-@@tostringtag
-description: The @@toStringTag property of Temporal
-includes: [propertyHelper.js]
-features: [Symbol.toStringTag, Temporal]
----*/
-
-verifyProperty(Temporal, Symbol.toStringTag, {
- value: "Temporal",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/Temporal/toStringTag/string.js b/polyfill/test/Temporal/toStringTag/string.js
deleted file mode 100644
index eeaa7f94ef..0000000000
--- a/polyfill/test/Temporal/toStringTag/string.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal-@@tostringtag
-description: The @@toStringTag property of Temporal produces the correct value in toString
-features: [Symbol.toStringTag, Temporal]
----*/
-
-assert.sameValue(String(Temporal), "[object Temporal]");
diff --git a/polyfill/test/TimeZone/constructor/constructor/basic.js b/polyfill/test/TimeZone/constructor/constructor/basic.js
deleted file mode 100644
index a803f729b8..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/basic.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Basic tests for the Temporal.TimeZone constructor.
-features: [Temporal]
----*/
-
-const valid = [
- ["+01:00"],
- ["-01:00"],
- ["+0330", "+03:30"],
- ["-0650", "-06:50"],
- ["-08", "-08:00"],
- ["\u221201:00", "-01:00"],
- ["\u22120650", "-06:50"],
- ["\u221208", "-08:00"],
- ["+01:00:00", "+01:00"],
- ["-010000", "-01:00"],
- ["+03:30:00.000000001", "+03:30:00.000000001"],
- ["-033000.1", "-03:30:00.1"],
- ["UTC"],
-];
-for (const [zone, id = zone] of valid) {
- const result = new Temporal.TimeZone(zone);
- assert.sameValue(typeof result, "object", `object should be created for ${zone}`);
- assert.sameValue(result.id, id, `id for ${zone} should be ${id}`);
-}
-
-const invalid = ["+00:01.1", "-01.1"];
-for (const zone of invalid) {
- assert.throws(RangeError, () => new Temporal.TimeZone(zone), `should throw for ${zone}`);
-}
diff --git a/polyfill/test/TimeZone/constructor/constructor/builtin.js b/polyfill/test/TimeZone/constructor/constructor/builtin.js
deleted file mode 100644
index c7f419b1fa..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Tests that Temporal.TimeZone meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.TimeZone.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/TimeZone/constructor/constructor/constructor.js b/polyfill/test/TimeZone/constructor/constructor/constructor.js
deleted file mode 100644
index 7ed1159e10..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Temporal.TimeZone constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.TimeZone());
diff --git a/polyfill/test/TimeZone/constructor/constructor/length.js b/polyfill/test/TimeZone/constructor/constructor/length.js
deleted file mode 100644
index 4f2cc66514..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Temporal.TimeZone.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/constructor/missing-arguments.js b/polyfill/test/TimeZone/constructor/constructor/missing-arguments.js
deleted file mode 100644
index c407daed1c..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: RangeError thrown when constructor invoked with no argument
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => new Temporal.TimeZone());
-assert.throws(RangeError, () => new Temporal.TimeZone(undefined));
diff --git a/polyfill/test/TimeZone/constructor/constructor/name.js b/polyfill/test/TimeZone/constructor/constructor/name.js
deleted file mode 100644
index 632a9505b9..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Temporal.TimeZone.name is "TimeZone"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone, "name", {
- value: "TimeZone",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/constructor/prop-desc.js b/polyfill/test/TimeZone/constructor/constructor/prop-desc.js
deleted file mode 100644
index ace7b1503c..0000000000
--- a/polyfill/test/TimeZone/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: The "TimeZone" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone,
- "function",
- "`typeof TimeZone` is `function`"
-);
-
-verifyProperty(Temporal, "TimeZone", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/from/argument-object-invalid.js b/polyfill/test/TimeZone/constructor/from/argument-object-invalid.js
deleted file mode 100644
index 1c49e98ded..0000000000
--- a/polyfill/test/TimeZone/constructor/from/argument-object-invalid.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: TimeZone.from() with invalid objects.
-features: [Temporal]
----*/
-
-assert.throws(RangeError, () => Temporal.TimeZone.from({ timeZone: "local" }));
-assert.throws(RangeError, () => Temporal.TimeZone.from({ timeZone: { timeZone: "UTC" } }));
diff --git a/polyfill/test/TimeZone/constructor/from/argument-object.js b/polyfill/test/TimeZone/constructor/from/argument-object.js
deleted file mode 100644
index 499e9cc67d..0000000000
--- a/polyfill/test/TimeZone/constructor/from/argument-object.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: An object is returned unchanged
-features: [Temporal]
----*/
-
-class CustomTimeZone extends Temporal.TimeZone {}
-
-const objects = [
- new Temporal.TimeZone("UTC"),
- new CustomTimeZone("UTC"),
- {},
- { getPlainDateTimeFor: null },
- { id: "Etc/Custom" },
-];
-
-const thisValues = [
- Temporal.TimeZone,
- CustomTimeZone,
- {},
- null,
- undefined,
- 7,
-];
-
-for (const thisValue of thisValues) {
- for (const object of objects) {
- const result = Temporal.TimeZone.from.call(thisValue, object);
- assert.sameValue(result, object);
- }
-
- const zdt = new Temporal.ZonedDateTime(0n, "UTC");
- const fromZdt = Temporal.TimeZone.from.call(thisValue, zdt);
- assert.sameValue(fromZdt, zdt.timeZone);
- assert.sameValue(fromZdt.id, "UTC");
-
- const tz = new Temporal.TimeZone("UTC");
- const fromPropertyBagObject = Temporal.TimeZone.from.call(thisValue, { timeZone: tz });
- assert.sameValue(fromPropertyBagObject, tz);
- assert.sameValue(fromPropertyBagObject.id, "UTC");
-
- const fromPropertyBagString = Temporal.TimeZone.from.call(thisValue, { timeZone: "UTC" });
- assert(fromPropertyBagString instanceof Temporal.TimeZone);
- assert.sameValue(fromPropertyBagString.id, "UTC");
-}
diff --git a/polyfill/test/TimeZone/constructor/from/argument-primitive.js b/polyfill/test/TimeZone/constructor/from/argument-primitive.js
deleted file mode 100644
index 23f35b48a9..0000000000
--- a/polyfill/test/TimeZone/constructor/from/argument-primitive.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: RangeError thrown if a value is passed that converts to an invalid string
-features: [Temporal]
----*/
-
-class CustomTimeZone extends Temporal.TimeZone {}
-
-const primitives = [
- undefined,
- null,
- true,
- "string",
- "local",
- "Z",
- "-08:00[America/Vancouver]",
- "+00:01.1",
- "-01.1",
- "1994-11-05T08:15:30+25:00",
- "1994-11-05T13:15:30-25:00",
- 7,
- 4.2,
- 12n,
-];
-
-const thisValues = [
- Temporal.TimeZone,
- CustomTimeZone,
- {},
- null,
- undefined,
- 7,
-];
-
-for (const thisValue of thisValues) {
- for (const primitive of primitives) {
- assert.throws(RangeError, () => Temporal.TimeZone.from.call(thisValue, primitive));
- }
-
- const symbol = Symbol();
- assert.throws(TypeError, () => Temporal.TimeZone.from.call(thisValue, symbol));
-}
diff --git a/polyfill/test/TimeZone/constructor/from/argument-valid.js b/polyfill/test/TimeZone/constructor/from/argument-valid.js
deleted file mode 100644
index 21c74a77f5..0000000000
--- a/polyfill/test/TimeZone/constructor/from/argument-valid.js
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Built-in time zones are parsed correctly out of valid strings
-features: [Temporal]
----*/
-
-const valids = [
- ["+01:00"],
- ["-01:00"],
- ["+0330", "+03:30"],
- ["-0650", "-06:50"],
- ["-08", "-08:00"],
- ["\u221201:00", "-01:00"],
- ["\u22120650", "-06:50"],
- ["\u221208", "-08:00"],
- ["+01:00:00", "+01:00"],
- ["-010000", "-01:00"],
- ["+03:30:00.000000001", "+03:30:00.000000001"],
- ["-033000.1", "-03:30:00.1"],
- ["UTC"],
- ["1994-11-05T08:15:30-05:00", "-05:00"],
- ["1994-11-05T08:15:30\u221205:00", "-05:00"],
- ["1994-11-05T13:15:30Z", "UTC"],
-];
-
-for (const [valid, canonical = valid] of valids) {
- const result = Temporal.TimeZone.from(valid);
- assert.sameValue(Object.getPrototypeOf(result), Temporal.TimeZone.prototype);
- assert.sameValue(result.id, canonical);
- assert.sameValue(result.toString(), canonical);
-}
diff --git a/polyfill/test/TimeZone/constructor/from/builtin.js b/polyfill/test/TimeZone/constructor/from/builtin.js
deleted file mode 100644
index d4953fe1f7..0000000000
--- a/polyfill/test/TimeZone/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Tests that Temporal.TimeZone.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/constructor/from/length.js b/polyfill/test/TimeZone/constructor/from/length.js
deleted file mode 100644
index 526772f93e..0000000000
--- a/polyfill/test/TimeZone/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Temporal.TimeZone.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/from/name.js b/polyfill/test/TimeZone/constructor/from/name.js
deleted file mode 100644
index 9b8ef82cfe..0000000000
--- a/polyfill/test/TimeZone/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Temporal.TimeZone.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/from/not-a-constructor.js b/polyfill/test/TimeZone/constructor/from/not-a-constructor.js
deleted file mode 100644
index c4ea8fdd1e..0000000000
--- a/polyfill/test/TimeZone/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Temporal.TimeZone.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.from), false,
- "isConstructor(Temporal.TimeZone.from)");
diff --git a/polyfill/test/TimeZone/constructor/from/prop-desc.js b/polyfill/test/TimeZone/constructor/from/prop-desc.js
deleted file mode 100644
index 42c0e5c3ff..0000000000
--- a/polyfill/test/TimeZone/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: The "from" property of Temporal.TimeZone
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.from,
- "function",
- "`typeof TimeZone.from` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/constructor/from/subclassing-ignored.js b/polyfill/test/TimeZone/constructor/from/subclassing-ignored.js
deleted file mode 100644
index beb9251068..0000000000
--- a/polyfill/test/TimeZone/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.TimeZone,
- "from",
- ["UTC"],
- (result) => {
- assert.sameValue(result.id, "UTC", "id property of result");
- assert.sameValue(result.toString(), "UTC", "toString() of result");
- },
-);
diff --git a/polyfill/test/TimeZone/constructor/from/timezone-string-datetime.js b/polyfill/test/TimeZone/constructor/from/timezone-string-datetime.js
deleted file mode 100644
index 8b44409dae..0000000000
--- a/polyfill/test/TimeZone/constructor/from/timezone-string-datetime.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.TimeZone.from(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.TimeZone.from({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = Temporal.TimeZone.from(timeZone);
-assert.sameValue(result1.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = Temporal.TimeZone.from({ timeZone });
-assert.sameValue(result2.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = Temporal.TimeZone.from(timeZone);
-assert.sameValue(result3.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = Temporal.TimeZone.from({ timeZone });
-assert.sameValue(result4.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = Temporal.TimeZone.from(timeZone);
-assert.sameValue(result5.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = Temporal.TimeZone.from({ timeZone });
-assert.sameValue(result6.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = Temporal.TimeZone.from(timeZone);
-assert.sameValue(result7.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = Temporal.TimeZone.from({ timeZone });
-assert.sameValue(result8.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = Temporal.TimeZone.from(timeZone);
-assert.sameValue(result9.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = Temporal.TimeZone.from({ timeZone });
-assert.sameValue(result10.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-not-datetime.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-not-datetime.js
deleted file mode 100644
index caf2725370..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-not-datetime.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Appropriate error thrown when argument cannot be converted to Temporal.PlainDateTime
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-assert.throws(RangeError, () => timeZone.getInstantFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getInstantFor(null), "null");
-assert.throws(RangeError, () => timeZone.getInstantFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getInstantFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getInstantFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getInstantFor(5), "number");
-assert.throws(RangeError, () => timeZone.getInstantFor(5n), "bigint");
-assert.throws(TypeError, () => timeZone.getInstantFor({ year: 2020 }), "plain object");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-plaindate.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-plaindate.js
deleted file mode 100644
index eb15eb6ca4..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-plaindate.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.timezone.prototype.getinstantfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date) => {
- const timezone = new Temporal.TimeZone("UTC");
- const result = timezone.getInstantFor(date);
- assert.sameValue(result.epochNanoseconds, 957_225_600_000_000_000n, "epochNanoseconds result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 61a009f4d9..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.timezone.prototype.getinstantfor step 3:
- 3. Set _dateTime_ ? ToTemporalDateTime(_dateTime_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const conversionTimeZone = new Temporal.TimeZone("UTC"); // should not be used to interpret the argument
-const instant = conversionTimeZone.getInstantFor(datetime);
-
-assert.sameValue(instant.epochNanoseconds, 3661_001_000_999n);
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 891716b420..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.TimeZone("UTC");
-const result = instance.getInstantFor(datetime);
-assert.sameValue(result.epochNanoseconds, -13849764_999_999_999n);
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index fcb0d37862..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(RangeError, () => builtinTimeZone.getInstantFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 1c2a4704b3..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(RangeError, () => builtinTimeZone.getInstantFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 9aa6e7fc1f..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(TypeError, () => builtinTimeZone.getInstantFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/balance-negative-time-units.js b/polyfill/test/TimeZone/prototype/getInstantFor/balance-negative-time-units.js
deleted file mode 100644
index 9c3056d794..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/balance-negative-time-units.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-builtintimezonegetinstantfor step 13.a:
- a. Let _earlier_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], 0, 0, 0, 0, 0, 0, 0, 0, 0, −_nanoseconds_, *"constrain"*).
- sec-temporal.timezone.prototype.getinstantfor step 6:
- 6. Return ? BuiltinTimeZoneGetInstantFor(_timeZone_, _dateTime_, _disambiguation_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const shiftInstant = new Temporal.Instant(3661_001_001_001n);
-const tz = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-const datetime = new Temporal.PlainDateTime(1970, 1, 1, 1, 1, 1, 1, 1, 1);
-
-// This code path is encountered if disambiguation is `earlier` and the shift is
-// a spring-forward change
-tz.getInstantFor(datetime, { disambiguation: "earlier" });
-
-const expected = [
- "1970-01-01T01:01:01.001001001",
- "1970-01-01T01:01:01.001000999",
-];
-assert.compareArray(tz.getPossibleInstantsForCalledWith, expected);
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/branding.js b/polyfill/test/TimeZone/prototype/getInstantFor/branding.js
deleted file mode 100644
index b8c570cadc..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getInstantFor = Temporal.TimeZone.prototype.getInstantFor;
-
-assert.sameValue(typeof getInstantFor, "function");
-
-assert.throws(TypeError, () => getInstantFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getInstantFor.call(null), "null");
-assert.throws(TypeError, () => getInstantFor.call(true), "true");
-assert.throws(TypeError, () => getInstantFor.call(""), "empty string");
-assert.throws(TypeError, () => getInstantFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getInstantFor.call(1), "1");
-assert.throws(TypeError, () => getInstantFor.call({}), "plain object");
-assert.throws(TypeError, () => getInstantFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getInstantFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/builtin.js b/polyfill/test/TimeZone/prototype/getInstantFor/builtin.js
deleted file mode 100644
index fac2790e99..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: >
- Tests that Temporal.TimeZone.prototype.getInstantFor
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getInstantFor),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getInstantFor),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getInstantFor),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getInstantFor.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/TimeZone/prototype/getInstantFor/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 4a8f43ced0..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const pdt = new Temporal.PlainDateTime(1970, 1, 1, 0, 0, 0, 0, 0, 0, calendar);
-
-["earlier", "compatible", "later"].forEach((disambiguation) => {
- calendar.dateAddCallCount = 0;
-
- timeZone.getInstantFor(pdt, { disambiguation });
- assert.sameValue(calendar.dateAddCallCount, 1, `calling with disambiguation ${disambiguation}`);
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-fields-iterable.js b/polyfill/test/TimeZone/prototype/getInstantFor/calendar-fields-iterable.js
deleted file mode 100644
index 240e42c2a9..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-fields-iterable.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.timezone.prototype.getinstantfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const timeZone = new Temporal.TimeZone("UTC");
-timeZone.getInstantFor({ year: 2000, month: 5, day: 2, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-temporal-object.js b/polyfill/test/TimeZone/prototype/getInstantFor/calendar-temporal-object.js
deleted file mode 100644
index 7f44cd88d1..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.timezone.prototype.getinstantfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const timeZone = new Temporal.TimeZone("UTC");
- timeZone.getInstantFor({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-invalid-string.js b/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-invalid-string.js
deleted file mode 100644
index b2de9799a9..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: RangeError thrown when disambiguation option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.timezone.prototype.getinstantfor step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2001, 9, 9, 1, 46, 40, 987, 654, 321);
-const timeZone = new Temporal.TimeZone("UTC");
-assert.throws(RangeError, () => timeZone.getInstantFor(datetime, { disambiguation: "other string" }));
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-undefined.js b/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-undefined.js
deleted file mode 100644
index 1cfacf1981..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-undefined.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Fallback value for disambiguation option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.timezone.prototype.getinstantfor step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-const springForwardDateTime = new Temporal.PlainDateTime(2000, 4, 2, 2, 30);
-const fallBackDateTime = new Temporal.PlainDateTime(2000, 10, 29, 1, 30);
-
-[
- [springForwardDateTime, 954671400_000_000_000n],
- [fallBackDateTime, 972808200_000_000_000n],
-].forEach(([datetime, expected]) => {
- const explicit = timeZone.getInstantFor(datetime, { disambiguation: undefined });
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
- const implicit = timeZone.getInstantFor(datetime, {});
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
- const lambda = timeZone.getInstantFor(datetime, () => {});
- assert.sameValue(lambda.epochNanoseconds, expected, "default disambiguation is compatible");
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-wrong-type.js b/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-wrong-type.js
deleted file mode 100644
index 4a8988e55d..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/disambiguation-wrong-type.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Type conversions for disambiguation option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.timezone.prototype.getinstantfor step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.PlainDateTime(2001, 9, 9, 1, 46, 40, 987, 654, 321);
-const timeZone = new Temporal.TimeZone("UTC");
-TemporalHelpers.checkStringOptionWrongType("disambiguation", "compatible",
- (disambiguation) => timeZone.getInstantFor(datetime, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js b/polyfill/test/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js
deleted file mode 100644
index 52c877b2d1..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.timezone.prototype.getinstantfor
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.getInstantFor({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.getInstantFor({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/length.js b/polyfill/test/TimeZone/prototype/getInstantFor/length.js
deleted file mode 100644
index 4188f547e6..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Temporal.TimeZone.prototype.getInstantFor.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getInstantFor, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/name.js b/polyfill/test/TimeZone/prototype/getInstantFor/name.js
deleted file mode 100644
index 9f369768c4..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: Temporal.TimeZone.prototype.getInstantFor.name is "getInstantFor".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getInstantFor, "name", {
- value: "getInstantFor",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getInstantFor/not-a-constructor.js
deleted file mode 100644
index 1c1429ce13..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: >
- Temporal.TimeZone.prototype.getInstantFor does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getInstantFor();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getInstantFor), false,
- "isConstructor(Temporal.TimeZone.prototype.getInstantFor)");
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/options-undefined.js b/polyfill/test/TimeZone/prototype/getInstantFor/options-undefined.js
deleted file mode 100644
index 350e686367..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/options-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-includes: [temporalHelpers.js]
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetimeEarlier = new Temporal.PlainDateTime(2000, 10, 29, 1, 34, 56, 987, 654, 321);
-const datetimeLater = new Temporal.PlainDateTime(2000, 4, 2, 2, 34, 56, 987, 654, 321);
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-
-[
- [datetimeEarlier, 972808496987654321n],
- [datetimeLater, 954671696987654321n],
-].forEach(([datetime, expected]) => {
- const explicit = timeZone.getInstantFor(datetime, undefined);
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
-
- const implicit = timeZone.getInstantFor(datetime);
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/prop-desc.js b/polyfill/test/TimeZone/prototype/getInstantFor/prop-desc.js
deleted file mode 100644
index 2eb0f58765..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: The "getInstantFor" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getInstantFor,
- "function",
- "`typeof TimeZone.prototype.getInstantFor` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getInstantFor", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getInstantFor/read-time-fields-before-datefromfields.js b/polyfill/test/TimeZone/prototype/getInstantFor/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 6a6fca8c6d..0000000000
--- a/polyfill/test/TimeZone/prototype/getInstantFor/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getinstantfor
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.timezone.prototype.getinstantfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timezone = new Temporal.TimeZone("UTC");
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const result = timezone.getInstantFor({ year: 1970, month: 1, day: 1, calendar });
-
-assert.sameValue(result.epochNanoseconds, 0n, "epochNanoseconds result");
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/argument-zoneddatetime.js b/polyfill/test/TimeZone/prototype/getNextTransition/argument-zoneddatetime.js
deleted file mode 100644
index bf351bbd35..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.timezone.prototype.getnexttransition step 3:
- 3. Set _startingPoint_ to ? ToTemporalInstant(_startingPoint_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const timeZone = Temporal.TimeZone.from("UTC");
- const result = timeZone.getNextTransition(datetime);
- assert.sameValue(result, null, "transition result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/branding.js b/polyfill/test/TimeZone/prototype/getNextTransition/branding.js
deleted file mode 100644
index 6a53945fab..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getNextTransition = Temporal.TimeZone.prototype.getNextTransition;
-
-assert.sameValue(typeof getNextTransition, "function");
-
-assert.throws(TypeError, () => getNextTransition.call(undefined), "undefined");
-assert.throws(TypeError, () => getNextTransition.call(null), "null");
-assert.throws(TypeError, () => getNextTransition.call(true), "true");
-assert.throws(TypeError, () => getNextTransition.call(""), "empty string");
-assert.throws(TypeError, () => getNextTransition.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getNextTransition.call(1), "1");
-assert.throws(TypeError, () => getNextTransition.call({}), "plain object");
-assert.throws(TypeError, () => getNextTransition.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getNextTransition.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/builtin.js b/polyfill/test/TimeZone/prototype/getNextTransition/builtin.js
deleted file mode 100644
index 4964f48b53..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: >
- Tests that Temporal.TimeZone.prototype.getNextTransition
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getNextTransition),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getNextTransition),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getNextTransition),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getNextTransition.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/instant-string.js b/polyfill/test/TimeZone/prototype/getNextTransition/instant-string.js
deleted file mode 100644
index cce9d82bae..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/instant-string.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("America/Vancouver");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getNextTransition(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getNextTransition(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-[
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-].forEach((str) => instance.getNextTransition(str));
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/length.js b/polyfill/test/TimeZone/prototype/getNextTransition/length.js
deleted file mode 100644
index 248f2416f1..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: Temporal.TimeZone.prototype.getNextTransition.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getNextTransition, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/name.js b/polyfill/test/TimeZone/prototype/getNextTransition/name.js
deleted file mode 100644
index 0fdb93d632..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: Temporal.TimeZone.prototype.getNextTransition.name is "getNextTransition".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getNextTransition, "name", {
- value: "getNextTransition",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getNextTransition/not-a-constructor.js
deleted file mode 100644
index 5c57f04f86..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: >
- Temporal.TimeZone.prototype.getNextTransition does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getNextTransition();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getNextTransition), false,
- "isConstructor(Temporal.TimeZone.prototype.getNextTransition)");
diff --git a/polyfill/test/TimeZone/prototype/getNextTransition/prop-desc.js b/polyfill/test/TimeZone/prototype/getNextTransition/prop-desc.js
deleted file mode 100644
index 975d1bfd71..0000000000
--- a/polyfill/test/TimeZone/prototype/getNextTransition/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getnexttransition
-description: The "getNextTransition" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getNextTransition,
- "function",
- "`typeof TimeZone.prototype.getNextTransition` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getNextTransition", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-not-absolute.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-not-absolute.js
deleted file mode 100644
index 1f286cbb24..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-not-absolute.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Appropriate error thrown when argument cannot be converted to Temporal.Instant
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(null), "null");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getOffsetNanosecondsFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(5), "number");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor(5n), "bigint");
-assert.throws(RangeError, () => timeZone.getOffsetNanosecondsFor({}), "plain object");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-zoneddatetime.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-zoneddatetime.js
deleted file mode 100644
index a69dd03341..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.timezone.prototype.getoffsetnanosecondsfor step 3:
- 3. Set _instant_ to ? ToTemporalInstant(_instant_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const timeZone = Temporal.TimeZone.from("UTC");
- const result = timeZone.getOffsetNanosecondsFor(datetime);
- assert.sameValue(result, 0, "offset result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/branding.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
deleted file mode 100644
index a63ebda0f7..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getOffsetNanosecondsFor = Temporal.TimeZone.prototype.getOffsetNanosecondsFor;
-
-assert.sameValue(typeof getOffsetNanosecondsFor, "function");
-
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(null), "null");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(true), "true");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(""), "empty string");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(1), "1");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call({}), "plain object");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getOffsetNanosecondsFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/builtin.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/builtin.js
deleted file mode 100644
index de5637a15a..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: >
- Tests that Temporal.TimeZone.prototype.getOffsetNanosecondsFor
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getOffsetNanosecondsFor),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getOffsetNanosecondsFor),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getOffsetNanosecondsFor),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getOffsetNanosecondsFor.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js
deleted file mode 100644
index e6f6d4fc98..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getOffsetNanosecondsFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getOffsetNanosecondsFor(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-const valids = [
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-];
-for (const str of valids) {
- const result = instance.getOffsetNanosecondsFor(str);
- assert.sameValue(result, 0);
-}
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/length.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/length.js
deleted file mode 100644
index 7cb07fecf7..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Temporal.TimeZone.prototype.getOffsetNanosecondsFor.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getOffsetNanosecondsFor, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/name.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/name.js
deleted file mode 100644
index 79ef66486f..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Temporal.TimeZone.prototype.getOffsetNanosecondsFor.name is "getOffsetNanosecondsFor".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getOffsetNanosecondsFor, "name", {
- value: "getOffsetNanosecondsFor",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/not-a-constructor.js
deleted file mode 100644
index 5d9093eee6..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: >
- Temporal.TimeZone.prototype.getOffsetNanosecondsFor does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getOffsetNanosecondsFor();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getOffsetNanosecondsFor), false,
- "isConstructor(Temporal.TimeZone.prototype.getOffsetNanosecondsFor)");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/prop-desc.js b/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/prop-desc.js
deleted file mode 100644
index fceac4116d..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetNanosecondsFor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: The "getOffsetNanosecondsFor" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getOffsetNanosecondsFor,
- "function",
- "`typeof TimeZone.prototype.getOffsetNanosecondsFor` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getOffsetNanosecondsFor", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute-getOffsetNanosecondsFor-override.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute-getOffsetNanosecondsFor-override.js
deleted file mode 100644
index 9922140e4d..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute-getOffsetNanosecondsFor-override.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: timeZone.getOffsetNanosecondsFor not called when argument cannot be converted to Temporal.Instant
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-let called = false;
-timeZone.getOffsetNanosecondsFor = () => called = true;
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(null), "null");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getOffsetStringFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(5), "number");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(5n), "bigint");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor({}), "plain object");
-assert.sameValue(called, false);
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute.js
deleted file mode 100644
index 4ffcc863db..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-not-absolute.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Appropriate error thrown when argument cannot be converted to Temporal.Instant
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(null), "null");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(""), "string");
-assert.throws(TypeError, () => timeZone.getOffsetStringFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(5), "number");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor(5n), "bigint");
-assert.throws(RangeError, () => timeZone.getOffsetStringFor({}), "plain object");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-zoneddatetime.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-zoneddatetime.js
deleted file mode 100644
index 1169032902..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.timezone.prototype.getoffsetstringfor step 3:
- 3. Set _instant_ to ? ToTemporalInstant(_instant_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const timeZone = Temporal.TimeZone.from("UTC");
- const result = timeZone.getOffsetStringFor(datetime);
- assert.sameValue(result, "+00:00", "offset result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/branding.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/branding.js
deleted file mode 100644
index 0fc6c49806..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getOffsetStringFor = Temporal.TimeZone.prototype.getOffsetStringFor;
-
-assert.sameValue(typeof getOffsetStringFor, "function");
-
-assert.throws(TypeError, () => getOffsetStringFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getOffsetStringFor.call(null), "null");
-assert.throws(TypeError, () => getOffsetStringFor.call(true), "true");
-assert.throws(TypeError, () => getOffsetStringFor.call(""), "empty string");
-assert.throws(TypeError, () => getOffsetStringFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getOffsetStringFor.call(1), "1");
-assert.throws(TypeError, () => getOffsetStringFor.call({}), "plain object");
-assert.throws(TypeError, () => getOffsetStringFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getOffsetStringFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/builtin.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/builtin.js
deleted file mode 100644
index 9d090b07f3..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: >
- Tests that Temporal.TimeZone.prototype.getOffsetStringFor
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getOffsetStringFor),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getOffsetStringFor),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getOffsetStringFor),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getOffsetStringFor.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/getOffsetNanosecondsFor-undefined.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/getOffsetNanosecondsFor-undefined.js
deleted file mode 100644
index 883b12dcac..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/getOffsetNanosecondsFor-undefined.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Fall back to calling intrinsic getOffsetNanosecondsFor() when method is deleted
-features: [Temporal]
----*/
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z");
-const timeZone = Temporal.TimeZone.from("Europe/Madrid");
-timeZone.getOffsetNanosecondsFor = undefined;
-assert.sameValue(timeZone.getOffsetStringFor(instant), "+01:00");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/instant-string.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/instant-string.js
deleted file mode 100644
index 583addf70a..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/instant-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getOffsetStringFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getOffsetStringFor(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-const valids = [
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-];
-for (const str of valids) {
- const result = instance.getOffsetStringFor(str);
- assert.sameValue(result, "+00:00");
-}
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/length.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/length.js
deleted file mode 100644
index f8bb1d7b0b..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Temporal.TimeZone.prototype.getOffsetStringFor.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getOffsetStringFor, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/name.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/name.js
deleted file mode 100644
index 0be05ed49d..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Temporal.TimeZone.prototype.getOffsetStringFor.name is "getOffsetStringFor".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getOffsetStringFor, "name", {
- value: "getOffsetStringFor",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/not-a-constructor.js
deleted file mode 100644
index a2b65b5f4a..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: >
- Temporal.TimeZone.prototype.getOffsetStringFor does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getOffsetStringFor();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getOffsetStringFor), false,
- "isConstructor(Temporal.TimeZone.prototype.getOffsetStringFor)");
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/prop-desc.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/prop-desc.js
deleted file mode 100644
index 7840a89175..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: The "getOffsetStringFor" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getOffsetStringFor,
- "function",
- "`typeof TimeZone.prototype.getOffsetStringFor` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getOffsetStringFor", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e9c1270dfd..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => timeZone.getOffsetStringFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f5690f73f4..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => timeZone.getOffsetStringFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 4fd73d5c51..0000000000
--- a/polyfill/test/TimeZone/prototype/getOffsetStringFor/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(TypeError, () => timeZone.getOffsetStringFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-negative-epochnanoseconds.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-negative-epochnanoseconds.js
deleted file mode 100644
index a87df23435..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const instant = new Temporal.Instant(-13849764_999_999_999n);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.TimeZone("UTC");
-const result = instance.getPlainDateTimeFor(instant);
-TemporalHelpers.assertPlainDateTime(result, 1969, 7, "M07", 24, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute-getOffsetNanosecondsFor-override.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute-getOffsetNanosecondsFor-override.js
deleted file mode 100644
index ffc3816506..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute-getOffsetNanosecondsFor-override.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: timeZone.getOffsetNanosecondsFor not called when argument cannot be converted to Temporal.Instant
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-let called = false;
-timeZone.getOffsetNanosecondsFor = () => called = true;
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(null), "null");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getPlainDateTimeFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(5), "number");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(5n), "bigint");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor({}), "plain object");
-assert.sameValue(called, false);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute.js
deleted file mode 100644
index 93867b6a27..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-not-absolute.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Appropriate error thrown when argument cannot be converted to Temporal.Instant
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(null), "null");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getPlainDateTimeFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(5), "number");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(5n), "bigint");
-assert.throws(RangeError, () => timeZone.getPlainDateTimeFor({}), "plain object");
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-zoneddatetime.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-zoneddatetime.js
deleted file mode 100644
index a9e8551b41..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.timezone.prototype.getplaindatetimefor step 2:
- 2. Set _instant_ to ? ToTemporalInstant(_instant_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const timeZone = Temporal.TimeZone.from("UTC");
- const result = timeZone.getPlainDateTimeFor(datetime);
- TemporalHelpers.assertPlainDateTime(result, 2001, 9, "M09", 9, 1, 46, 40, 987, 654, 321);
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/balance-negative-time-units.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/balance-negative-time-units.js
deleted file mode 100644
index 02af26a36b..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/balance-negative-time-units.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.timezone.prototype.getplaindatetimefor step 4:
- 4. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const instant = new Temporal.Instant(1001n);
-
-const pdt = tz.getPlainDateTimeFor(instant);
-
-TemporalHelpers.assertPlainDateTime(pdt, 1970, 1, "M01", 1, 0, 0, 0, 0, 0, 999);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/builtin.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/builtin.js
deleted file mode 100644
index 26ce3f02fb..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: >
- Tests that Temporal.TimeZone.prototype.getPlainDateTimeFor
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getPlainDateTimeFor),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getPlainDateTimeFor),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getPlainDateTimeFor),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getPlainDateTimeFor.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js
deleted file mode 100644
index acd488cf7f..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.instant.prototype.tozoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.instant.prototype.tozoneddatetime step 6:
- 6. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- const timezone = new Temporal.TimeZone("UTC");
- const result = timezone.getPlainDateTimeFor(instant, temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-undefined.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-undefined.js
deleted file mode 100644
index 92add0be1c..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/calendar-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [Temporal]
----*/
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z");
-const timeZone = Temporal.TimeZone.from("UTC");
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not call Calendar.from");
- },
-});
-
-const result1 = timeZone.getPlainDateTimeFor(instant);
-assert.sameValue(result1.calendar.toString(), "iso8601");
-
-const result2 = timeZone.getPlainDateTimeFor(instant, undefined);
-assert.sameValue(result2.calendar.toString(), "iso8601");
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/custom-timezone.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/custom-timezone.js
deleted file mode 100644
index 7b831f0f11..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/custom-timezone.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: getOffsetNanosecondsFor is called by getPlainDateTimeFor
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z");
-const timeZone = new Proxy({
- getOffsetNanosecondsFor(instantArg) {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- assert.sameValue(instantArg, instant);
- return 9876543210123;
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const result = Temporal.TimeZone.prototype.getPlainDateTimeFor.call(timeZone, instant);
-TemporalHelpers.assertPlainDateTime(result, 1975, 2, "M02", 2, 17, 10, 12, 666, 666, 912);
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/getOffsetNanosecondsFor-undefined.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/getOffsetNanosecondsFor-undefined.js
deleted file mode 100644
index cf4ad976fe..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/getOffsetNanosecondsFor-undefined.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Fall back to calling intrinsic getOffsetNanosecondsFor() when method is deleted
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = Temporal.Instant.from("1975-02-02T14:25:36.123456789Z");
-const timeZone = Temporal.TimeZone.from("Europe/Madrid");
-timeZone.getOffsetNanosecondsFor = undefined;
-const result = timeZone.getPlainDateTimeFor(instant);
-TemporalHelpers.assertPlainDateTime(result, 1975, 2, "M02", 2, 15, 25, 36, 123, 456, 789);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/instant-string.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/instant-string.js
deleted file mode 100644
index fbbd9f5c11..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/instant-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getPlainDateTimeFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getPlainDateTimeFor(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result1, 1970, 1, "M01", 1, 0, 0, 0, 0, 0, 0, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result2, 1969, 12, "M12", 31, 23, 0, 0, 0, 0, 0, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result3, 1970, 1, "M01", 1, 0, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result4, 1969, 12, "M12", 31, 23, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/length.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/length.js
deleted file mode 100644
index e30cab7528..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Temporal.TimeZone.prototype.getPlainDateTimeFor.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPlainDateTimeFor, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/name.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/name.js
deleted file mode 100644
index 5e0b9b08af..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Temporal.TimeZone.prototype.getPlainDateTimeFor.name is "getPlainDateTimeFor".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPlainDateTimeFor, "name", {
- value: "getPlainDateTimeFor",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/not-a-constructor.js
deleted file mode 100644
index 4c5226e170..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: >
- Temporal.TimeZone.prototype.getPlainDateTimeFor does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getPlainDateTimeFor();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getPlainDateTimeFor), false,
- "isConstructor(Temporal.TimeZone.prototype.getPlainDateTimeFor)");
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/pre-epoch.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/pre-epoch.js
deleted file mode 100644
index 4dddb892bb..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/pre-epoch.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Test of basic functionality for an exact time earlier than the Unix epoch
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instant = Temporal.Instant.from("1969-07-16T13:32:01.234567891Z");
-assert.sameValue(instant.toString(), "1969-07-16T13:32:01.234567891Z");
-const timeZone = Temporal.TimeZone.from("-04:00");
-const dateTime = timeZone.getPlainDateTimeFor(instant);
-TemporalHelpers.assertPlainDateTime(dateTime, 1969, 7, "M07", 16, 9, 32, 1, 234, 567, 891);
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/prop-desc.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/prop-desc.js
deleted file mode 100644
index fb9003568c..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: The "getPlainDateTimeFor" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getPlainDateTimeFor,
- "function",
- "`typeof TimeZone.prototype.getPlainDateTimeFor` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getPlainDateTimeFor", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e6c3ef7623..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c50b8ede4f..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(RangeError, () => timeZone.getPlainDateTimeFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index eb2bb198bd..0000000000
--- a/polyfill/test/TimeZone/prototype/getPlainDateTimeFor/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const instant = new Temporal.Instant(1_000_000_000_987_654_321n);
- assert.throws(TypeError, () => timeZone.getPlainDateTimeFor(instant));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-not-datetime.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-not-datetime.js
deleted file mode 100644
index f610797936..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-not-datetime.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Appropriate error thrown when argument cannot be converted to Temporal.PlainDateTime
-features: [Temporal]
----*/
-
-const timeZone = Temporal.TimeZone.from("UTC");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(undefined), "undefined");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(null), "null");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(true), "boolean");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(""), "empty string");
-assert.throws(TypeError, () => timeZone.getPossibleInstantsFor(Symbol()), "Symbol");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(5), "number");
-assert.throws(RangeError, () => timeZone.getPossibleInstantsFor(5n), "bigint");
-assert.throws(TypeError, () => timeZone.getPossibleInstantsFor({}), "plain object");
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-plaindate.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-plaindate.js
deleted file mode 100644
index d916b5c499..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-plaindate.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.until
-description: Fast path for converting Temporal.PlainDate to Temporal.PlainDateTime by reading internal slots
-info: |
- sec-temporal.timezone.prototype.getpossibleinstantsfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.b:
- b. If _item_ has an [[InitializedTemporalDate]] internal slot, then
- i. Return ? CreateTemporalDateTime(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], 0, 0, 0, 0, 0, 0, _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalPlainDateTimeFastPath((date) => {
- const timezone = new Temporal.TimeZone("UTC");
- const result = timezone.getPossibleInstantsFor(date);
- assert.sameValue(result.length, 1, "one possible instant");
- assert.sameValue(result[0].epochNanoseconds, 957_225_600_000_000_000n, "epochNanoseconds result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index 7b5b97cf52..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaldatetime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.timezone.prototype.getpossibleinstantsfor step 3:
- 3. Set _dateTime_ ? ToTemporalDateTime(_dateTime_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const conversionTimeZone = new Temporal.TimeZone("UTC"); // should not be used to interpret the argument
-const instants = conversionTimeZone.getPossibleInstantsFor(datetime);
-
-assert.sameValue(instants.length, 1);
-assert.sameValue(instants[0].epochNanoseconds, 3661_001_000_999n);
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 6b77502afd..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [compareArray.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.TimeZone("UTC");
-const result = instance.getPossibleInstantsFor(datetime);
-assert.compareArray(result.map((i) => i.epochNanoseconds), [-13849764_999_999_999n]);
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 962bf65e23..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(RangeError, () => builtinTimeZone.getPossibleInstantsFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 47a00eb45e..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(RangeError, () => builtinTimeZone.getPossibleInstantsFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f6a2a9cd7b..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const builtinTimeZone = new Temporal.TimeZone("UTC");
- assert.throws(TypeError, () => builtinTimeZone.getPossibleInstantsFor(datetime));
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/branding.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/branding.js
deleted file mode 100644
index 431d3c520a..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getPossibleInstantsFor = Temporal.TimeZone.prototype.getPossibleInstantsFor;
-
-assert.sameValue(typeof getPossibleInstantsFor, "function");
-
-assert.throws(TypeError, () => getPossibleInstantsFor.call(undefined), "undefined");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(null), "null");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(true), "true");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(""), "empty string");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(1), "1");
-assert.throws(TypeError, () => getPossibleInstantsFor.call({}), "plain object");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getPossibleInstantsFor.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/builtin.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/builtin.js
deleted file mode 100644
index 05623e37a2..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: >
- Tests that Temporal.TimeZone.prototype.getPossibleInstantsFor
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getPossibleInstantsFor),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getPossibleInstantsFor),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getPossibleInstantsFor),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getPossibleInstantsFor.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-fields-iterable.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-fields-iterable.js
deleted file mode 100644
index c5010034a8..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-fields-iterable.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.timezone.prototype.getpossibleinstantsfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const timeZone = new Temporal.TimeZone("UTC");
-timeZone.getPossibleInstantsFor({ year: 2000, month: 5, day: 2, calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-temporal-object.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-temporal-object.js
deleted file mode 100644
index 1e81176a1d..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.timezone.prototype.getpossibleinstantsfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const timeZone = new Temporal.TimeZone("UTC");
- timeZone.getPossibleInstantsFor({ year: 2000, month: 5, day: 2, calendar: temporalObject });
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js
deleted file mode 100644
index 371891da0c..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.getPossibleInstantsFor({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.getPossibleInstantsFor({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/length.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/length.js
deleted file mode 100644
index 4be7b6d851..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Temporal.TimeZone.prototype.getPossibleInstantsFor.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPossibleInstantsFor, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/name.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/name.js
deleted file mode 100644
index 59d0a384bd..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: Temporal.TimeZone.prototype.getPossibleInstantsFor.name is "getPossibleInstantsFor".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPossibleInstantsFor, "name", {
- value: "getPossibleInstantsFor",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/not-a-constructor.js
deleted file mode 100644
index 2f3b6de5cd..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: >
- Temporal.TimeZone.prototype.getPossibleInstantsFor does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getPossibleInstantsFor();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getPossibleInstantsFor), false,
- "isConstructor(Temporal.TimeZone.prototype.getPossibleInstantsFor)");
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/prop-desc.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/prop-desc.js
deleted file mode 100644
index 4ab7bba6a9..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: The "getPossibleInstantsFor" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getPossibleInstantsFor,
- "function",
- "`typeof TimeZone.prototype.getPossibleInstantsFor` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getPossibleInstantsFor", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/read-time-fields-before-datefromfields.js b/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/read-time-fields-before-datefromfields.js
deleted file mode 100644
index fd9cfc9369..0000000000
--- a/polyfill/test/TimeZone/prototype/getPossibleInstantsFor/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.timezone.prototype.getpossibleinstantsfor step 3:
- 3. Set _dateTime_ to ? ToTemporalDateTime(_dateTime_).
- sec-temporal-totemporaldatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timezone = new Temporal.TimeZone("UTC");
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const result = timezone.getPossibleInstantsFor({ year: 1970, month: 1, day: 1, calendar });
-
-assert.sameValue(result.length, 1, "result array length");
-assert.sameValue(result[0].epochNanoseconds, 0n, "epochNanoseconds result");
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/argument-zoneddatetime.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/argument-zoneddatetime.js
deleted file mode 100644
index 25b517f90a..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/argument-zoneddatetime.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: Fast path for converting Temporal.ZonedDateTime to Temporal.Instant
-info: |
- sec-temporal.timezone.prototype.getprevioustransition step 3:
- 3. Set _startingPoint_ to ? ToTemporalInstant(_startingPoint_).
- sec-temporal-totemporalinstant step 1.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return ! CreateTemporalInstant(_item_.[[Nanoseconds]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalInstantFastPath((datetime) => {
- const timeZone = Temporal.TimeZone.from("UTC");
- const result = timeZone.getPreviousTransition(datetime);
- assert.sameValue(result, null, "transition result");
-});
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/branding.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/branding.js
deleted file mode 100644
index eaa3530e46..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getPreviousTransition = Temporal.TimeZone.prototype.getPreviousTransition;
-
-assert.sameValue(typeof getPreviousTransition, "function");
-
-assert.throws(TypeError, () => getPreviousTransition.call(undefined), "undefined");
-assert.throws(TypeError, () => getPreviousTransition.call(null), "null");
-assert.throws(TypeError, () => getPreviousTransition.call(true), "true");
-assert.throws(TypeError, () => getPreviousTransition.call(""), "empty string");
-assert.throws(TypeError, () => getPreviousTransition.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getPreviousTransition.call(1), "1");
-assert.throws(TypeError, () => getPreviousTransition.call({}), "plain object");
-assert.throws(TypeError, () => getPreviousTransition.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => getPreviousTransition.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/builtin.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/builtin.js
deleted file mode 100644
index 4fc7ff1c31..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: >
- Tests that Temporal.TimeZone.prototype.getPreviousTransition
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.getPreviousTransition),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.getPreviousTransition),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.getPreviousTransition),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.getPreviousTransition.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/instant-string.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/instant-string.js
deleted file mode 100644
index 15dab5701c..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/instant-string.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("America/Vancouver");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getPreviousTransition(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getPreviousTransition(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-[
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-].forEach((str) => instance.getPreviousTransition(str));
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/length.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/length.js
deleted file mode 100644
index 83cb3c8abe..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: Temporal.TimeZone.prototype.getPreviousTransition.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPreviousTransition, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/name.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/name.js
deleted file mode 100644
index 0dc22a2a50..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: Temporal.TimeZone.prototype.getPreviousTransition.name is "getPreviousTransition".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.getPreviousTransition, "name", {
- value: "getPreviousTransition",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/not-a-constructor.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/not-a-constructor.js
deleted file mode 100644
index 12f2d39e18..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: >
- Temporal.TimeZone.prototype.getPreviousTransition does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.getPreviousTransition();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.getPreviousTransition), false,
- "isConstructor(Temporal.TimeZone.prototype.getPreviousTransition)");
diff --git a/polyfill/test/TimeZone/prototype/getPreviousTransition/prop-desc.js b/polyfill/test/TimeZone/prototype/getPreviousTransition/prop-desc.js
deleted file mode 100644
index a2e3c75e5b..0000000000
--- a/polyfill/test/TimeZone/prototype/getPreviousTransition/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getprevioustransition
-description: The "getPreviousTransition" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.getPreviousTransition,
- "function",
- "`typeof TimeZone.prototype.getPreviousTransition` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "getPreviousTransition", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/id/no-toString.js b/polyfill/test/TimeZone/prototype/id/no-toString.js
deleted file mode 100644
index d9d457a1c4..0000000000
--- a/polyfill/test/TimeZone/prototype/id/no-toString.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.timezone.prototype.id
-description: TypeError thrown when toString property not present
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get timeZone.toString",
-];
-
-const timeZone = new Temporal.TimeZone("UTC");
-Object.defineProperty(timeZone, "toString", {
- get() {
- actual.push("get timeZone.toString");
- return undefined;
- },
-});
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.TimeZone.prototype, "id");
-assert.throws(TypeError, () => descriptor.get.call(timeZone));
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/TimeZone/prototype/id/plain-custom-timezone.js b/polyfill/test/TimeZone/prototype/id/plain-custom-timezone.js
deleted file mode 100644
index d5cf02a59b..0000000000
--- a/polyfill/test/TimeZone/prototype/id/plain-custom-timezone.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.timezone.prototype.id
-description: Getter calls toString() and returns its value
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "get timeZone[@@toPrimitive]",
- "get timeZone.toString",
- "call timeZone.toString",
-];
-
-const timeZone = new Proxy({
- toString() {
- actual.push("call timeZone.toString");
- return "time zone";
- },
-}, {
- has(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('has timeZone[@@toPrimitive]');
- } else {
- actual.push(`has timeZone.${property}`);
- }
- return property in target;
- },
- get(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('get timeZone[@@toPrimitive]');
- } else {
- actual.push(`get timeZone.${property}`);
- }
- return target[property];
- },
-});
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.TimeZone.prototype, "id");
-const result = descriptor.get.call(timeZone);
-assert.compareArray(actual, expected);
-assert.sameValue(result, "time zone");
diff --git a/polyfill/test/TimeZone/prototype/id/prop-desc.js b/polyfill/test/TimeZone/prototype/id/prop-desc.js
deleted file mode 100644
index 1887699b54..0000000000
--- a/polyfill/test/TimeZone/prototype/id/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.timezone.prototype.id
-description: The "id" property of Temporal.TimeZone.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.TimeZone.prototype, "id");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/TimeZone/prototype/toJSON/builtin.js b/polyfill/test/TimeZone/prototype/toJSON/builtin.js
deleted file mode 100644
index 37cecb9b12..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: >
- Tests that Temporal.TimeZone.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/toJSON/length.js b/polyfill/test/TimeZone/prototype/toJSON/length.js
deleted file mode 100644
index 295171903c..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: Temporal.TimeZone.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/toJSON/name.js b/polyfill/test/TimeZone/prototype/toJSON/name.js
deleted file mode 100644
index cdf784682f..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: Temporal.TimeZone.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/toJSON/not-a-constructor.js b/polyfill/test/TimeZone/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index 24c036a544..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: >
- Temporal.TimeZone.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.toJSON), false,
- "isConstructor(Temporal.TimeZone.prototype.toJSON)");
diff --git a/polyfill/test/TimeZone/prototype/toJSON/prop-desc.js b/polyfill/test/TimeZone/prototype/toJSON/prop-desc.js
deleted file mode 100644
index e3d09cec62..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: The "toJSON" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.toJSON,
- "function",
- "`typeof TimeZone.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/toJSON/tostring-call.js b/polyfill/test/TimeZone/prototype/toJSON/tostring-call.js
deleted file mode 100644
index 537a7c3e15..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/tostring-call.js
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: toJSON() calls toString() and returns its value
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- 'get timeZone[@@toPrimitive]',
- 'get timeZone.toString',
- 'call timeZone.toString',
-];
-
-const timeZone = new Proxy(
- {
- toString() {
- actual.push(`call timeZone.toString`);
- return 'Etc/TAI';
- }
- },
- {
- has(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('has timeZone[@@toPrimitive]');
- } else {
- actual.push(`has timeZone.${property}`);
- }
- return property in target;
- },
- get(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('get timeZone[@@toPrimitive]');
- } else {
- actual.push(`get timeZone.${property}`);
- }
- return target[property];
- }
- }
-);
-
-const result = Temporal.TimeZone.prototype.toJSON.call(timeZone);
-assert.sameValue(result, 'Etc/TAI', 'toString');
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined-custom.js b/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined-custom.js
deleted file mode 100644
index d3411cbd6e..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined-custom.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: TypeError thrown when toString property not present
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- 'get timeZone[@@toPrimitive]',
- 'get timeZone.toString',
- 'get timeZone.valueOf',
-];
-
-const timeZone = new Proxy(
- {
- toString: undefined
- },
- {
- has(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('has timeZone[@@toPrimitive]');
- } else {
- actual.push(`has timeZone.${property}`);
- }
- return property in target;
- },
- get(target, property) {
- if (property === Symbol.toPrimitive) {
- actual.push('get timeZone[@@toPrimitive]');
- } else {
- actual.push(`get timeZone.${property}`);
- }
- return target[property];
- }
- }
-);
-
-assert.throws(TypeError, () => Temporal.TimeZone.prototype.toJSON.call(timeZone));
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined.js b/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined.js
deleted file mode 100644
index c0a9f06741..0000000000
--- a/polyfill/test/TimeZone/prototype/toJSON/tostring-undefined.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tojson
-description: TypeError thrown when toString property not present
-features: [Temporal]
----*/
-
-const tz = Temporal.TimeZone.from('UTC');
-tz.toString = undefined;
-
-assert.throws(TypeError, () => tz.toJSON());
diff --git a/polyfill/test/TimeZone/prototype/toString/branding.js b/polyfill/test/TimeZone/prototype/toString/branding.js
deleted file mode 100644
index ab7654cc73..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.TimeZone.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.TimeZone), "Temporal.TimeZone");
-assert.throws(TypeError, () => toString.call(Temporal.TimeZone.prototype), "Temporal.TimeZone.prototype");
diff --git a/polyfill/test/TimeZone/prototype/toString/builtin.js b/polyfill/test/TimeZone/prototype/toString/builtin.js
deleted file mode 100644
index 8cd8e1f2fb..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: >
- Tests that Temporal.TimeZone.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.TimeZone.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.TimeZone.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.TimeZone.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.TimeZone.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/TimeZone/prototype/toString/length.js b/polyfill/test/TimeZone/prototype/toString/length.js
deleted file mode 100644
index f32b3738c1..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: Temporal.TimeZone.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/toString/name.js b/polyfill/test/TimeZone/prototype/toString/name.js
deleted file mode 100644
index 53bbdc2b20..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: Temporal.TimeZone.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.TimeZone.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/TimeZone/prototype/toString/not-a-constructor.js b/polyfill/test/TimeZone/prototype/toString/not-a-constructor.js
deleted file mode 100644
index a379a7dcb1..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: >
- Temporal.TimeZone.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.TimeZone.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.TimeZone.prototype.toString), false,
- "isConstructor(Temporal.TimeZone.prototype.toString)");
diff --git a/polyfill/test/TimeZone/prototype/toString/prop-desc.js b/polyfill/test/TimeZone/prototype/toString/prop-desc.js
deleted file mode 100644
index 2b117165a6..0000000000
--- a/polyfill/test/TimeZone/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.tostring
-description: The "toString" property of Temporal.TimeZone.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.TimeZone.prototype.toString,
- "function",
- "`typeof TimeZone.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.TimeZone.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e0fe6289b2..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, Infinity, -Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, hour: 12, timeZone }, datetime));
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(datetime, { year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 281afb2447..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, hour: 12, timeZone }, datetime));
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(datetime, { year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 1902b88278..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
-
- assert.throws(TypeError, () => Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, hour: 12, timeZone }, datetime));
- assert.throws(TypeError, () => Temporal.ZonedDateTime.compare(datetime, { year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/builtin.js b/polyfill/test/ZonedDateTime/constructor/compare/builtin.js
deleted file mode 100644
index 44f02cbfa9..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Tests that Temporal.ZonedDateTime.compare meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.compare),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.compare),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.compare),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.compare.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/constructor/compare/calendar-fields-iterable.js
deleted file mode 100644
index f900f9d177..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/calendar-fields-iterable.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalZonedDateTime(_one_).
- 2. Set _two_ to ? ToTemporalZonedDateTime(_two_).
- sec-temporal-totemporalzoneddatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-Temporal.ZonedDateTime.compare(
- { year: 2000, month: 5, day: 2, timeZone: "UTC", calendar: calendar1 },
- { year: 2001, month: 6, day: 3, timeZone: "UTC", calendar: calendar2 },
-);
-
-assert.sameValue(calendar1.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar1.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar1.iteratorExhausted[0], "iterated through the whole iterable");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/constructor/compare/calendar-temporal-object.js
deleted file mode 100644
index 6cf61b5fde..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/calendar-temporal-object.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalZonedDateTime(_one_).
- 2. Set _two_ to ? ToTemporalZonedDateTime(_two_).
- sec-temporal-totemporalzoneddatetime step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- Temporal.ZonedDateTime.compare(
- { year: 2000, month: 5, day: 2, timeZone: "UTC", calendar: temporalObject },
- { year: 2001, month: 6, day: 3, timeZone: "UTC", calendar: temporalObject },
- );
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index fd26103e5c..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ ...base, [prop]: inf }, other), `${prop} property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(other, { ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, prop);
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ ...base, [prop]: obj1 }, other));
- assert.compareArray(calls1, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, prop);
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(other, { ...base, [prop]: obj2 }));
- assert.compareArray(calls2, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/length.js b/polyfill/test/ZonedDateTime/constructor/compare/length.js
deleted file mode 100644
index f2e41f0321..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Temporal.ZonedDateTime.compare.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.compare, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/name.js b/polyfill/test/ZonedDateTime/constructor/compare/name.js
deleted file mode 100644
index 96e6589671..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Temporal.ZonedDateTime.compare.name is "compare"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.compare, "name", {
- value: "compare",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/not-a-constructor.js b/polyfill/test/ZonedDateTime/constructor/compare/not-a-constructor.js
deleted file mode 100644
index b11d5ab7de..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Temporal.ZonedDateTime.compare does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.compare();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.compare), false,
- "isConstructor(Temporal.ZonedDateTime.compare)");
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/prop-desc.js b/polyfill/test/ZonedDateTime/constructor/compare/prop-desc.js
deleted file mode 100644
index b879fc7e57..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: The "compare" property of Temporal.ZonedDateTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.compare,
- "function",
- "`typeof ZonedDateTime.compare` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime, "compare", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/constructor/compare/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 02f194566a..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalZonedDateTime(_one_).
- 2. Set _two_ to ? ToTemporalZonedDateTime(_two_).
- sec-temporal-totemporalzoneddatetime step 2.j:
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const result = Temporal.ZonedDateTime.compare(
- { year: 2000, month: 5, day: 2, hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC", calendar },
- { year: 2000, month: 5, day: 2, hour: 6, minute: 54, second: 32, millisecond: 123, microsecond: 456, nanosecond: 789, timeZone: "UTC", calendar },
-);
-
-// will be 0 if the time fields are coerced to their max values due to Infinity
-assert.sameValue(result, 1, "comparison result");
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/constructor/compare/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index bf31d07455..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.compare steps 1–2:
- 1. Set _one_ to ? ToTemporalZonedDateTime(_one_).
- 2. Set _two_ to ? ToTemporalZonedDateTime(_two_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "2000-05-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- Temporal.ZonedDateTime.compare(
- { year: 2000, month: 5, day: 2, timeZone },
- { year: 2001, month: 6, day: 3, timeZone: "UTC" },
- );
-}, expected1);
-
-// Same, but on the other operand
-
-const expected2 = [
- "2001-06-03T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- Temporal.ZonedDateTime.compare(
- { year: 2000, month: 5, day: 2, timeZone: "UTC" },
- { year: 2001, month: 6, day: 3, timeZone },
- );
-}, expected2);
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/constructor/compare/timezone-string-datetime.js
deleted file mode 100644
index fed63db25f..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/timezone-string-datetime.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(0n, "UTC");
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, timeZone }, instance), "bare date-time string is not a time zone (arg 1)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(instance, { year: 2000, month: 5, day: 2, timeZone }), "bare date-time string is not a time zone (arg 2)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, timeZone: { timeZone } }, instance), "bare date-time string is not a time zone (arg 1)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(instance, { year: 2000, month: 5, day: 2, timeZone: { timeZone } }), "bare date-time string is not a time zone (arg 2)");
-
-// The following are all valid strings so should not throw:
-
-[
- "2021-08-19T17:30Z",
- "2021-08-19T17:30-07:00",
- "2021-08-19T17:30[America/Vancouver]",
- "2021-08-19T17:30Z[America/Vancouver]",
- "2021-08-19T17:30-07:00[America/Vancouver]",
-].forEach((timeZone) => {
- Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, timeZone }, instance);
- Temporal.ZonedDateTime.compare(instance, { year: 2000, month: 5, day: 2, timeZone });
- Temporal.ZonedDateTime.compare({ year: 2000, month: 5, day: 2, timeZone: { timeZone } }, instance);
- Temporal.ZonedDateTime.compare(instance, { year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/compare/zoneddatetime-string.js b/polyfill/test/ZonedDateTime/constructor/compare/zoneddatetime-string.js
deleted file mode 100644
index b9fb92ca3d..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/compare/zoneddatetime-string.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.compare
-description: Conversion of ISO date-time strings to Temporal.ZonedDateTime instances
-features: [Temporal]
----*/
-
-const epoch = new Temporal.ZonedDateTime(0n, "UTC");
-const hourBefore = new Temporal.ZonedDateTime(-3600_000_000_000n, "UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(str, epoch), "bare date-time string is not a ZonedDateTime (first argument)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(epoch, str), "bare date-time string is not a ZonedDateTime (second argument)");
-str = "1970-01-01T00:00Z";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(str, epoch), "date-time + Z is not a ZonedDateTime (first argument)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(epoch, str), "date-time + Z is not a ZonedDateTime (second argument)");
-str = "1970-01-01T00:00+01:00";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(str, epoch), "date-time + offset is not a ZonedDateTime (first argument)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(epoch, str), "date-time + offset is not a ZonedDateTime (second argument)");
-
-str = "1970-01-01T00:00[Europe/Berlin]";
-const result1 = Temporal.ZonedDateTime.compare(str, hourBefore);
-assert.sameValue(result1, 0, "date-time + IANA annotation preserves wall time in the time zone (first argument)");
-const result2 = Temporal.ZonedDateTime.compare(hourBefore, str);
-assert.sameValue(result2, 0, "date-time + IANA annotation preserves wall time in the time zone (second argument)");
-
-str = "1970-01-01T00:00Z[Europe/Berlin]";
-const result3 = Temporal.ZonedDateTime.compare(str, epoch);
-assert.sameValue(result3, 0, "date-time + Z + IANA annotation preserves exact time in the time zone (first argument)");
-const result4 = Temporal.ZonedDateTime.compare(epoch, str);
-assert.sameValue(result4, 0, "date-time + Z + IANA annotation preserves exact time in the time zone (second argument)");
-
-str = "1970-01-01T00:00+01:00[Europe/Berlin]";
-const result5 = Temporal.ZonedDateTime.compare(str, hourBefore);
-assert.sameValue(result5, 0, "date-time + offset + IANA annotation ensures both exact and wall time match (first argument)");
-const result6 = Temporal.ZonedDateTime.compare(hourBefore, str);
-assert.sameValue(result6, 0, "date-time + offset + IANA annotation ensures both exact and wall time match (second argument)");
-
-str = "1970-01-01T00:00-04:15[Europe/Berlin]";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(str, epoch), "date-time + offset + IANA annotation throws if wall time and exact time mismatch (first argument)");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(epoch, str), "date-time + offset + IANA annotation throws if wall time and exact time mismatch (second argument)");
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/builtin.js b/polyfill/test/ZonedDateTime/constructor/constructor/builtin.js
deleted file mode 100644
index bff1dfeb5d..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/builtin.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Tests that Temporal.ZonedDateTime meets the requirements for built-in objects
-info: |
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(typeof Temporal.ZonedDateTime.prototype,
- "object", "prototype property");
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/constructor/constructor/calendar-temporal-object.js
deleted file mode 100644
index d20494190e..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/calendar-temporal-object.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime step 5:
- 5. Let _calendar_ be ? ToTemporalCalendarWithISODefault(_calendarLike_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/calendar-undefined.js b/polyfill/test/ZonedDateTime/constructor/constructor/calendar-undefined.js
deleted file mode 100644
index baaf93c7f0..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/calendar-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Calendar argument defaults to the built-in ISO 8601 calendar
-features: [BigInt, Temporal]
----*/
-
-const args = [957270896987654321n, new Temporal.TimeZone("UTC")];
-
-Object.defineProperty(Temporal.Calendar, "from", {
- get() {
- throw new Test262Error("Should not get Calendar.from");
- },
-});
-
-const explicit = new Temporal.ZonedDateTime(...args, undefined);
-assert.sameValue(explicit.calendar.toString(), "iso8601");
-
-const implicit = new Temporal.ZonedDateTime(...args);
-assert.sameValue(implicit.calendar.toString(), "iso8601");
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/constructor.js b/polyfill/test/ZonedDateTime/constructor/constructor/constructor.js
deleted file mode 100644
index 54f848296b..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/constructor.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Temporal.ZonedDateTime constructor cannot be called as a function
-info: |
- 1. If NewTarget is undefined, throw a TypeError exception.
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => Temporal.ZonedDateTime());
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/length.js b/polyfill/test/ZonedDateTime/constructor/constructor/length.js
deleted file mode 100644
index 896826459b..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Temporal.ZonedDateTime.length is 2
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime, "length", {
- value: 2,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/missing-arguments.js b/polyfill/test/ZonedDateTime/constructor/constructor/missing-arguments.js
deleted file mode 100644
index 1194b625ed..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/missing-arguments.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: TypeError thrown when constructor invoked with no argument
-features: [Temporal]
----*/
-
-assert.throws(TypeError, () => new Temporal.ZonedDateTime());
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/name.js b/polyfill/test/ZonedDateTime/constructor/constructor/name.js
deleted file mode 100644
index e0dd855c2a..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Temporal.ZonedDateTime.name is "ZonedDateTime"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime, "name", {
- value: "ZonedDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/prop-desc.js b/polyfill/test/ZonedDateTime/constructor/constructor/prop-desc.js
deleted file mode 100644
index 9d371e3ff1..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: The "ZonedDateTime" property of Temporal
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime,
- "function",
- "`typeof ZonedDateTime` is `function`"
-);
-
-verifyProperty(Temporal, "ZonedDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/constructor/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/constructor/constructor/timezone-string-datetime.js
deleted file mode 100644
index 27cb7502b8..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/constructor/timezone-string-datetime.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => new Temporal.ZonedDateTime(0n, timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => new Temporal.ZonedDateTime(0n, { timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = new Temporal.ZonedDateTime(0n, timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = new Temporal.ZonedDateTime(0n, { timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = new Temporal.ZonedDateTime(0n, timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = new Temporal.ZonedDateTime(0n, { timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = new Temporal.ZonedDateTime(0n, timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = new Temporal.ZonedDateTime(0n, { timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = new Temporal.ZonedDateTime(0n, timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = new Temporal.ZonedDateTime(0n, { timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = new Temporal.ZonedDateTime(0n, timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = new Temporal.ZonedDateTime(0n, { timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 180242a629..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 34d748a911..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 5d611a1e55..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
-
- assert.throws(TypeError, () => Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/constructor/from/balance-negative-time-units.js
deleted file mode 100644
index 80eb5903e6..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/balance-negative-time-units.js
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-builtintimezonegetinstantfor step 13.a:
- a. Let _earlier_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], 0, 0, 0, 0, 0, 0, 0, 0, 0, −_nanoseconds_, *"constrain"*).
- sec-temporal-interpretisodatetimeoffset steps 4–10:
- 4. If _offsetNanoseconds_ is *null*, or _offset_ is *"ignore"*, then
- a. Let _instant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _dateTime_, _disambiguation_).
- ...
- ...
- 6. Assert: _offset_ is *"prefer"* or *"reject"*.
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- ...
- 9. If _offset_ is *"reject"*, throw a *RangeError* exception.
- 10. Let _instant_ be ? DisambiguatePossibleInstants(_possibleInstants_, _timeZone_, _dateTime_, _disambiguation_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal.zoneddatetime.from step 3:
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const shiftInstant = new Temporal.Instant(3661_001_001_001n);
-const tz1 = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-
-// This code path is encountered if offset is `ignore` or `prefer`,
-// disambiguation is `earlier` and the shift is a spring-forward change
-Temporal.ZonedDateTime.from({
- year: 1970,
- month: 1,
- day: 1,
- hour: 1,
- minute: 1,
- second: 1,
- millisecond: 1,
- microsecond: 1,
- nanosecond: 1,
- timeZone: tz1,
-}, { offset: "ignore", disambiguation: "earlier" });
-
-const expected1 = [
- "1970-01-01T01:01:01.001001001",
- "1970-01-01T01:01:01.001000999",
-];
-assert.compareArray(tz1.getPossibleInstantsForCalledWith, expected1);
-
-const tz2 = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-
-Temporal.ZonedDateTime.from({
- year: 1970,
- month: 1,
- day: 1,
- hour: 1,
- minute: 1,
- second: 1,
- millisecond: 1,
- microsecond: 1,
- nanosecond: 1,
- timeZone: tz2,
-}, { offset: "prefer", disambiguation: "earlier" });
-
-const expected2 = [
- "1970-01-01T01:01:01.001001001",
- "1970-01-01T01:01:01.001000999",
-];
-assert.compareArray(tz2.getPossibleInstantsForCalledWith, expected2);
diff --git a/polyfill/test/ZonedDateTime/constructor/from/builtin.js b/polyfill/test/ZonedDateTime/constructor/from/builtin.js
deleted file mode 100644
index d1e1cdf24c..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/builtin.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Tests that Temporal.ZonedDateTime.from meets the requirements for built-in objects
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.from),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.from),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.from),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.from.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/constructor/from/calendar-fields-iterable.js
deleted file mode 100644
index 8285f4d67e..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/calendar-fields-iterable.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.from step 3:
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
- sec-temporal-totemporalzoneddatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: "UTC", calendar });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/constructor/from/calendar-temporal-object.js
deleted file mode 100644
index 60ffe57b21..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.from step 3:
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
- sec-temporal-totemporalzoneddatetime step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const result = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: "UTC", calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-invalid-string.js b/polyfill/test/ZonedDateTime/constructor/from/disambiguation-invalid-string.js
deleted file mode 100644
index b9529653e0..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-invalid-string.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: RangeError thrown when disambiguation option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal-totemporalzoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. ...
- b. Perform ? ToTemporalDisambiguation(_options_).
- c. ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(datetime, { disambiguation: "other string" }));
-
-const timeZone = new Temporal.TimeZone("UTC");
-const propertyBag = { timeZone, year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, millisecond: 987, microsecond: 654, nanosecond: 321 };
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { disambiguation: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-undefined.js b/polyfill/test/ZonedDateTime/constructor/from/disambiguation-undefined.js
deleted file mode 100644
index 8c420894bc..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-undefined.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Fallback value for disambiguation option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal-totemporalzoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-const springForwardFields = { timeZone, year: 2000, month: 4, day: 2, hour: 2, minute: 30 };
-const fallBackFields = { timeZone, year: 2000, month: 10, day: 29, hour: 1, minute: 30 };
-
-[
- [springForwardFields, 954671400_000_000_000n],
- [fallBackFields, 972808200_000_000_000n],
-].forEach(([fields, expected]) => {
- const explicit = Temporal.ZonedDateTime.from(fields, { disambiguation: undefined });
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible (later)");
-
- // See options-undefined.js for {}
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-wrong-type.js b/polyfill/test/ZonedDateTime/constructor/from/disambiguation-wrong-type.js
deleted file mode 100644
index f997510dc8..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/disambiguation-wrong-type.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Type conversions for disambiguation option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal-totemporalzoneddatetime step 5:
- 5. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. ...
- b. Perform ? ToTemporalDisambiguation(_options_).
- c. ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("disambiguation", "compatible",
- (disambiguation) => Temporal.ZonedDateTime.from(datetime, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
-
-const timeZone = new Temporal.TimeZone("UTC");
-const propertyBag = { timeZone, year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, millisecond: 987, microsecond: 654, nanosecond: 321 };
-TemporalHelpers.checkStringOptionWrongType("disambiguation", "compatible",
- (disambiguation) => Temporal.ZonedDateTime.from(propertyBag, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 4d992b7eb8..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ ...base, [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ ...base, [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/length.js b/polyfill/test/ZonedDateTime/constructor/from/length.js
deleted file mode 100644
index 1bb2887727..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Temporal.ZonedDateTime.from.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.from, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/name.js b/polyfill/test/ZonedDateTime/constructor/from/name.js
deleted file mode 100644
index cd838d3f3a..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Temporal.ZonedDateTime.from.name is "from"
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.from, "name", {
- value: "from",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/not-a-constructor.js b/polyfill/test/ZonedDateTime/constructor/from/not-a-constructor.js
deleted file mode 100644
index 0616a3c1a5..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/not-a-constructor.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Temporal.ZonedDateTime.from does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.from();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.from), false,
- "isConstructor(Temporal.ZonedDateTime.from)");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/offset-invalid-string.js b/polyfill/test/ZonedDateTime/constructor/from/offset-invalid-string.js
deleted file mode 100644
index 730cbc0147..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/offset-invalid-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: RangeError thrown when offset option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal-totemporalzoneddatetime step 6:
- 6. Let _offset_ be ? ToTemporalOffset(_options_, *"reject"*).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- c. Perform ? ToTemporalOffset(_options_, *"reject"*).
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(datetime, { offset: "other string" }));
-
-const timeZone = new Temporal.TimeZone("UTC");
-const propertyBag = { timeZone, year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, millisecond: 987, microsecond: 654, nanosecond: 321 };
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { offset: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/constructor/from/offset-undefined.js b/polyfill/test/ZonedDateTime/constructor/from/offset-undefined.js
deleted file mode 100644
index 1939303ec0..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/offset-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Fallback value for offset option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal-totemporalzoneddatetime step 6:
- 6. Let _offset_ be ? ToTemporalOffset(_options_, *"reject"*).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- c. Perform ? ToTemporalOffset(_options_, *"reject"*).
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const timeZone = new Temporal.TimeZone("-04:00");
-const propertyBag = { timeZone, offset: "+01:00", year: 2020, month: 2, day: 16, hour: 23, minute: 45 };
-
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { offset: undefined }), "default offset is reject");
-// See options-undefined.js for {}
diff --git a/polyfill/test/ZonedDateTime/constructor/from/offset-wrong-type.js b/polyfill/test/ZonedDateTime/constructor/from/offset-wrong-type.js
deleted file mode 100644
index 3544cb820a..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/offset-wrong-type.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Type conversions for offset option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal-totemporalzoneddatetime step 6:
- 6. Let _offset_ be ? ToTemporalOffset(_options_, *"reject"*).
- sec-temporal.zoneddatetime.from step 2:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- c. Perform ? ToTemporalOffset(_options_, *"reject"*).
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("offset", "reject",
- (disambiguation) => Temporal.ZonedDateTime.from(datetime, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
-
-const timeZone = new Temporal.TimeZone("UTC");
-const propertyBag = { timeZone, offset: "+00:00", year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, millisecond: 987, microsecond: 654, nanosecond: 321 };
-TemporalHelpers.checkStringOptionWrongType("offset", "reject",
- (disambiguation) => Temporal.ZonedDateTime.from(propertyBag, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/constructor/from/options-undefined.js b/polyfill/test/ZonedDateTime/constructor/from/options-undefined.js
deleted file mode 100644
index a8a8e3ebf5..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/options-undefined.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-includes: [temporalHelpers.js]
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const overflowFields = { year: 2000, month: 13, day: 2, timeZone: "UTC" };
-
-const overflowExplicit = Temporal.ZonedDateTime.from(overflowFields, undefined);
-assert.sameValue(overflowExplicit.month, 12, "default overflow is constrain");
-
-const overflowPropertyImplicit = Temporal.ZonedDateTime.from(overflowFields, {});
-assert.sameValue(overflowPropertyImplicit.month, 12, "default overflow is constrain");
-
-const overflowImplicit = Temporal.ZonedDateTime.from(overflowFields);
-assert.sameValue(overflowImplicit.month, 12, "default overflow is constrain");
-
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-const disambiguationEarlierFields = { timeZone, year: 2000, month: 10, day: 29, hour: 1, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 };
-const disambiguationLaterFields = { timeZone, year: 2000, month: 4, day: 2, hour: 2, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321 };
-
-[
- [disambiguationEarlierFields, 972808496987654321n],
- [disambiguationLaterFields, 954671696987654321n],
-].forEach(([fields, expected]) => {
- const explicit = Temporal.ZonedDateTime.from(fields, undefined);
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
-
- const propertyImplicit = Temporal.ZonedDateTime.from(fields, {});
- assert.sameValue(propertyImplicit.epochNanoseconds, expected, "default disambiguation is compatible");
-
- const implicit = Temporal.ZonedDateTime.from(fields);
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
-});
-
-const offsetFields = { year: 2000, month: 5, day: 2, offset: "+23:59", timeZone: "UTC" };
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(offsetFields, undefined), "default offset is reject");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(offsetFields, {}), "default offset is reject");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(offsetFields), "default offset is reject");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/overflow-invalid-string.js b/polyfill/test/ZonedDateTime/constructor/from/overflow-invalid-string.js
deleted file mode 100644
index 5913d3e7f9..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/overflow-invalid-string.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporalzoneddatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC"),
- { year: 2000, month: 5, day: 2, hour: 12, timeZone: "UTC" },
- "2001-09-09T01:46:40.987654321+00:00[UTC]",
-];
-validValues.forEach((value) => {
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from(value, { overflow: "other string" }));
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/overflow-undefined.js b/polyfill/test/ZonedDateTime/constructor/from/overflow-undefined.js
deleted file mode 100644
index 0caf0fb4fe..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/overflow-undefined.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporalzoneddatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC"),
- "2001-09-09T01:46:40.987654321+00:00[UTC]",
-];
-validValues.forEach((value) => {
- const explicit = Temporal.ZonedDateTime.from(value, { overflow: undefined });
- assert.sameValue(explicit.epochNanoseconds, 1_000_000_000_987_654_321n, "overflow is ignored");
- const implicit = Temporal.ZonedDateTime.from(value, {});
- assert.sameValue(implicit.epochNanoseconds, 1_000_000_000_987_654_321n, "overflow is ignored");
-});
-
-const propertyBag = { year: 2000, month: 15, day: 34, hour: 12, timeZone: "UTC" };
-const explicit = Temporal.ZonedDateTime.from(propertyBag, { overflow: undefined });
-assert.sameValue(explicit.epochNanoseconds, 978_264_000_000_000_000n, "default overflow is constrain");
-
-// See options-undefined for {}
diff --git a/polyfill/test/ZonedDateTime/constructor/from/overflow-wrong-type.js b/polyfill/test/ZonedDateTime/constructor/from/overflow-wrong-type.js
deleted file mode 100644
index bd1491be46..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/overflow-wrong-type.js
+++ /dev/null
@@ -1,64 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-totemporalzoneddatetime steps 2–3:
- 2. If Type(_item_) is Object, then
- ...
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- 3. Else,
- a. Perform ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.from steps 2–3:
- 2. If Type(_item_) is Object and _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- a. Perform ? ToTemporalOverflow(_options_).
- ...
- d. Return ...
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const validValues = [
- new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC"),
- "2001-09-09T01:46:40.987654321+00:00[UTC]",
-];
-validValues.forEach((value) => TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => Temporal.ZonedDateTime.from(value, { overflow }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_987_654_321n, descr),
-));
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-const propertyBag = { year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, timeZone: "UTC" };
-
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: null }), "null");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: true }), "true");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: false }), "false");
-assert.throws(TypeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(propertyBag, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateFromFields() in the builtin
-// calendars, to get the option value for the date part, and then once again
-// internally to get the option value for the time part.
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = Temporal.ZonedDateTime.from(propertyBag, { overflow: observer });
-assert.sameValue(result.epochNanoseconds, 1_000_000_000_000_000_000n, "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/prop-desc.js b/polyfill/test/ZonedDateTime/constructor/from/prop-desc.js
deleted file mode 100644
index 3b8bc6c65d..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: The "from" property of Temporal.ZonedDateTime
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.from,
- "function",
- "`typeof ZonedDateTime.from` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime, "from", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/constructor/from/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/constructor/from/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 09c14956d9..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.from step 3:
- 3. Return ? ToTemporalDateTime(_item_, _options_).
- sec-temporal-totemporalzoneddatetime step 2.j:
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, hour: 12, minute: 34, second: 56, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC", calendar });
-
-assert.sameValue(datetime.hour, 12, "hour value");
-assert.sameValue(datetime.minute, 34, "minute value");
-assert.sameValue(datetime.second, 56, "second value");
-assert.sameValue(datetime.millisecond, 987, "millisecond value");
-assert.sameValue(datetime.microsecond, 654, "microsecond value");
-assert.sameValue(datetime.nanosecond, 321, "nanosecond value");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/subclassing-ignored.js b/polyfill/test/ZonedDateTime/constructor/from/subclassing-ignored.js
deleted file mode 100644
index fc4a0193e6..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/subclassing-ignored.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: The receiver is never called when calling from()
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnoredStatic(
- Temporal.ZonedDateTime,
- "from",
- ["2000-01-01T00:00:00.00000001+00:00[UTC]"],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 946684800_000_000_010n, "epochNanoseconds result");
- assert.sameValue(result.year, 2000, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 10, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/constructor/from/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/constructor/from/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index de48fe6bd4..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.from step 3:
- 3. Return ? ToTemporalZonedDateTime(_item_, _options_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2000-05-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-}, expected);
diff --git a/polyfill/test/ZonedDateTime/constructor/from/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/constructor/from/timezone-string-datetime.js
deleted file mode 100644
index 60698a06b6..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/timezone-string-datetime.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone });
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = Temporal.ZonedDateTime.from({ year: 2000, month: 5, day: 2, timeZone: { timeZone } });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/ZonedDateTime/constructor/from/zoneddatetime-string.js b/polyfill/test/ZonedDateTime/constructor/from/zoneddatetime-string.js
deleted file mode 100644
index 785bc986e9..0000000000
--- a/polyfill/test/ZonedDateTime/constructor/from/zoneddatetime-string.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.from
-description: Conversion of ISO date-time strings to Temporal.ZonedDateTime instances
-features: [Temporal]
----*/
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(str), "bare date-time string is not a ZonedDateTime");
-str = "1970-01-01T00:00Z";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(str), "date-time + Z is not a ZonedDateTime");
-str = "1970-01-01T00:00+01:00";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(str), "date-time + offset is not a ZonedDateTime");
-
-str = "1970-01-01T00:00[Europe/Berlin]";
-const result1 = Temporal.ZonedDateTime.from(str);
-assert.sameValue(result1.epochNanoseconds, -3600_000_000_000n, "date-time + IANA annotation preserves wall time in the time zone");
-assert.sameValue(result1.timeZone.toString(), "Europe/Berlin", "IANA annotation is not ignored");
-
-str = "1970-01-01T00:00Z[Europe/Berlin]";
-const result2 = Temporal.ZonedDateTime.from(str);
-assert.sameValue(result2.epochNanoseconds, 0n, "date-time + Z + IANA annotation preserves exact time in the time zone");
-assert.sameValue(result2.timeZone.toString(), "Europe/Berlin", "IANA annotation is not ignored");
-
-str = "1970-01-01T00:00+01:00[Europe/Berlin]";
-const result3 = Temporal.ZonedDateTime.from(str);
-assert.sameValue(result3.epochNanoseconds, -3600_000_000_000n, "date-time + offset + IANA annotation ensures both exact and wall time match");
-assert.sameValue(result3.timeZone.toString(), "Europe/Berlin", "IANA annotation is not ignored");
-
-str = "1970-01-01T00:00-04:15[Europe/Berlin]";
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(str), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
-assert.throws(RangeError, () => Temporal.ZonedDateTime.from(str, { offset: "reject" }), "date-time + offset + IANA annotation throws if wall time and exact time mismatch (explicit reject option)");
-const result4 = Temporal.ZonedDateTime.from(str, { offset: "ignore" });
-assert.sameValue(result4.epochNanoseconds, -3600_000_000_000n, "date-time + wrong offset + IANA annotation preserves wall time in the time zone (offset: ignore option)");
-assert.sameValue(result4.timeZone.toString(), "Europe/Berlin", "IANA annotation is not ignored");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js b/polyfill/test/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
deleted file mode 100644
index 0c62f3b949..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Strings with fractional duration units are treated with the correct sign
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-
-const resultHours = instance.add("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 999_911_555_595_557_201n, "negative fractional hours");
-
-const resultMinutes = instance.add("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 999_913_565_926_592_621n, "negative fractional minutes");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/branding.js b/polyfill/test/ZonedDateTime/prototype/add/branding.js
deleted file mode 100644
index c9dc587495..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const add = Temporal.ZonedDateTime.prototype.add;
-
-assert.sameValue(typeof add, "function");
-
-assert.throws(TypeError, () => add.call(undefined), "undefined");
-assert.throws(TypeError, () => add.call(null), "null");
-assert.throws(TypeError, () => add.call(true), "true");
-assert.throws(TypeError, () => add.call(""), "empty string");
-assert.throws(TypeError, () => add.call(Symbol()), "symbol");
-assert.throws(TypeError, () => add.call(1), "1");
-assert.throws(TypeError, () => add.call({}), "plain object");
-assert.throws(TypeError, () => add.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => add.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/builtin.js b/polyfill/test/ZonedDateTime/prototype/add/builtin.js
deleted file mode 100644
index bc45c4ebd0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: >
- Tests that Temporal.ZonedDateTime.prototype.add
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.add),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.add),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.add),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.add.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/length.js b/polyfill/test/ZonedDateTime/prototype/add/length.js
deleted file mode 100644
index f3207afb87..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Temporal.ZonedDateTime.prototype.add.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.add, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/name.js b/polyfill/test/ZonedDateTime/prototype/add/name.js
deleted file mode 100644
index 63db9362bd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Temporal.ZonedDateTime.prototype.add.name is "add".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.add, "name", {
- value: "add",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/add/negative-epochnanoseconds.js
deleted file mode 100644
index df9ca166f8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.add(new Temporal.Duration(0, 0, 0, 1));
-assert.sameValue(result.epochNanoseconds, -13763364_999_999_999n);
diff --git a/polyfill/test/ZonedDateTime/prototype/add/non-integer-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/add/non-integer-throws-rangeerror.js
deleted file mode 100644
index 00dd22aea0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.add({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.add({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/add/not-a-constructor.js
deleted file mode 100644
index e19e09c673..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: >
- Temporal.ZonedDateTime.prototype.add does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.add();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.add), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.add)");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/add/options-undefined.js
deleted file mode 100644
index db10979fb0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(949322096_987_654_321n, "UTC");
-const duration = { months: 1 };
-
-const explicit = datetime.add(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.add(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/overflow-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/add/overflow-invalid-string.js
deleted file mode 100644
index 4c88b56878..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.add step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-assert.throws(RangeError, () => datetime.add(duration, { overflow: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/add/overflow-undefined.js b/polyfill/test/ZonedDateTime/prototype/add/overflow-undefined.js
deleted file mode 100644
index 04b6dc0bd3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/overflow-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.add step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-1n, "UTC");
-const duration = new Temporal.Duration(0, 2);
-
-const explicit = datetime.add(duration, { overflow: undefined });
-assert.sameValue(explicit.epochNanoseconds, 5097599_999_999_999n, "default overflow is constrain");
-const implicit = datetime.add(duration, {});
-assert.sameValue(implicit.epochNanoseconds, 5097599_999_999_999n, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/add/overflow-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/add/overflow-wrong-type.js
deleted file mode 100644
index 41eb9ad9aa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/overflow-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.add step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, _duration_.[[Years]], _duration_.[[Months]], _duration_.[[Weeks]], _duration_.[[Days]], _duration_.[[Hours]], _duration_.[[Minutes]], _duration_.[[Seconds]], _duration_.[[Milliseconds]], _duration_.[[Microseconds]], _duration_.[[Nanoseconds]], _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => datetime.add(duration, { overflow }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_086_400_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/add/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/add/prop-desc.js
deleted file mode 100644
index 507f8f3974..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: The "add" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.add,
- "function",
- "`typeof ZonedDateTime.prototype.add` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "add", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/add/subclassing-ignored.js
deleted file mode 100644
index cd608d8dae..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "add",
- [{ nanoseconds: 5 }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 15n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 15, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 7b1526902b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.add(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 96cf43a7c2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.add(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index bcccc035c2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/add/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.add
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.add(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/calendar/branding.js b/polyfill/test/ZonedDateTime/prototype/calendar/branding.js
deleted file mode 100644
index ba792ca71a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/calendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.calendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const calendar = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "calendar").get;
-
-assert.sameValue(typeof calendar, "function");
-
-assert.throws(TypeError, () => calendar.call(undefined), "undefined");
-assert.throws(TypeError, () => calendar.call(null), "null");
-assert.throws(TypeError, () => calendar.call(true), "true");
-assert.throws(TypeError, () => calendar.call(""), "empty string");
-assert.throws(TypeError, () => calendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => calendar.call(1), "1");
-assert.throws(TypeError, () => calendar.call({}), "plain object");
-assert.throws(TypeError, () => calendar.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => calendar.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/calendar/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/calendar/prop-desc.js
deleted file mode 100644
index 323413d3c1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/calendar/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.calendar
-description: The "calendar" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "calendar");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/day/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/day/balance-negative-time-units.js
deleted file mode 100644
index a6670be959..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/balance-negative-time-units.js
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.day
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.day step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(86400_000_000_001n, tz);
-
-assert.sameValue(datetime.day, 1);
-assert.sameValue(datetime.hour, 23);
-assert.sameValue(datetime.minute, 59);
-assert.sameValue(datetime.second, 59);
-assert.sameValue(datetime.millisecond, 999);
-assert.sameValue(datetime.microsecond, 999);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/day/branding.js b/polyfill/test/ZonedDateTime/prototype/day/branding.js
deleted file mode 100644
index adf6c9ed74..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const day = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "day").get;
-
-assert.sameValue(typeof day, "function");
-
-assert.throws(TypeError, () => day.call(undefined), "undefined");
-assert.throws(TypeError, () => day.call(null), "null");
-assert.throws(TypeError, () => day.call(true), "true");
-assert.throws(TypeError, () => day.call(""), "empty string");
-assert.throws(TypeError, () => day.call(Symbol()), "symbol");
-assert.throws(TypeError, () => day.call(1), "1");
-assert.throws(TypeError, () => day.call({}), "plain object");
-assert.throws(TypeError, () => day.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => day.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/day/calendar-returns-infinity.js b/polyfill/test/ZonedDateTime/prototype/day/calendar-returns-infinity.js
deleted file mode 100644
index d26b459ccb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: Getter throws if the calendar returns ±∞ from its day method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- day() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.ZonedDateTime(0n, "UTC", pos);
-assert.throws(RangeError, () => instance1.day);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.ZonedDateTime(0n, "UTC", neg);
-assert.throws(RangeError, () => instance2.day);
diff --git a/polyfill/test/ZonedDateTime/prototype/day/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/day/prop-desc.js
deleted file mode 100644
index ba69d6a73e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: The "day" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "day");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 0c895c4dc3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.day);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 37653f356b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.day);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 56625aeced..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/day/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.day
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.day);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/branding.js b/polyfill/test/ZonedDateTime/prototype/dayOfWeek/branding.js
deleted file mode 100644
index e626ec9e31..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfWeek = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "dayOfWeek").get;
-
-assert.sameValue(typeof dayOfWeek, "function");
-
-assert.throws(TypeError, () => dayOfWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfWeek.call(null), "null");
-assert.throws(TypeError, () => dayOfWeek.call(true), "true");
-assert.throws(TypeError, () => dayOfWeek.call(""), "empty string");
-assert.throws(TypeError, () => dayOfWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfWeek.call(1), "1");
-assert.throws(TypeError, () => dayOfWeek.call({}), "plain object");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => dayOfWeek.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/dayOfWeek/prop-desc.js
deleted file mode 100644
index 999b35a700..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofweek
-description: The "dayOfWeek" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "dayOfWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index b447f3a213..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofweek
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.dayOfWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 0fe127c9d6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofweek
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.dayOfWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d3260e80df..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfWeek/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofweek
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.dayOfWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfYear/branding.js b/polyfill/test/ZonedDateTime/prototype/dayOfYear/branding.js
deleted file mode 100644
index c593cb34ce..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const dayOfYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "dayOfYear").get;
-
-assert.sameValue(typeof dayOfYear, "function");
-
-assert.throws(TypeError, () => dayOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => dayOfYear.call(null), "null");
-assert.throws(TypeError, () => dayOfYear.call(true), "true");
-assert.throws(TypeError, () => dayOfYear.call(""), "empty string");
-assert.throws(TypeError, () => dayOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => dayOfYear.call(1), "1");
-assert.throws(TypeError, () => dayOfYear.call({}), "plain object");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => dayOfYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/dayOfYear/prop-desc.js
deleted file mode 100644
index a8b0e8e7af..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofyear
-description: The "dayOfYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "dayOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 026fd7b8cd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.dayOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index a4a549d34a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.dayOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 1a075b1254..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/dayOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.dayofyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.dayOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInMonth/branding.js b/polyfill/test/ZonedDateTime/prototype/daysInMonth/branding.js
deleted file mode 100644
index 710147ec8d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInMonth = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInMonth").get;
-
-assert.sameValue(typeof daysInMonth, "function");
-
-assert.throws(TypeError, () => daysInMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInMonth.call(null), "null");
-assert.throws(TypeError, () => daysInMonth.call(true), "true");
-assert.throws(TypeError, () => daysInMonth.call(""), "empty string");
-assert.throws(TypeError, () => daysInMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInMonth.call(1), "1");
-assert.throws(TypeError, () => daysInMonth.call({}), "plain object");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => daysInMonth.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInMonth/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/daysInMonth/prop-desc.js
deleted file mode 100644
index 933f97fb52..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInMonth/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinmonth
-description: The "daysInMonth" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInMonth");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index faf1ad8ed5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinmonth
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInMonth);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 04c178a758..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinmonth
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInMonth);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f679b31e05..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInMonth/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinmonth
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.daysInMonth);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInWeek/branding.js b/polyfill/test/ZonedDateTime/prototype/daysInWeek/branding.js
deleted file mode 100644
index f385d8b326..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInWeek/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinweek
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInWeek = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInWeek").get;
-
-assert.sameValue(typeof daysInWeek, "function");
-
-assert.throws(TypeError, () => daysInWeek.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInWeek.call(null), "null");
-assert.throws(TypeError, () => daysInWeek.call(true), "true");
-assert.throws(TypeError, () => daysInWeek.call(""), "empty string");
-assert.throws(TypeError, () => daysInWeek.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInWeek.call(1), "1");
-assert.throws(TypeError, () => daysInWeek.call({}), "plain object");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => daysInWeek.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInWeek/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/daysInWeek/prop-desc.js
deleted file mode 100644
index d4445a8b1d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInWeek/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinweek
-description: The "daysInWeek" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInWeek");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 32c2a85e04..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinweek
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 761009ad46..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinweek
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 51ba354326..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInWeek/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinweek
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.daysInWeek);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInYear/branding.js b/polyfill/test/ZonedDateTime/prototype/daysInYear/branding.js
deleted file mode 100644
index 6720659c20..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const daysInYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInYear").get;
-
-assert.sameValue(typeof daysInYear, "function");
-
-assert.throws(TypeError, () => daysInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => daysInYear.call(null), "null");
-assert.throws(TypeError, () => daysInYear.call(true), "true");
-assert.throws(TypeError, () => daysInYear.call(""), "empty string");
-assert.throws(TypeError, () => daysInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => daysInYear.call(1), "1");
-assert.throws(TypeError, () => daysInYear.call({}), "plain object");
-assert.throws(TypeError, () => daysInYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => daysInYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/daysInYear/prop-desc.js
deleted file mode 100644
index b8c5211a4f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
-description: The "daysInYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "daysInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 5310ae0bc5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 8257af59e5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.daysInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d60ff6634b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/daysInYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.daysinyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.daysInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/basic.js b/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/basic.js
deleted file mode 100644
index 2c31cef34a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmicroseconds
-description: Basic tests for epochMicroseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.ZonedDateTime(217175010_123_456_789n, "UTC");
-assert.sameValue(afterEpoch.epochMicroseconds, 217175010_123_456n, "epochMicroseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochMicroseconds, "bigint", "epochMicroseconds value is a bigint");
-
-const beforeEpoch = new Temporal.ZonedDateTime(-217175010_876_543_211n, "UTC");
-assert.sameValue(beforeEpoch.epochMicroseconds, -217175010_876_543n, "epochMicroseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochMicroseconds, "bigint", "epochMicroseconds value is a bigint");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/branding.js b/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/branding.js
deleted file mode 100644
index 5957b64c80..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmicroseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochMicroseconds = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochMicroseconds").get;
-
-assert.sameValue(typeof epochMicroseconds, "function");
-
-assert.throws(TypeError, () => epochMicroseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochMicroseconds.call(null), "null");
-assert.throws(TypeError, () => epochMicroseconds.call(true), "true");
-assert.throws(TypeError, () => epochMicroseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochMicroseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochMicroseconds.call(1), "1");
-assert.throws(TypeError, () => epochMicroseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochMicroseconds.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => epochMicroseconds.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/prop-desc.js
deleted file mode 100644
index 2ad8041283..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMicroseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmicroseconds
-description: The "epochMicroseconds" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochMicroseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/basic.js b/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/basic.js
deleted file mode 100644
index 2208a5cb8c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmilliseconds
-description: Basic tests for epochMilliseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.ZonedDateTime(217175010_123_456_789n, "UTC");
-assert.sameValue(afterEpoch.epochMilliseconds, 217175010_123, "epochMilliseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochMilliseconds, "number", "epochMilliseconds value is a number");
-
-const beforeEpoch = new Temporal.ZonedDateTime(-217175010_876_543_211n, "UTC");
-assert.sameValue(beforeEpoch.epochMilliseconds, -217175010_876, "epochMilliseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochMilliseconds, "number", "epochMilliseconds value is a number");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/branding.js b/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/branding.js
deleted file mode 100644
index 091e0ad84c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmilliseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochMilliseconds = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochMilliseconds").get;
-
-assert.sameValue(typeof epochMilliseconds, "function");
-
-assert.throws(TypeError, () => epochMilliseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochMilliseconds.call(null), "null");
-assert.throws(TypeError, () => epochMilliseconds.call(true), "true");
-assert.throws(TypeError, () => epochMilliseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochMilliseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochMilliseconds.call(1), "1");
-assert.throws(TypeError, () => epochMilliseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochMilliseconds.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => epochMilliseconds.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/prop-desc.js
deleted file mode 100644
index 68cd528f31..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochMilliseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochmilliseconds
-description: The "epochMilliseconds" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochMilliseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/basic.js b/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/basic.js
deleted file mode 100644
index cc5cf2c32f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochnanoseconds
-description: Basic tests for epochNanoseconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.ZonedDateTime(217175010_123_456_789n, "UTC");
-assert.sameValue(afterEpoch.epochNanoseconds, 217175010_123_456_789n, "epochNanoseconds post epoch");
-assert.sameValue(typeof afterEpoch.epochNanoseconds, "bigint", "epochNanoseconds value is a bigint");
-
-const beforeEpoch = new Temporal.ZonedDateTime(-217175010_876_543_211n, "UTC");
-assert.sameValue(beforeEpoch.epochNanoseconds, -217175010_876_543_211n, "epochNanoseconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochNanoseconds, "bigint", "epochNanoseconds value is a bigint");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/branding.js b/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/branding.js
deleted file mode 100644
index 39fb55a8c5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochnanoseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochNanoseconds = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochNanoseconds").get;
-
-assert.sameValue(typeof epochNanoseconds, "function");
-
-assert.throws(TypeError, () => epochNanoseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochNanoseconds.call(null), "null");
-assert.throws(TypeError, () => epochNanoseconds.call(true), "true");
-assert.throws(TypeError, () => epochNanoseconds.call(""), "empty string");
-assert.throws(TypeError, () => epochNanoseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochNanoseconds.call(1), "1");
-assert.throws(TypeError, () => epochNanoseconds.call({}), "plain object");
-assert.throws(TypeError, () => epochNanoseconds.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => epochNanoseconds.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/prop-desc.js
deleted file mode 100644
index 83d2e49da5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochNanoseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochnanoseconds
-description: The "epochNanoseconds" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochNanoseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/epochSeconds/basic.js b/polyfill/test/ZonedDateTime/prototype/epochSeconds/basic.js
deleted file mode 100644
index 651c254f89..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochSeconds/basic.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochseconds
-description: Basic tests for epochSeconds.
-features: [BigInt, Temporal]
----*/
-
-const afterEpoch = new Temporal.ZonedDateTime(217175010_123_456_789n, "UTC");
-assert.sameValue(afterEpoch.epochSeconds, 217175010, "epochSeconds post epoch");
-assert.sameValue(typeof afterEpoch.epochSeconds, "number", "epochSeconds value is a number");
-
-const beforeEpoch = new Temporal.ZonedDateTime(-217175010_876_543_211n, "UTC");
-assert.sameValue(beforeEpoch.epochSeconds, -217175010, "epochSeconds pre epoch");
-assert.sameValue(typeof beforeEpoch.epochSeconds, "number", "epochSeconds value is a number");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochSeconds/branding.js b/polyfill/test/ZonedDateTime/prototype/epochSeconds/branding.js
deleted file mode 100644
index 9f68f73d1e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochSeconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const epochSeconds = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochSeconds").get;
-
-assert.sameValue(typeof epochSeconds, "function");
-
-assert.throws(TypeError, () => epochSeconds.call(undefined), "undefined");
-assert.throws(TypeError, () => epochSeconds.call(null), "null");
-assert.throws(TypeError, () => epochSeconds.call(true), "true");
-assert.throws(TypeError, () => epochSeconds.call(""), "empty string");
-assert.throws(TypeError, () => epochSeconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => epochSeconds.call(1), "1");
-assert.throws(TypeError, () => epochSeconds.call({}), "plain object");
-assert.throws(TypeError, () => epochSeconds.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => epochSeconds.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/epochSeconds/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/epochSeconds/prop-desc.js
deleted file mode 100644
index 28749fb60d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/epochSeconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.epochseconds
-description: The "epochSeconds" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "epochSeconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index eb0081e6f2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- assert.throws(RangeError, () => datetime.equals({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 0b6064067c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- assert.throws(RangeError, () => datetime.equals({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 7a57cce824..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/argument-propertybag-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- assert.throws(TypeError, () => datetime.equals({ year: 2000, month: 5, day: 2, hour: 12, timeZone }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/branding.js b/polyfill/test/ZonedDateTime/prototype/equals/branding.js
deleted file mode 100644
index 05705c4d7c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const equals = Temporal.ZonedDateTime.prototype.equals;
-
-assert.sameValue(typeof equals, "function");
-
-assert.throws(TypeError, () => equals.call(undefined), "undefined");
-assert.throws(TypeError, () => equals.call(null), "null");
-assert.throws(TypeError, () => equals.call(true), "true");
-assert.throws(TypeError, () => equals.call(""), "empty string");
-assert.throws(TypeError, () => equals.call(Symbol()), "symbol");
-assert.throws(TypeError, () => equals.call(1), "1");
-assert.throws(TypeError, () => equals.call({}), "plain object");
-assert.throws(TypeError, () => equals.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => equals.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/builtin.js b/polyfill/test/ZonedDateTime/prototype/equals/builtin.js
deleted file mode 100644
index 8743669efa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: >
- Tests that Temporal.ZonedDateTime.prototype.equals
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.equals),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.equals),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.equals),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.equals.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/equals/calendar-fields-iterable.js
deleted file mode 100644
index 9efae1eece..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.equals({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/equals/calendar-temporal-object.js
deleted file mode 100644
index 237be81107..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- datetime.equals({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: temporalObject });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index f25d12085d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.equals({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/length.js b/polyfill/test/ZonedDateTime/prototype/equals/length.js
deleted file mode 100644
index c0794a3a99..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Temporal.ZonedDateTime.prototype.equals.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.equals, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/name.js b/polyfill/test/ZonedDateTime/prototype/equals/name.js
deleted file mode 100644
index 4b407a924c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Temporal.ZonedDateTime.prototype.equals.name is "equals".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.equals, "name", {
- value: "equals",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/equals/not-a-constructor.js
deleted file mode 100644
index 91aab39fdd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: >
- Temporal.ZonedDateTime.prototype.equals does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.equals();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.equals), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.equals)");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/equals/prop-desc.js
deleted file mode 100644
index 0631c6a45b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: The "equals" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.equals,
- "function",
- "`typeof ZonedDateTime.prototype.equals` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "equals", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/prototype/equals/read-time-fields-before-datefromfields.js
deleted file mode 100644
index c5d5bd9cde..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.j:
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
-const result = datetime.equals({ year: 2001, month: 9, day: 9, hour: 1, minute: 46, second: 40, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC", calendar });
-
-assert(result, "time fields are not modified");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/equals/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 4a0cc24f77..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.prototype.equals step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Not called on the instance's time zone
-
-const expected1 = [];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.equals({ year: 2005, month: 6, day: 2, timeZone: "UTC" });
-}, expected1);
-
-// Called on the argument's time zone
-
-const expected2 = [
- "2005-06-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- datetime.equals({ year: 2005, month: 6, day: 2, timeZone });
-}, expected2);
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/prototype/equals/timezone-string-datetime.js
deleted file mode 100644
index 82a642b71a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/timezone-string-datetime.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let expectedTimeZone = "UTC";
-const instance1 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-
-let timeZone = "2021-02-19T17:30";
-assert.throws(RangeError, () => instance1.equals({ year: 1970, month: 1, day: 1, timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance1.equals({ year: 1970, month: 1, day: 1, timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw. They should produce
-// expectedTimeZone, so additionally the operation should return true, because
-// the property bag will produce an instance that's equal to the receiver.
-
-timeZone = "2021-02-19T17:30Z";
-assert(instance1.equals({ year: 1970, month: 1, day: 1, timeZone }), "date-time + Z is UTC time zone");
-assert(instance1.equals({ year: 1970, month: 1, day: 1, timeZone: { timeZone } }), "date-time + Z is UTC time zone (string in property bag)");
-
-expectedTimeZone = "-08:00";
-const instance2 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-02-19T17:30-08:00";
-assert(instance2.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone }), "date-time + offset is the offset time zone");
-assert(instance2.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone: { timeZone } }), "date-time + offset is the offset time zone (string in property bag)");
-
-expectedTimeZone = "America/Vancouver";
-const instance3 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-02-19T17:30[America/Vancouver]";
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone }), "date-time + IANA annotation is the IANA time zone");
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone: { timeZone } }), "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-02-19T17:30Z[America/Vancouver]";
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone }), "date-time + Z + IANA annotation is the IANA time zone");
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone: { timeZone } }), "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-02-19T17:30-08:00[America/Vancouver]";
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone }), "date-time + offset + IANA annotation is the IANA time zone");
-assert(instance3.equals({ year: 1969, month: 12, day: 31, hour: 16, timeZone: { timeZone } }), "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/ZonedDateTime/prototype/equals/zoneddatetime-string.js b/polyfill/test/ZonedDateTime/prototype/equals/zoneddatetime-string.js
deleted file mode 100644
index 0253dae769..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/equals/zoneddatetime-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.equals
-description: Conversion of ISO date-time strings to Temporal.ZonedDateTime instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(0n, "Europe/Berlin");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.equals(str), "bare date-time string is not a ZonedDateTime");
-str = "1970-01-01T00:00Z";
-assert.throws(RangeError, () => instance.equals(str), "date-time + Z is not a ZonedDateTime");
-str = "1970-01-01T00:00+01:00";
-assert.throws(RangeError, () => instance.equals(str), "date-time + offset is not a ZonedDateTime");
-
-str = "1970-01-01T00:00[Europe/Berlin]";
-const result1 = instance.equals(str);
-assert.sameValue(result1, false, "date-time + IANA annotation preserves wall time in the time zone");
-
-str = "1970-01-01T00:00Z[Europe/Berlin]";
-const result2 = instance.equals(str);
-assert.sameValue(result2, true, "date-time + Z + IANA annotation preserves exact time in the time zone");
-
-str = "1970-01-01T00:00+01:00[Europe/Berlin]";
-const result3 = instance.equals(str);
-assert.sameValue(result3, false, "date-time + offset + IANA annotation ensures both exact and wall time match");
-
-str = "1970-01-01T00:00-04:15[Europe/Berlin]";
-assert.throws(RangeError, () => instance.equals(str), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/ZonedDateTime/prototype/era/branding.js b/polyfill/test/ZonedDateTime/prototype/era/branding.js
deleted file mode 100644
index 9e66ba1223..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/era/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.era
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const era = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "era").get;
-
-assert.sameValue(typeof era, "function");
-
-assert.throws(TypeError, () => era.call(undefined), "undefined");
-assert.throws(TypeError, () => era.call(null), "null");
-assert.throws(TypeError, () => era.call(true), "true");
-assert.throws(TypeError, () => era.call(""), "empty string");
-assert.throws(TypeError, () => era.call(Symbol()), "symbol");
-assert.throws(TypeError, () => era.call(1), "1");
-assert.throws(TypeError, () => era.call({}), "plain object");
-assert.throws(TypeError, () => era.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => era.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/era/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/era/prop-desc.js
deleted file mode 100644
index a1eefde483..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/era/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.era
-description: The "era" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "era");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 84c05894e6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.era
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.era);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 80751c9e3c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.era
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.era);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f856f4dc99..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/era/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.era
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.era);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/eraYear/branding.js b/polyfill/test/ZonedDateTime/prototype/eraYear/branding.js
deleted file mode 100644
index f3a0d105c0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/eraYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const eraYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "eraYear").get;
-
-assert.sameValue(typeof eraYear, "function");
-
-assert.throws(TypeError, () => eraYear.call(undefined), "undefined");
-assert.throws(TypeError, () => eraYear.call(null), "null");
-assert.throws(TypeError, () => eraYear.call(true), "true");
-assert.throws(TypeError, () => eraYear.call(""), "empty string");
-assert.throws(TypeError, () => eraYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => eraYear.call(1), "1");
-assert.throws(TypeError, () => eraYear.call({}), "plain object");
-assert.throws(TypeError, () => eraYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => eraYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/eraYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/eraYear/prop-desc.js
deleted file mode 100644
index b27b676a48..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/eraYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: The "eraYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "eraYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 6e7165f78e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.eraYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 1e61ad0532..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.eraYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 84c119a595..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/eraYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.eraYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/balance-negative-time-units.js
deleted file mode 100644
index e8557b7c91..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/balance-negative-time-units.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.getisofields step 7:
- 7. Let _dateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// ZonedDateTime
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-const fields = datetime.getISOFields();
-
-assert.sameValue(fields.isoMicrosecond, 0);
-assert.sameValue(fields.isoNanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/branding.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/branding.js
deleted file mode 100644
index 9524ed7e60..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const getISOFields = Temporal.ZonedDateTime.prototype.getISOFields;
-
-assert.sameValue(typeof getISOFields, "function");
-
-assert.throws(TypeError, () => getISOFields.call(undefined), "undefined");
-assert.throws(TypeError, () => getISOFields.call(null), "null");
-assert.throws(TypeError, () => getISOFields.call(true), "true");
-assert.throws(TypeError, () => getISOFields.call(""), "empty string");
-assert.throws(TypeError, () => getISOFields.call(Symbol()), "symbol");
-assert.throws(TypeError, () => getISOFields.call(1), "1");
-assert.throws(TypeError, () => getISOFields.call({}), "plain object");
-assert.throws(TypeError, () => getISOFields.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => getISOFields.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/builtin.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/builtin.js
deleted file mode 100644
index ed925e1e4e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: >
- Tests that Temporal.ZonedDateTime.prototype.getISOFields
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.getISOFields),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.getISOFields),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.getISOFields),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.getISOFields.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-names.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/field-names.js
deleted file mode 100644
index 150e8dd11d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-names.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Correct field names on the object returned from getISOFields
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_086_400_987_654_321n, "UTC");
-
-const result = datetime.getISOFields();
-assert.sameValue(result.isoYear, 2001, "isoYear result");
-assert.sameValue(result.isoMonth, 9, "isoMonth result");
-assert.sameValue(result.isoDay, 10, "isoDay result");
-assert.sameValue(result.isoHour, 1, "isoHour result");
-assert.sameValue(result.isoMinute, 46, "isoMinute result");
-assert.sameValue(result.isoSecond, 40, "isoSecond result");
-assert.sameValue(result.isoMillisecond, 987, "isoMillisecond result");
-assert.sameValue(result.isoMicrosecond, 654, "isoMicrosecond result");
-assert.sameValue(result.isoNanosecond, 321, "isoNanosecond result");
-assert.sameValue(result.offset, "+00:00", "offset result");
-assert.sameValue(result.calendar.id, "iso8601", "calendar result");
-assert.sameValue(result.timeZone.id, "UTC", "timeZone result");
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-prop-desc.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/field-prop-desc.js
deleted file mode 100644
index 30afae9093..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-prop-desc.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Properties on the returned object have the correct descriptor
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoMonth",
- "isoNanosecond",
- "isoSecond",
- "isoYear",
- "offset",
- "timeZone",
-];
-
-const datetime = new Temporal.ZonedDateTime(1_000_086_400_987_654_321n, "UTC");
-const result = datetime.getISOFields();
-
-for (const property of expected) {
- verifyProperty(result, property, {
- writable: true,
- enumerable: true,
- configurable: true,
- });
-}
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-traversal-order.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/field-traversal-order.js
deleted file mode 100644
index a7b600d118..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/field-traversal-order.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Properties added in correct order to object returned from getISOFields
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const expected = [
- "calendar",
- "isoDay",
- "isoHour",
- "isoMicrosecond",
- "isoMillisecond",
- "isoMinute",
- "isoMonth",
- "isoNanosecond",
- "isoSecond",
- "isoYear",
- "offset",
- "timeZone",
-];
-
-const datetime = new Temporal.ZonedDateTime(1_000_086_400_987_654_321n, "UTC");
-const result = datetime.getISOFields();
-
-assert.compareArray(Object.keys(result), expected);
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/length.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/length.js
deleted file mode 100644
index 0a99d6dcc5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Temporal.ZonedDateTime.prototype.getISOFields.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.getISOFields, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/name.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/name.js
deleted file mode 100644
index e68c8bdc4e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: Temporal.ZonedDateTime.prototype.getISOFields.name is "getISOFields".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.getISOFields, "name", {
- value: "getISOFields",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/negative-epochnanoseconds.js
deleted file mode 100644
index 7a4350cecc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [deepEqual.js]
----*/
-
-const timeZone = new Temporal.TimeZone("UTC");
-const calendar = new Temporal.Calendar("iso8601");
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, timeZone, calendar);
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.getISOFields();
-assert.deepEqual(result, {
- calendar,
- isoDay: 24,
- isoHour: 16,
- isoMicrosecond: 0,
- isoMillisecond: 0,
- isoMinute: 50,
- isoMonth: 7,
- isoNanosecond: 1,
- isoSecond: 35,
- isoYear: 1969,
- offset: "+00:00",
- timeZone,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/not-a-constructor.js
deleted file mode 100644
index 7ebdadf8a5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: >
- Temporal.ZonedDateTime.prototype.getISOFields does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.getISOFields();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.getISOFields), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.getISOFields)");
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/prop-desc.js
deleted file mode 100644
index 4a7416a658..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: The "getISOFields" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.getISOFields,
- "function",
- "`typeof ZonedDateTime.prototype.getISOFields` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "getISOFields", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ef507e52ad..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.getISOFields());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index fad48ca944..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.getISOFields());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 6ca3f881fb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/getISOFields/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.getisofields
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.getISOFields());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/hour/balance-negative-time-units.js
deleted file mode 100644
index 3e229c0a32..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/balance-negative-time-units.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.hour
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–12:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.hour step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3600_000_000_001n, tz);
-
-assert.sameValue(datetime.hour, 0);
-assert.sameValue(datetime.minute, 59);
-assert.sameValue(datetime.second, 59);
-assert.sameValue(datetime.millisecond, 999);
-assert.sameValue(datetime.microsecond, 999);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/branding.js b/polyfill/test/ZonedDateTime/prototype/hour/branding.js
deleted file mode 100644
index d080fcecbf..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hour
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const hour = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "hour").get;
-
-assert.sameValue(typeof hour, "function");
-
-assert.throws(TypeError, () => hour.call(undefined), "undefined");
-assert.throws(TypeError, () => hour.call(null), "null");
-assert.throws(TypeError, () => hour.call(true), "true");
-assert.throws(TypeError, () => hour.call(""), "empty string");
-assert.throws(TypeError, () => hour.call(Symbol()), "symbol");
-assert.throws(TypeError, () => hour.call(1), "1");
-assert.throws(TypeError, () => hour.call({}), "plain object");
-assert.throws(TypeError, () => hour.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => hour.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/hour/prop-desc.js
deleted file mode 100644
index 0e862cbac6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hour
-description: The "hour" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "hour");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 2580dd770d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hour
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.hour);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index e030ca27f1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hour
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.hour);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 75eb9fbaab..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hour/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hour
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.hour);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/branding.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/branding.js
deleted file mode 100644
index 65dd234131..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const hoursInDay = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "hoursInDay").get;
-
-assert.sameValue(typeof hoursInDay, "function");
-
-assert.throws(TypeError, () => hoursInDay.call(undefined), "undefined");
-assert.throws(TypeError, () => hoursInDay.call(null), "null");
-assert.throws(TypeError, () => hoursInDay.call(true), "true");
-assert.throws(TypeError, () => hoursInDay.call(""), "empty string");
-assert.throws(TypeError, () => hoursInDay.call(Symbol()), "symbol");
-assert.throws(TypeError, () => hoursInDay.call(1), "1");
-assert.throws(TypeError, () => hoursInDay.call({}), "plain object");
-assert.throws(TypeError, () => hoursInDay.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => hoursInDay.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/prop-desc.js
deleted file mode 100644
index 43c104349e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: The "hoursInDay" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "hoursInDay");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8b90e4062f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.hoursInDay);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 20a2e42eb0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.hoursInDay);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 23c89aa795..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.hoursInDay);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 49bcb52c99..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/hoursInDay/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.hoursinday
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-get-temporal.zoneddatetime.prototype.hoursinday steps 13–14:
- 13. Let _todayInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _today_, *"compatible"*).
- 14. Let _tomorrowInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _tomorrow_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-builtintimezonegetinstantfor step 14:
- 14. Assert: _disambiguation_ is *"compatible"* or *"later"*.
- sec-temporal-builtintimezonegetinstantfor step 16:
- 16. Set _possibleInstants_ to ? GetPossibleInstantsFor(_timeZone_, _later_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected1 = [
- "2001-09-09T00:00:00",
- "2001-09-10T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.hoursInDay;
-}, expected1);
-
-// Same, but test the other path where the time doesn't exist and
-// GetPossibleInstantsFor is called again on a later time
-
-const expected2 = [
- "2030-01-01T00:00:00",
- "2030-01-01T01:00:00",
- "2030-01-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_893_457_800_000_000_000n, timeZone);
- datetime.hoursInDay;
-}, expected2);
diff --git a/polyfill/test/ZonedDateTime/prototype/inLeapYear/branding.js b/polyfill/test/ZonedDateTime/prototype/inLeapYear/branding.js
deleted file mode 100644
index edf5df8cf8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/inLeapYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const inLeapYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "inLeapYear").get;
-
-assert.sameValue(typeof inLeapYear, "function");
-
-assert.throws(TypeError, () => inLeapYear.call(undefined), "undefined");
-assert.throws(TypeError, () => inLeapYear.call(null), "null");
-assert.throws(TypeError, () => inLeapYear.call(true), "true");
-assert.throws(TypeError, () => inLeapYear.call(""), "empty string");
-assert.throws(TypeError, () => inLeapYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => inLeapYear.call(1), "1");
-assert.throws(TypeError, () => inLeapYear.call({}), "plain object");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => inLeapYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/inLeapYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/inLeapYear/prop-desc.js
deleted file mode 100644
index fcfbe21441..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/inLeapYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
-description: The "inLeapYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "inLeapYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 67e5b10c69..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.inLeapYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 7989edce26..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.inLeapYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d7e66fcc70..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/inLeapYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.inleapyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.inLeapYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/microsecond/balance-negative-time-units.js
deleted file mode 100644
index f0e5cae171..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/balance-negative-time-units.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.microsecond
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–4:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.microsecond step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-assert.sameValue(datetime.microsecond, 0);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/branding.js b/polyfill/test/ZonedDateTime/prototype/microsecond/branding.js
deleted file mode 100644
index 28861479f9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.microsecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const microsecond = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "microsecond").get;
-
-assert.sameValue(typeof microsecond, "function");
-
-assert.throws(TypeError, () => microsecond.call(undefined), "undefined");
-assert.throws(TypeError, () => microsecond.call(null), "null");
-assert.throws(TypeError, () => microsecond.call(true), "true");
-assert.throws(TypeError, () => microsecond.call(""), "empty string");
-assert.throws(TypeError, () => microsecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => microsecond.call(1), "1");
-assert.throws(TypeError, () => microsecond.call({}), "plain object");
-assert.throws(TypeError, () => microsecond.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => microsecond.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/microsecond/negative-epochnanoseconds.js
deleted file mode 100644
index 481278a09f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.microsecond
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-assert.sameValue(datetime.microsecond, 0);
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/microsecond/prop-desc.js
deleted file mode 100644
index fc351e73ea..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.microsecond
-description: The "microsecond" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "microsecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e56d8609ca..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.microsecond
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.microsecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 3c60b801a2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.microsecond
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.microsecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index c9acf66ecc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/microsecond/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.microsecond
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.microsecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/millisecond/balance-negative-time-units.js
deleted file mode 100644
index 7156d9ebdb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/balance-negative-time-units.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.millisecond
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–6:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.millisecond step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1_000_001n, tz);
-
-assert.sameValue(datetime.millisecond, 0);
-assert.sameValue(datetime.microsecond, 999);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/branding.js b/polyfill/test/ZonedDateTime/prototype/millisecond/branding.js
deleted file mode 100644
index 2a243a975a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.millisecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const millisecond = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "millisecond").get;
-
-assert.sameValue(typeof millisecond, "function");
-
-assert.throws(TypeError, () => millisecond.call(undefined), "undefined");
-assert.throws(TypeError, () => millisecond.call(null), "null");
-assert.throws(TypeError, () => millisecond.call(true), "true");
-assert.throws(TypeError, () => millisecond.call(""), "empty string");
-assert.throws(TypeError, () => millisecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => millisecond.call(1), "1");
-assert.throws(TypeError, () => millisecond.call({}), "plain object");
-assert.throws(TypeError, () => millisecond.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => millisecond.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/millisecond/negative-epochnanoseconds.js
deleted file mode 100644
index bf9bcadde0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.millisecond
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-assert.sameValue(datetime.millisecond, 0);
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/millisecond/prop-desc.js
deleted file mode 100644
index 5afdbcb89e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.millisecond
-description: The "millisecond" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "millisecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 0b15aad2c8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.millisecond
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.millisecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 9146d54b0a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.millisecond
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.millisecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 8b66d91b40..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/millisecond/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.millisecond
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.millisecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/minute/balance-negative-time-units.js
deleted file mode 100644
index 707ec03403..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/balance-negative-time-units.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.minute
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–10:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.minute step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(60_000_000_001n, tz);
-
-assert.sameValue(datetime.minute, 0);
-assert.sameValue(datetime.second, 59);
-assert.sameValue(datetime.millisecond, 999);
-assert.sameValue(datetime.microsecond, 999);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/branding.js b/polyfill/test/ZonedDateTime/prototype/minute/branding.js
deleted file mode 100644
index 0d354cf111..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.minute
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const minute = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "minute").get;
-
-assert.sameValue(typeof minute, "function");
-
-assert.throws(TypeError, () => minute.call(undefined), "undefined");
-assert.throws(TypeError, () => minute.call(null), "null");
-assert.throws(TypeError, () => minute.call(true), "true");
-assert.throws(TypeError, () => minute.call(""), "empty string");
-assert.throws(TypeError, () => minute.call(Symbol()), "symbol");
-assert.throws(TypeError, () => minute.call(1), "1");
-assert.throws(TypeError, () => minute.call({}), "plain object");
-assert.throws(TypeError, () => minute.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => minute.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/minute/prop-desc.js
deleted file mode 100644
index b114facb57..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.minute
-description: The "minute" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "minute");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 924e3d95e5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.minute
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.minute);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c1576845c2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.minute
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.minute);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index deec12ba68..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/minute/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.minute
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.minute);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/month/branding.js b/polyfill/test/ZonedDateTime/prototype/month/branding.js
deleted file mode 100644
index 763f424375..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const month = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "month").get;
-
-assert.sameValue(typeof month, "function");
-
-assert.throws(TypeError, () => month.call(undefined), "undefined");
-assert.throws(TypeError, () => month.call(null), "null");
-assert.throws(TypeError, () => month.call(true), "true");
-assert.throws(TypeError, () => month.call(""), "empty string");
-assert.throws(TypeError, () => month.call(Symbol()), "symbol");
-assert.throws(TypeError, () => month.call(1), "1");
-assert.throws(TypeError, () => month.call({}), "plain object");
-assert.throws(TypeError, () => month.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => month.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/month/calendar-returns-infinity.js b/polyfill/test/ZonedDateTime/prototype/month/calendar-returns-infinity.js
deleted file mode 100644
index aa4341dea3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: Getter throws if the calendar returns ±∞ from its month method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- month() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.ZonedDateTime(0n, "UTC", pos);
-assert.throws(RangeError, () => instance1.month);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.ZonedDateTime(0n, "UTC", neg);
-assert.throws(RangeError, () => instance2.month);
diff --git a/polyfill/test/ZonedDateTime/prototype/month/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/month/prop-desc.js
deleted file mode 100644
index 7662d80bac..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: The "month" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "month");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index aa924d43e0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.month);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 95e8c9e771..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.month);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 53619e2947..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/month/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.month
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.month);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthCode/branding.js b/polyfill/test/ZonedDateTime/prototype/monthCode/branding.js
deleted file mode 100644
index c6bbd04373..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthCode/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthcode
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthCode = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "monthCode").get;
-
-assert.sameValue(typeof monthCode, "function");
-
-assert.throws(TypeError, () => monthCode.call(undefined), "undefined");
-assert.throws(TypeError, () => monthCode.call(null), "null");
-assert.throws(TypeError, () => monthCode.call(true), "true");
-assert.throws(TypeError, () => monthCode.call(""), "empty string");
-assert.throws(TypeError, () => monthCode.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthCode.call(1), "1");
-assert.throws(TypeError, () => monthCode.call({}), "plain object");
-assert.throws(TypeError, () => monthCode.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => monthCode.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/monthCode/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/monthCode/prop-desc.js
deleted file mode 100644
index f96c52ce5a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthCode/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthcode
-description: The "monthCode" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "monthCode");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e1ac5491cc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthcode
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.monthCode);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 0e7ac82489..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthcode
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.monthCode);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 44ba555abc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthCode/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthcode
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.monthCode);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthsInYear/branding.js b/polyfill/test/ZonedDateTime/prototype/monthsInYear/branding.js
deleted file mode 100644
index c6df1292d2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthsInYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthsinyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const monthsInYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "monthsInYear").get;
-
-assert.sameValue(typeof monthsInYear, "function");
-
-assert.throws(TypeError, () => monthsInYear.call(undefined), "undefined");
-assert.throws(TypeError, () => monthsInYear.call(null), "null");
-assert.throws(TypeError, () => monthsInYear.call(true), "true");
-assert.throws(TypeError, () => monthsInYear.call(""), "empty string");
-assert.throws(TypeError, () => monthsInYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => monthsInYear.call(1), "1");
-assert.throws(TypeError, () => monthsInYear.call({}), "plain object");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => monthsInYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/monthsInYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/monthsInYear/prop-desc.js
deleted file mode 100644
index 534500eb27..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthsInYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthsinyear
-description: The "monthsInYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "monthsInYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 2a39282f90..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthsinyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.monthsInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 1429ab6929..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthsinyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.monthsInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 775e3ff036..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/monthsInYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.monthsinyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.monthsInYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/branding.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/branding.js
deleted file mode 100644
index a0f6e8fe29..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.nanosecond
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const nanosecond = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "nanosecond").get;
-
-assert.sameValue(typeof nanosecond, "function");
-
-assert.throws(TypeError, () => nanosecond.call(undefined), "undefined");
-assert.throws(TypeError, () => nanosecond.call(null), "null");
-assert.throws(TypeError, () => nanosecond.call(true), "true");
-assert.throws(TypeError, () => nanosecond.call(""), "empty string");
-assert.throws(TypeError, () => nanosecond.call(Symbol()), "symbol");
-assert.throws(TypeError, () => nanosecond.call(1), "1");
-assert.throws(TypeError, () => nanosecond.call({}), "plain object");
-assert.throws(TypeError, () => nanosecond.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => nanosecond.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/negative-epochnanoseconds.js
deleted file mode 100644
index 07ef5f59cd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.nanosecond
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-assert.sameValue(datetime.nanosecond, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/prop-desc.js
deleted file mode 100644
index 527a522cd9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.nanosecond
-description: The "nanosecond" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "nanosecond");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 2963371913..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.nanosecond
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.nanosecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 237dd1e992..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.nanosecond
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.nanosecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 5ef67518a7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/nanosecond/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.nanosecond
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.nanosecond);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offset/branding.js b/polyfill/test/ZonedDateTime/prototype/offset/branding.js
deleted file mode 100644
index 4a4262d43b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offset/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offset
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const offset = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "offset").get;
-
-assert.sameValue(typeof offset, "function");
-
-assert.throws(TypeError, () => offset.call(undefined), "undefined");
-assert.throws(TypeError, () => offset.call(null), "null");
-assert.throws(TypeError, () => offset.call(true), "true");
-assert.throws(TypeError, () => offset.call(""), "empty string");
-assert.throws(TypeError, () => offset.call(Symbol()), "symbol");
-assert.throws(TypeError, () => offset.call(1), "1");
-assert.throws(TypeError, () => offset.call({}), "plain object");
-assert.throws(TypeError, () => offset.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => offset.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/offset/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/offset/prop-desc.js
deleted file mode 100644
index cdeba6f0a3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offset/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offset
-description: The "offset" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "offset");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 04ffbc671f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offset
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.offset);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index aa7eec073b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offset
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.offset);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index ab0f673797..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offset/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offset
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.offset);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/branding.js b/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/branding.js
deleted file mode 100644
index 26d46fe656..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const offsetNanoseconds = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "offsetNanoseconds").get;
-
-assert.sameValue(typeof offsetNanoseconds, "function");
-
-assert.throws(TypeError, () => offsetNanoseconds.call(undefined), "undefined");
-assert.throws(TypeError, () => offsetNanoseconds.call(null), "null");
-assert.throws(TypeError, () => offsetNanoseconds.call(true), "true");
-assert.throws(TypeError, () => offsetNanoseconds.call(""), "empty string");
-assert.throws(TypeError, () => offsetNanoseconds.call(Symbol()), "symbol");
-assert.throws(TypeError, () => offsetNanoseconds.call(1), "1");
-assert.throws(TypeError, () => offsetNanoseconds.call({}), "plain object");
-assert.throws(TypeError, () => offsetNanoseconds.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => offsetNanoseconds.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/prop-desc.js
deleted file mode 100644
index 9677e533ee..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
-description: The "offsetNanoseconds" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "offsetNanoseconds");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 3d9ae8909a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.offsetNanoseconds);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index bb48eb69ab..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.offsetNanoseconds);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index cbdc863445..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/offsetNanoseconds/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.offsetNanoseconds);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/branding.js b/polyfill/test/ZonedDateTime/prototype/round/branding.js
deleted file mode 100644
index f0b708e841..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const round = Temporal.ZonedDateTime.prototype.round;
-
-assert.sameValue(typeof round, "function");
-
-assert.throws(TypeError, () => round.call(undefined), "undefined");
-assert.throws(TypeError, () => round.call(null), "null");
-assert.throws(TypeError, () => round.call(true), "true");
-assert.throws(TypeError, () => round.call(""), "empty string");
-assert.throws(TypeError, () => round.call(Symbol()), "symbol");
-assert.throws(TypeError, () => round.call(1), "1");
-assert.throws(TypeError, () => round.call({}), "plain object");
-assert.throws(TypeError, () => round.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => round.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/builtin.js b/polyfill/test/ZonedDateTime/prototype/round/builtin.js
deleted file mode 100644
index 99e805a69f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: >
- Tests that Temporal.ZonedDateTime.prototype.round
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.round),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.round),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.round),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.round.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/round/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index d660edfe4d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.ZonedDateTime(7200_000_000_000n, timeZone, calendar);
-instance.round({ smallestUnit: "day" });
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/dateadd-options.js b/polyfill/test/ZonedDateTime/prototype/round/dateadd-options.js
deleted file mode 100644
index 6c4cf252a4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/dateadd-options.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: dateAdd() is called with the correct three arguments
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-let actual = [];
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(...args) {
- actual.push(this, ...args);
- return super.dateAdd(...args);
- }
-}
-
-const calendar = new Calendar();
-const zdt = new Temporal.ZonedDateTime(0n, "UTC", calendar);
-const result = zdt.round({ smallestUnit: "day" });
-assert.sameValue(result.epochNanoseconds, 0n, "Result");
-
-assert.sameValue(actual.length, 4, "three arguments");
-assert.sameValue(actual[0], calendar, "this value");
-TemporalHelpers.assertPlainDate(actual[1], 1970, 1, "M01", 1, "date argument");
-TemporalHelpers.assertDuration(actual[2], 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, "duration argument");
-assert.sameValue(actual[3], undefined, "options should be undefined");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/div-zero.js b/polyfill/test/ZonedDateTime/prototype/round/div-zero.js
deleted file mode 100644
index ca2e5cdb18..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/div-zero.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown if the calculated day length is zero
-features: [Temporal]
----*/
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- dateAdd(d) {
- return d;
- }
-}
-
-const zdt = new Temporal.ZonedDateTime(0n, "UTC", new Calendar());
-
-const units = ["day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"];
-for (const smallestUnit of units) {
- assert.throws(RangeError, () => zdt.round({ smallestUnit }));
-}
diff --git a/polyfill/test/ZonedDateTime/prototype/round/length.js b/polyfill/test/ZonedDateTime/prototype/round/length.js
deleted file mode 100644
index eddfb2897f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Temporal.ZonedDateTime.prototype.round.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.round, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/name.js b/polyfill/test/ZonedDateTime/prototype/round/name.js
deleted file mode 100644
index 6651d9afd6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Temporal.ZonedDateTime.prototype.round.name is "round".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.round, "name", {
- value: "round",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/round/negative-epochnanoseconds.js
deleted file mode 100644
index 6dedb93271..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.round({ smallestUnit: "millisecond" });
-assert.sameValue(result.epochNanoseconds, -13849765_000_000_000n);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/round/not-a-constructor.js
deleted file mode 100644
index bee48e8417..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: >
- Temporal.ZonedDateTime.prototype.round does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.round();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.round), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.round)");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/round/prop-desc.js
deleted file mode 100644
index cdd317ec38..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: The "round" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.round,
- "function",
- "`typeof ZonedDateTime.prototype.round` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "round", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-nan.js b/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-nan.js
deleted file mode 100644
index 586c4f11ea..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.zoneddatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => datetime.round({ smallestUnit: 'second', roundingIncrement: NaN }));
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-non-integer.js b/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-non-integer.js
deleted file mode 100644
index 4bf9d4f417..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-const result = datetime.round({ smallestUnit: "nanosecond", roundingIncrement: 2.5 });
-assert.sameValue(result.epochNanoseconds, 1_000_000_000_000_000_006n, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-out-of-range.js
deleted file mode 100644
index 61763f2f09..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: -1 }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: 0 }));
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "nanoseconds", roundingIncrement: Infinity }));
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-undefined.js b/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-undefined.js
deleted file mode 100644
index 152a58121b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.zoneddatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-const explicit = datetime.round({ smallestUnit: 'second', roundingIncrement: undefined });
-assert.sameValue(explicit.epochNanoseconds, 1_000_000_001_000_000_000n, "default roundingIncrement is 1");
-
-const implicit = datetime.round({ smallestUnit: 'second' });
-assert.sameValue(implicit.epochNanoseconds, 1_000_000_001_000_000_000n, "default roundingIncrement is 1");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-wrong-type.js
deleted file mode 100644
index 5a01f297a5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal-totemporaldatetimeroundingincrement step 5:
- 5. Return ? ToTemporalRoundingIncrement(_normalizedOptions_, _maximum_, *false*).
- sec-temporal.zoneddatetime.prototype.round step 8:
- 8. Let _roundingIncrement_ be ? ToTemporalDateTimeRoundingIncrement(_options_, _smallestUnit_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => datetime.round({ smallestUnit: 'second', roundingIncrement }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_001_000_000_000n, descr),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_000_000_000n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/round/roundingmode-invalid-string.js
deleted file mode 100644
index 145e3f615a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-undefined.js b/polyfill/test/ZonedDateTime/prototype/round/roundingmode-undefined.js
deleted file mode 100644
index 79b521bd74..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-
-const explicit1 = datetime.round({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1.epochNanoseconds, 1_000_000_000_123_988_000n, "default roundingMode is halfExpand");
-const implicit1 = datetime.round({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1.epochNanoseconds, 1_000_000_000_123_988_000n, "default roundingMode is halfExpand");
-
-const explicit2 = datetime.round({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2.epochNanoseconds, 1_000_000_000_124_000_000n, "default roundingMode is halfExpand");
-const implicit2 = datetime.round({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2.epochNanoseconds, 1_000_000_000_124_000_000n, "default roundingMode is halfExpand");
-
-const explicit3 = datetime.round({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3.epochNanoseconds, 1_000_000_000_000_000_000n, "default roundingMode is halfExpand");
-const implicit3 = datetime.round({ smallestUnit: "second" });
-assert.sameValue(implicit3.epochNanoseconds, 1_000_000_000_000_000_000n, "default roundingMode is halfExpand");
diff --git a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/round/roundingmode-wrong-type.js
deleted file mode 100644
index 4d766e3238..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "halfExpand",
- (roundingMode) => datetime.round({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_123_988_000n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/round/smallestunit-invalid-string.js
deleted file mode 100644
index bee6892ba9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-assert.throws(RangeError, () => datetime.round({ smallestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/round/smallestunit-plurals-accepted.js
deleted file mode 100644
index 2ffe1ec676..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const validUnits = [
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => datetime.round({ smallestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/round/smallestunit-wrong-type.js
deleted file mode 100644
index 5bfa502f1d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => datetime.round({ smallestUnit }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_000_000_123_988_000n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/round/subclassing-ignored.js
deleted file mode 100644
index 8bd312e1de..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatime.prototype.round
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "round",
- [{ smallestUnit: 'second', roundingMode: 'ceil' }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 1_000_000_000n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 1, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 0, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index e2560dcfc2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.round({ smallestUnit: "second" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 425274191f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.round({ smallestUnit: "second" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index e60edea3a5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.round({ smallestUnit: "second" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/round/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/round/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index b76a3b08a5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/round/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.round
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.prototype.round steps 14, 16, and 20:
- 14. Let _instantStart_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _dtStart_, *"compatible"*).
- 16. Let _endNs_ be ? AddZonedDateTime(_startNs_, _timeZone_, _zonedDateTime_.[[Calendar]], 0, 0, 0, 1, 0, 0, 0, 0, 0, 0).
- 20. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_roundResult_.[[Year]], [...], _roundResult_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, *"compatible"*, *"prefer"*).
- sec-temporal-addzoneddatetime step 8:
- 8. Let _intermediateInstant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _intermediateDateTime_, *"compatible"*).
- sec-temporal-builtintimezonegetinstantfor step 1:
- 1. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2001-09-09T00:00:00", // called once on midnight of the input datetime
- "2001-09-10T00:00:00", // called once on the previous value plus one calendar day
- "2001-09-09T02:00:00", // called once on the rounding result
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.round({ smallestUnit: 'hour' });
-}, expected);
diff --git a/polyfill/test/ZonedDateTime/prototype/second/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/second/balance-negative-time-units.js
deleted file mode 100644
index 79e91712fd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/balance-negative-time-units.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.second
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–8:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.second step 6:
- 6. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _calendar_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1_000_000_001n, tz);
-
-assert.sameValue(datetime.second, 0);
-assert.sameValue(datetime.millisecond, 999);
-assert.sameValue(datetime.microsecond, 999);
-assert.sameValue(datetime.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/second/branding.js b/polyfill/test/ZonedDateTime/prototype/second/branding.js
deleted file mode 100644
index 0ff1691779..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.second
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const second = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "second").get;
-
-assert.sameValue(typeof second, "function");
-
-assert.throws(TypeError, () => second.call(undefined), "undefined");
-assert.throws(TypeError, () => second.call(null), "null");
-assert.throws(TypeError, () => second.call(true), "true");
-assert.throws(TypeError, () => second.call(""), "empty string");
-assert.throws(TypeError, () => second.call(Symbol()), "symbol");
-assert.throws(TypeError, () => second.call(1), "1");
-assert.throws(TypeError, () => second.call({}), "plain object");
-assert.throws(TypeError, () => second.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => second.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/second/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/second/prop-desc.js
deleted file mode 100644
index 8d768a3f48..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.second
-description: The "second" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "second");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 64583eff4c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.second
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.second);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 2b4dfed466..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.second
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.second);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0a183139f3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/second/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.second
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.second);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/since/balance-negative-time-units.js
deleted file mode 100644
index 801b00cd19..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/balance-negative-time-units.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal-differencezoneddatetime step 7:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- sec-temporal.zoneddatetime.prototype.since step 16:
- 16. Let _difference_ be ? DifferenceZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _other_.[[Nanoseconds]], _zonedDateTime_.[[TimeZone]], _zonedDateTime_.[[Calendar]], _largestUnit_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = new Temporal.TimeZone("UTC");
-const datetime = new Temporal.ZonedDateTime(830998861_001_001_001n, timeZone);
-const options = { largestUnit: "days" };
-
-const result1 = datetime.since(new Temporal.ZonedDateTime(830995200_000_000_002n, timeZone), options);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = datetime.since(new Temporal.ZonedDateTime(830995200_000_002_000n, timeZone), options);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = datetime.since(new Temporal.ZonedDateTime(830995200_002_000_000n, timeZone), options);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = datetime.since(new Temporal.ZonedDateTime(830995202_000_000_000n, timeZone), options);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = datetime.since(new Temporal.ZonedDateTime(830995320_000_000_000n, timeZone), options);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = datetime.since(new Temporal.ZonedDateTime(831002400_000_000_000n, timeZone), options);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/branding.js b/polyfill/test/ZonedDateTime/prototype/since/branding.js
deleted file mode 100644
index 2676e647af..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const since = Temporal.ZonedDateTime.prototype.since;
-
-assert.sameValue(typeof since, "function");
-
-assert.throws(TypeError, () => since.call(undefined), "undefined");
-assert.throws(TypeError, () => since.call(null), "null");
-assert.throws(TypeError, () => since.call(true), "true");
-assert.throws(TypeError, () => since.call(""), "empty string");
-assert.throws(TypeError, () => since.call(Symbol()), "symbol");
-assert.throws(TypeError, () => since.call(1), "1");
-assert.throws(TypeError, () => since.call({}), "plain object");
-assert.throws(TypeError, () => since.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => since.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/builtin.js b/polyfill/test/ZonedDateTime/prototype/since/builtin.js
deleted file mode 100644
index af12cecb75..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: >
- Tests that Temporal.ZonedDateTime.prototype.since
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.since),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.since),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.since),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.since.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 9e6556718c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const earlier = new Temporal.ZonedDateTime(0n, timeZone, calendar);
-
-// Basic difference with largestUnit larger than days.
-// The calls come from these paths:
-// ZonedDateTime.since() -> DifferenceZonedDateTime ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-
-const later1 = new Temporal.ZonedDateTime(1_213_200_000_000_000n, timeZone, calendar);
-later1.since(earlier, { largestUnit: "weeks" });
-assert.sameValue(calendar.dateAddCallCount, 2, "basic difference with largestUnit >days");
-
-// Basic difference with largestUnit equal to days, to cover the second path in
-// AddZonedDateTime.
-// The calls come from these paths:
-// ZonedDateTime.since() -> DifferenceZonedDateTime -> NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-
-calendar.dateAddCallCount = 0;
-
-later1.since(earlier, { largestUnit: "days" });
-assert.sameValue(calendar.dateAddCallCount, 2, "basic difference with largestUnit days");
-
-// Difference with rounding, with smallestUnit a calendar unit.
-// The calls come from these paths:
-// ZonedDateTime.since() ->
-// DifferenceZonedDateTime ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// MoveRelativeDate -> calendar.dateAdd()
-
-calendar.dateAddCallCount = 0;
-
-later1.since(earlier, { smallestUnit: "weeks" });
-assert.sameValue(calendar.dateAddCallCount, 5, "rounding difference with calendar smallestUnit");
-
-// Difference with rounding, with smallestUnit a non-calendar unit, and having
-// the resulting time difference be longer than a calendar day, covering the
-// paths that go through AdjustRoundedDurationDays. (The path through
-// AdjustRoundedDurationDays -> AddDuration that's covered in the corresponding
-// test in until() only happens in one direction.)
-// The calls come from these paths:
-// ZonedDateTime.since() ->
-// DifferenceZonedDateTime -> NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (3x)
-// AdjustRoundedDurationDays ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (3x)
-
-calendar.dateAddCallCount = 0;
-
-const later2 = new Temporal.ZonedDateTime(86_399_999_999_999n, timeZone, calendar);
-later2.since(earlier, { largestUnit: "days", smallestUnit: "hours", roundingMode: "ceil" });
-assert.sameValue(calendar.dateAddCallCount, 6, "rounding difference with non-calendar smallestUnit and time difference longer than a calendar day");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js b/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js
deleted file mode 100644
index 46e69aef29..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-copy-of-options.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: The dateUntil() method on the calendar is called with a copy of the options bag
-features: [Temporal]
----*/
-
-const originalOptions = {
- largestUnit: "year",
- shouldBeCopied: {},
-};
-let called = false;
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2, options) {
- called = true;
- assert.notSameValue(options, originalOptions, "options bag should be a copy");
- assert.sameValue(options.shouldBeCopied, originalOptions.shouldBeCopied, "options bag should be a shallow copy");
- return new Temporal.Duration(-1);
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-// exactly one year later; avoids NanosecondsToDays path
-const later = new Temporal.ZonedDateTime(1_031_536_000_000_000_000n, "UTC", calendar);
-later.since(earlier, originalOptions);
-assert(called, "calendar.dateUntil must be called");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index 6365c6224c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.zoneddatetime.prototype.since steps 14–18:
- 14. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- c. Return ...
- 15. ...
- 16. Let _difference_ be ? DifferenceZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _other_.[[Nanoseconds]], _zonedDateTime_.[[TimeZone]], _zonedDateTime_.[[Calendar]], _largestUnit_).
- 17. Let _roundResult_ be ? RoundDuration(_difference_.[[Years]], _difference_.[[Months]], _difference_.[[Weeks]], _difference_.[[Days]], _difference_.[[Hours]], _difference_.[[Minutes]], _difference_.[[Seconds]], _difference_.[[Milliseconds]], _difference_.[[Microseconds]], _difference_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _zonedDateTime_).
- 18. Let _result_ be ? AdjustRoundedDurationDays(_roundResult_.[[Years]], _roundResult_.[[Months]], _roundResult_.[[Weeks]], _roundResult_.[[Days]], _roundResult_.[[Hours]], _roundResult_.[[Minutes]], _roundResult_.[[Seconds]], _roundResult_.[[Milliseconds]], _roundResult_.[[Microseconds]], _roundResult_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _zonedDateTime_).
- sec-temporal-differencezoneddatetime steps 7 and 11:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- 11. Let _result_ be ? NanosecondsToDays(_timeRemainderNs_, _intermediate_).
- sec-temporal-roundduration steps 5.d and 8.n–p:
- 5. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- ...
- 8. If _unit_ is *"year"*, then
- ...
- n. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- o. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"year"*).
- p. Let _timePassed_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _daysLater_, _untilOptions_)
- sec-temporal-adjustroundeddurationdays steps 1 and 9:
- 1. If _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot; or _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*; or _unit_ is *"nanosecond"* and _increment_ is 1, then
- a. Return ...
- ...
- 9. Let _adjustedDateDuration_ be ? AddDuration(_years_, _months_, _weeks_, _days_, 0, 0, 0, 0, 0, 0, 0, 0, 0, _direction_, 0, 0, 0, 0, 0, 0, _relativeTo_).
- sec-temporal-addduration step 7.a–g:
- a. Assert: _relativeTo_ has an [[IntializedTemporalZonedDateTime]] internal slot.
- ...
- f. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- g. Else,
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC", calendar);
- later.since(earlier, { largestUnit });
- },
- {
- years: ["year", "day"],
- months: ["month", "day"],
- weeks: ["week", "day"],
- days: ["day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Additionally check the path that goes through AdjustRoundedDurationDays
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.ZonedDateTime(0n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(86_399_999_999_999n, "UTC", calendar);
- later.since(earlier, { largestUnit, roundingIncrement: 2, roundingMode: 'ceil' });
- },
- {
- years: ["year", "day", "day", "day"],
- months: ["month", "day", "day", "day"],
- weeks: ["week", "day", "day", "day"],
- days: ["day", "day", "day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Also check the path that goes through RoundDuration when smallestUnit is
-// given
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, smallestUnit) => {
- const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC", calendar);
- later.since(earlier, { smallestUnit });
- },
- {
- years: ["year", "day", "day", "year"],
- months: ["month", "day", "day"],
- weeks: ["week", "day", "day"],
- days: ["day", "day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/since/calendar-fields-iterable.js
deleted file mode 100644
index 1f8eb2aca6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.since({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/since/calendar-temporal-object.js
deleted file mode 100644
index 8db1101ec3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", temporalObject);
- datetime.since({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: temporalObject });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 810206a0be..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.since({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/largestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/since/largestunit-invalid-string.js
deleted file mode 100644
index fca0796eb1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-assert.throws(RangeError, () => later.since(earlier, { largestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/since/largestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/since/largestunit-plurals-accepted.js
deleted file mode 100644
index b33c2dce5c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC");
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => later.since(earlier, { largestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/largestunit-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/largestunit-undefined.js
deleted file mode 100644
index 9b532ebd71..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-
-const explicit = later.since(earlier, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default largestUnit is hour");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default largestUnit is hour");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/largestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/since/largestunit-wrong-type.js
deleted file mode 100644
index 6b8603ca10..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => later.since(earlier, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/length.js b/polyfill/test/ZonedDateTime/prototype/since/length.js
deleted file mode 100644
index e311189992..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Temporal.ZonedDateTime.prototype.since.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.since, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/name.js b/polyfill/test/ZonedDateTime/prototype/since/name.js
deleted file mode 100644
index 70c5ff9cdd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Temporal.ZonedDateTime.prototype.since.name is "since".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.since, "name", {
- value: "since",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/since/negative-epochnanoseconds.js
deleted file mode 100644
index 5c92ab45a2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.since(new Temporal.ZonedDateTime(0n, "UTC"), { largestUnit: "month" });
-TemporalHelpers.assertDuration(result, 0, -5, 0, -7, -7, -9, -24, -999, -999, -999);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/since/not-a-constructor.js
deleted file mode 100644
index b620d4079f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: >
- Temporal.ZonedDateTime.prototype.since does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.since();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.since), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.since)");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/options-undefined.js
deleted file mode 100644
index 562654dfb4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/options-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(957270896_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(959949296_987_654_322n, "UTC");
-
-const explicit = later.since(earlier, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is hours");
-assert.sameValue(explicit.months, 0, "default largest unit is hours");
-assert.sameValue(explicit.weeks, 0, "default largest unit is hours");
-assert.sameValue(explicit.days, 0, "default largest unit is hours");
-assert.sameValue(explicit.hours, 744, "default largest unit is hours");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = later.since(earlier);
-assert.sameValue(implicit.years, 0, "default largest unit is hours");
-assert.sameValue(implicit.months, 0, "default largest unit is hours");
-assert.sameValue(implicit.weeks, 0, "default largest unit is hours");
-assert.sameValue(implicit.days, 0, "default largest unit is hours");
-assert.sameValue(implicit.hours, 744, "default largest unit is hours");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/since/prop-desc.js
deleted file mode 100644
index 8fa7743064..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: The "since" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.since,
- "function",
- "`typeof ZonedDateTime.prototype.since` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "since", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/prototype/since/read-time-fields-before-datefromfields.js
deleted file mode 100644
index dee3a85d41..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.j:
- j. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const duration = datetime.since({ year: 2001, month: 9, day: 9, timeZone: "UTC", calendar });
-
-TemporalHelpers.assertDuration(duration, 0, 0, 0, 0, 1, 46, 40, 987, 654, 321);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-nan.js b/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-nan.js
deleted file mode 100644
index 071cf4c5bd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: NaN }));
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-non-integer.js b/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-non-integer.js
deleted file mode 100644
index d228d8fcef..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-const result = later.since(earlier, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-out-of-range.js
deleted file mode 100644
index 81bd48e8a1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => later.since(earlier, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-undefined.js
deleted file mode 100644
index 9a0bf0fd06..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-
-const explicit = later.since(earlier, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-wrong-type.js
deleted file mode 100644
index ee09f92742..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.since step 13:
- 13. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => later.since(earlier, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/since/roundingmode-invalid-string.js
deleted file mode 100644
index 8fd11a6ba5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/roundingmode-undefined.js
deleted file mode 100644
index 7c18e02511..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-
-const explicit1 = later.since(earlier, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = later.since(earlier, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = later.since(earlier, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 25, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = later.since(earlier, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 25, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = later.since(earlier, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 25, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = later.since(earlier, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 25, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/since/roundingmode-wrong-type.js
deleted file mode 100644
index a913aeeaf4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => later.since(earlier, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/since/smallestunit-invalid-string.js
deleted file mode 100644
index 16ced4c28d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-assert.throws(RangeError, () => later.since(earlier, { smallestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/since/smallestunit-plurals-accepted.js
deleted file mode 100644
index c152543d97..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC");
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => later.since(earlier, { smallestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-undefined.js b/polyfill/test/ZonedDateTime/prototype/since/smallestunit-undefined.js
deleted file mode 100644
index a2c0bca656..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-
-const explicit = later.since(earlier, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = later.since(earlier, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/since/smallestunit-wrong-type.js
deleted file mode 100644
index 7c3528d053..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => later.since(earlier, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 0169317fa4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(RangeError, () => datetime.since(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 1a9e114693..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(RangeError, () => datetime.since(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 3dffda84fa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(TypeError, () => datetime.since(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/since/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/since/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 7497e4d67a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.prototype.since step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Not called on the instance's time zone
-
-const expected1 = [];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.since({ year: 2005, month: 6, day: 2, timeZone: "UTC" });
-}, expected1);
-
-// Called on the argument's time zone
-
-const expected2 = [
- "2005-06-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- datetime.since({ year: 2005, month: 6, day: 2, timeZone });
-}, expected2);
diff --git a/polyfill/test/ZonedDateTime/prototype/since/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/prototype/since/timezone-string-datetime.js
deleted file mode 100644
index 636d0b1b4f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/timezone-string-datetime.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let expectedTimeZone = "UTC";
-const instance1 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance1.since({ year: 2020, month: 5, day: 2, timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance1.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw. They should produce
-// expectedTimeZone, so additionally the operation will not throw due to the
-// time zones being different on the receiver and the argument.
-
-timeZone = "2021-08-19T17:30Z";
-instance1.since({ year: 2020, month: 5, day: 2, timeZone });
-instance1.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-expectedTimeZone = "-07:00";
-const instance2 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-08-19T17:30-07:00";
-instance2.since({ year: 2020, month: 5, day: 2, timeZone });
-instance2.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-expectedTimeZone = "America/Vancouver";
-const instance3 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-instance3.since({ year: 2020, month: 5, day: 2, timeZone });
-instance3.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-instance3.since({ year: 2020, month: 5, day: 2, timeZone });
-instance3.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-instance3.since({ year: 2020, month: 5, day: 2, timeZone });
-instance3.since({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
diff --git a/polyfill/test/ZonedDateTime/prototype/since/zoneddatetime-string.js b/polyfill/test/ZonedDateTime/prototype/since/zoneddatetime-string.js
deleted file mode 100644
index f4b2daf362..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/since/zoneddatetime-string.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.since
-description: Conversion of ISO date-time strings to Temporal.ZonedDateTime instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(0n, "UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.since(str), "bare date-time string is not a ZonedDateTime");
-str = "1970-01-01T00:00Z";
-assert.throws(RangeError, () => instance.since(str), "date-time + Z is not a ZonedDateTime");
-str = "1970-01-01T00:00+01:00";
-assert.throws(RangeError, () => instance.since(str), "date-time + offset is not a ZonedDateTime");
-
-str = "1970-01-01T00:00[Europe/Berlin]";
-const result1 = instance.since(str);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + IANA annotation preserves wall time in the time zone");
-
-str = "1970-01-01T00:00Z[Europe/Berlin]";
-const result2 = instance.since(str);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation preserves exact time in the time zone");
-
-str = "1970-01-01T00:00+01:00[Europe/Berlin]";
-const result3 = instance.since(str);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation ensures both exact and wall time match");
-
-str = "1970-01-01T00:00-04:15[Europe/Berlin]";
-assert.throws(RangeError, () => instance.since(str), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/branding.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/branding.js
deleted file mode 100644
index 9877e2aa59..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const startOfDay = Temporal.ZonedDateTime.prototype.startOfDay;
-
-assert.sameValue(typeof startOfDay, "function");
-
-assert.throws(TypeError, () => startOfDay.call(undefined), "undefined");
-assert.throws(TypeError, () => startOfDay.call(null), "null");
-assert.throws(TypeError, () => startOfDay.call(true), "true");
-assert.throws(TypeError, () => startOfDay.call(""), "empty string");
-assert.throws(TypeError, () => startOfDay.call(Symbol()), "symbol");
-assert.throws(TypeError, () => startOfDay.call(1), "1");
-assert.throws(TypeError, () => startOfDay.call({}), "plain object");
-assert.throws(TypeError, () => startOfDay.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => startOfDay.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/builtin.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/builtin.js
deleted file mode 100644
index c7c1636a09..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: >
- Tests that Temporal.ZonedDateTime.prototype.startOfDay
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.startOfDay),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.startOfDay),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.startOfDay),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.startOfDay.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 0fb6b7e5a7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.ZonedDateTime(7200_000_000_000n, timeZone, calendar);
-instance.startOfDay();
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/length.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/length.js
deleted file mode 100644
index 8c2c6c8805..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: Temporal.ZonedDateTime.prototype.startOfDay.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.startOfDay, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/name.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/name.js
deleted file mode 100644
index e6103ae0c8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: Temporal.ZonedDateTime.prototype.startOfDay.name is "startOfDay".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.startOfDay, "name", {
- value: "startOfDay",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/not-a-constructor.js
deleted file mode 100644
index d5d48ab833..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: >
- Temporal.ZonedDateTime.prototype.startOfDay does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.startOfDay();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.startOfDay), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.startOfDay)");
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/prop-desc.js
deleted file mode 100644
index bc70a596fa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: The "startOfDay" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.startOfDay,
- "function",
- "`typeof ZonedDateTime.prototype.startOfDay` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "startOfDay", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/subclassing-ignored.js
deleted file mode 100644
index 1ba3f80add..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [88000_123_456_789n, "UTC"],
- "startOfDay",
- [],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 86400_000_000_000n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 2, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 0, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ec6fb2cadb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.startOfDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 991c3e89e0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.startOfDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 0140d3b9ff..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/startOfDay/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.startofday
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.startOfDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js b/polyfill/test/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
deleted file mode 100644
index 5ccf12840e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/argument-string-negative-fractional-units.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Strings with fractional duration units are treated with the correct sign
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-
-const resultHours = instance.subtract("-PT24.567890123H");
-assert.sameValue(resultHours.epochNanoseconds, 1_000_088_444_404_442_799n, "negative fractional hours");
-
-const resultMinutes = instance.subtract("-PT1440.567890123M");
-assert.sameValue(resultMinutes.epochNanoseconds, 1_000_086_434_073_407_379n, "negative fractional minutes");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/branding.js b/polyfill/test/ZonedDateTime/prototype/subtract/branding.js
deleted file mode 100644
index 0dcb416836..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const subtract = Temporal.ZonedDateTime.prototype.subtract;
-
-assert.sameValue(typeof subtract, "function");
-
-assert.throws(TypeError, () => subtract.call(undefined), "undefined");
-assert.throws(TypeError, () => subtract.call(null), "null");
-assert.throws(TypeError, () => subtract.call(true), "true");
-assert.throws(TypeError, () => subtract.call(""), "empty string");
-assert.throws(TypeError, () => subtract.call(Symbol()), "symbol");
-assert.throws(TypeError, () => subtract.call(1), "1");
-assert.throws(TypeError, () => subtract.call({}), "plain object");
-assert.throws(TypeError, () => subtract.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => subtract.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/builtin.js b/polyfill/test/ZonedDateTime/prototype/subtract/builtin.js
deleted file mode 100644
index 67275fd17b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: >
- Tests that Temporal.ZonedDateTime.prototype.subtract
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.subtract),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.subtract),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.subtract),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.subtract.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/length.js b/polyfill/test/ZonedDateTime/prototype/subtract/length.js
deleted file mode 100644
index 5f87ed676a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Temporal.ZonedDateTime.prototype.subtract.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.subtract, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/name.js b/polyfill/test/ZonedDateTime/prototype/subtract/name.js
deleted file mode 100644
index 4e5888b44e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Temporal.ZonedDateTime.prototype.subtract.name is "subtract".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.subtract, "name", {
- value: "subtract",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/subtract/negative-epochnanoseconds.js
deleted file mode 100644
index 478add81bd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.subtract(new Temporal.Duration(0, 0, 0, 1));
-assert.sameValue(result.epochNanoseconds, -13936164_999_999_999n);
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/non-integer-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/subtract/non-integer-throws-rangeerror.js
deleted file mode 100644
index 4534b39f70..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/non-integer-throws-rangeerror.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: A non-integer value for any recognized property in the property bag, throws a RangeError
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const fields = [
- "years",
- "months",
- "weeks",
- "days",
- "hours",
- "minutes",
- "seconds",
- "milliseconds",
- "microseconds",
- "nanoseconds",
-];
-fields.forEach((field) => {
- assert.throws(RangeError, () => instance.subtract({ [field]: 1.5 }));
- assert.throws(RangeError, () => instance.subtract({ [field]: -1.5 }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/subtract/not-a-constructor.js
deleted file mode 100644
index 02e9b631ee..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: >
- Temporal.ZonedDateTime.prototype.subtract does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.subtract();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.subtract), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.subtract)");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/subtract/options-undefined.js
deleted file mode 100644
index 96e8b04410..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(954506096_987_654_321n, "UTC");
-const duration = { months: 1 };
-
-const explicit = datetime.subtract(duration, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.subtract(duration);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/subtract/overflow-invalid-string.js
deleted file mode 100644
index 8c144ef70d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-invalid-string.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.subtract step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-assert.throws(RangeError, () => datetime.subtract(duration, { overflow: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-undefined.js b/polyfill/test/ZonedDateTime/prototype/subtract/overflow-undefined.js
deleted file mode 100644
index b585fbe0d3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.subtract step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-1n, "UTC");
-const duration = new Temporal.Duration(0, 1);
-
-const explicit = datetime.subtract(duration, { overflow: undefined });
-assert.sameValue(explicit.epochNanoseconds, -2678400_000_000_001n, "default overflow is constrain");
-const implicit = datetime.subtract(duration, {});
-assert.sameValue(implicit.epochNanoseconds, -2678400_000_000_001n, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/subtract/overflow-wrong-type.js
deleted file mode 100644
index 1827aef0f5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/overflow-wrong-type.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal.calendar.prototype.dateadd step 7:
- 7. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal-addzoneddatetime step 6:
- 6. Let _addedDate_ be ? CalendarDateAdd(_calendar_, _datePart_, _dateDuration_, _options_).
- sec-temporal.zoneddatetime.prototype.subtract step 7:
- 7. Let _epochNanoseconds_ be ? AddZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _timeZone_, _calendar_, −_duration_.[[Years]], −_duration_.[[Months]], −_duration_.[[Weeks]], −_duration_.[[Days]], −_duration_.[[Hours]], −_duration_.[[Minutes]], −_duration_.[[Seconds]], −_duration_.[[Milliseconds]], −_duration_.[[Microseconds]], −_duration_.[[Nanoseconds]], _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const duration = new Temporal.Duration(0, 0, 0, 1);
-TemporalHelpers.checkStringOptionWrongType("overflow", "constrain",
- (overflow) => datetime.subtract(duration, { overflow }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 999_913_600_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/subtract/prop-desc.js
deleted file mode 100644
index 2392c28a7b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: The "subtract" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.subtract,
- "function",
- "`typeof ZonedDateTime.prototype.subtract` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "subtract", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/subtract/subclassing-ignored.js
deleted file mode 100644
index 0acc781ce7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "subtract",
- [{ nanoseconds: 5 }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 5n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 5, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 043be5d89b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.subtract(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 40ec8ae7c8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.subtract(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 1f60290951..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/subtract/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.subtract
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const duration = new Temporal.Duration(1);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.subtract(duration));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/timeZone/branding.js b/polyfill/test/ZonedDateTime/prototype/timeZone/branding.js
deleted file mode 100644
index 15ac6fc049..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/timeZone/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.timezone
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const timeZone = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "timeZone").get;
-
-assert.sameValue(typeof timeZone, "function");
-
-assert.throws(TypeError, () => timeZone.call(undefined), "undefined");
-assert.throws(TypeError, () => timeZone.call(null), "null");
-assert.throws(TypeError, () => timeZone.call(true), "true");
-assert.throws(TypeError, () => timeZone.call(""), "empty string");
-assert.throws(TypeError, () => timeZone.call(Symbol()), "symbol");
-assert.throws(TypeError, () => timeZone.call(1), "1");
-assert.throws(TypeError, () => timeZone.call({}), "plain object");
-assert.throws(TypeError, () => timeZone.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => timeZone.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/timeZone/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/timeZone/prop-desc.js
deleted file mode 100644
index e01a0f9d65..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/timeZone/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.timezone
-description: The "timeZone" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "timeZone");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/branding.js b/polyfill/test/ZonedDateTime/prototype/toInstant/branding.js
deleted file mode 100644
index f3285c1d55..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toInstant = Temporal.ZonedDateTime.prototype.toInstant;
-
-assert.sameValue(typeof toInstant, "function");
-
-assert.throws(TypeError, () => toInstant.call(undefined), "undefined");
-assert.throws(TypeError, () => toInstant.call(null), "null");
-assert.throws(TypeError, () => toInstant.call(true), "true");
-assert.throws(TypeError, () => toInstant.call(""), "empty string");
-assert.throws(TypeError, () => toInstant.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toInstant.call(1), "1");
-assert.throws(TypeError, () => toInstant.call({}), "plain object");
-assert.throws(TypeError, () => toInstant.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toInstant.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/builtin.js b/polyfill/test/ZonedDateTime/prototype/toInstant/builtin.js
deleted file mode 100644
index fb5f7ace5f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toInstant
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toInstant),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toInstant),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toInstant),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toInstant.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/length.js b/polyfill/test/ZonedDateTime/prototype/toInstant/length.js
deleted file mode 100644
index 29ffe237c8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: Temporal.ZonedDateTime.prototype.toInstant.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toInstant, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/name.js b/polyfill/test/ZonedDateTime/prototype/toInstant/name.js
deleted file mode 100644
index 05515678f8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: Temporal.ZonedDateTime.prototype.toInstant.name is "toInstant".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toInstant, "name", {
- value: "toInstant",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toInstant/not-a-constructor.js
deleted file mode 100644
index 011d272776..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: >
- Temporal.ZonedDateTime.prototype.toInstant does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toInstant();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toInstant), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toInstant)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toInstant/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toInstant/prop-desc.js
deleted file mode 100644
index 884180a4ea..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toInstant/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toinstant
-description: The "toInstant" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toInstant,
- "function",
- "`typeof ZonedDateTime.prototype.toInstant` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toInstant", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js
deleted file mode 100644
index 8fe92a5dfa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/balance-negative-time-units.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-temporalzoneddatetimetostring step 9:
- 9. Let _dateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _isoCalendar_).
- sec-get-temporal.zoneddatetime.prototype.tojson step 3:
- 3. Return ? TemporalZonedDateTimeToString(_zonedDateTime_, *"auto"*, *"auto"*, *"auto"*, *"auto"*).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// ZonedDateTime
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-const jsonString = datetime.toJSON();
-
-assert.sameValue(jsonString, "1970-01-01T00:00:00.000000999-00:00:00.000000002[-00:00:00.000000002]");
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/branding.js b/polyfill/test/ZonedDateTime/prototype/toJSON/branding.js
deleted file mode 100644
index ac81e4c9f9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toJSON = Temporal.ZonedDateTime.prototype.toJSON;
-
-assert.sameValue(typeof toJSON, "function");
-
-assert.throws(TypeError, () => toJSON.call(undefined), "undefined");
-assert.throws(TypeError, () => toJSON.call(null), "null");
-assert.throws(TypeError, () => toJSON.call(true), "true");
-assert.throws(TypeError, () => toJSON.call(""), "empty string");
-assert.throws(TypeError, () => toJSON.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toJSON.call(1), "1");
-assert.throws(TypeError, () => toJSON.call({}), "plain object");
-assert.throws(TypeError, () => toJSON.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toJSON.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/builtin.js b/polyfill/test/ZonedDateTime/prototype/toJSON/builtin.js
deleted file mode 100644
index 279e0cb432..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toJSON
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toJSON),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toJSON),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toJSON),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toJSON.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/length.js b/polyfill/test/ZonedDateTime/prototype/toJSON/length.js
deleted file mode 100644
index dc1f67edb0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: Temporal.ZonedDateTime.prototype.toJSON.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toJSON, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/name.js b/polyfill/test/ZonedDateTime/prototype/toJSON/name.js
deleted file mode 100644
index 34b158fe63..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: Temporal.ZonedDateTime.prototype.toJSON.name is "toJSON".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toJSON, "name", {
- value: "toJSON",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/toJSON/negative-epochnanoseconds.js
deleted file mode 100644
index fb73ef987f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toJSON();
-assert.sameValue(result, "1969-07-24T16:50:35.000000001+00:00[UTC]");
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toJSON/not-a-constructor.js
deleted file mode 100644
index f963d13ff6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: >
- Temporal.ZonedDateTime.prototype.toJSON does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toJSON();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toJSON), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toJSON)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toJSON/prop-desc.js
deleted file mode 100644
index 26f62c1058..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: The "toJSON" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toJSON,
- "function",
- "`typeof ZonedDateTime.prototype.toJSON` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toJSON", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index a30ed16643..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toJSON());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 331ed09ad2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toJSON());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index d0cca238d4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toJSON/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tojson
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toJSON());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/branding.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/branding.js
deleted file mode 100644
index 1a6f091be1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toLocaleString = Temporal.ZonedDateTime.prototype.toLocaleString;
-
-assert.sameValue(typeof toLocaleString, "function");
-
-assert.throws(TypeError, () => toLocaleString.call(undefined), "undefined");
-assert.throws(TypeError, () => toLocaleString.call(null), "null");
-assert.throws(TypeError, () => toLocaleString.call(true), "true");
-assert.throws(TypeError, () => toLocaleString.call(""), "empty string");
-assert.throws(TypeError, () => toLocaleString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toLocaleString.call(1), "1");
-assert.throws(TypeError, () => toLocaleString.call({}), "plain object");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toLocaleString.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/builtin.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/builtin.js
deleted file mode 100644
index 13ae4dae7c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toLocaleString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toLocaleString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toLocaleString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toLocaleString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toLocaleString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/length.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/length.js
deleted file mode 100644
index 00f5d03d03..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: Temporal.ZonedDateTime.prototype.toLocaleString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toLocaleString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/locales-undefined.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/locales-undefined.js
deleted file mode 100644
index 8ed6549fdf..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/locales-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: Omitting the locales argument defaults to the DateTimeFormat default
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
-const defaultFormatter = new Intl.DateTimeFormat([], Object.create(null));
-const expected = defaultFormatter.format(datetime);
-
-const actualExplicit = datetime.toLocaleString(undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = datetime.toLocaleString();
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/name.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/name.js
deleted file mode 100644
index 089bb5138a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: Temporal.ZonedDateTime.prototype.toLocaleString.name is "toLocaleString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toLocaleString, "name", {
- value: "toLocaleString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/not-a-constructor.js
deleted file mode 100644
index ff37dba13b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: >
- Temporal.ZonedDateTime.prototype.toLocaleString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toLocaleString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toLocaleString), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toLocaleString)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-conflict.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-conflict.js
deleted file mode 100644
index 5cc1162dc4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-conflict.js
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (C) 2021 Kate Miháliková. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sup-temporal.zoneddatetime.prototype.tolocalestring
-description: >
- Conflicting properties of dateStyle must be rejected with a TypeError for the options argument
-info: |
- Using sec-temporal-getdatetimeformatpattern:
- GetDateTimeFormatPattern ( dateStyle, timeStyle, matcher, opt, dataLocaleData, hc )
-
- 1. If dateStyle is not undefined or timeStyle is not undefined, then
- a. For each row in Table 7, except the header row, do
- i. Let prop be the name given in the Property column of the row.
- ii. Let p be opt.[[]].
- iii. If p is not undefined, then
- 1. Throw a TypeError exception.
-features: [BigInt, Temporal]
----*/
-
-// Table 14 - Supported fields + example value for each field
-const conflictingOptions = [
- [ "weekday", "short" ],
- [ "era", "short" ],
- [ "year", "numeric" ],
- [ "month", "numeric" ],
- [ "day", "numeric" ],
- [ "hour", "numeric" ],
- [ "minute", "numeric" ],
- [ "second", "numeric" ],
- [ "dayPeriod", "short" ],
- [ "fractionalSecondDigits", 3 ],
- [ "timeZoneName", "short" ],
-];
-const datetime = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
-
-assert.sameValue(typeof datetime.toLocaleString("en", { dateStyle: "short" }), "string");
-assert.sameValue(typeof datetime.toLocaleString("en", { timeStyle: "short" }), "string");
-
-for (const [ option, value ] of conflictingOptions) {
- assert.throws(TypeError, function() {
- datetime.toLocaleString("en", { [option]: value, dateStyle: "short" });
- }, `datetime.toLocaleString("en", { ${option}: "${value}", dateStyle: "short" }) throws TypeError`);
-
- assert.throws(TypeError, function() {
- datetime.toLocaleString("en", { [option]: value, timeStyle: "short" });
- }, `datetime.toLocaleString("en", { ${option}: "${value}", timeStyle: "short" }) throws TypeError`);
-}
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-undefined.js
deleted file mode 100644
index 64e3f7881d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/options-undefined.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
-const defaultFormatter = new Intl.DateTimeFormat('en', Object.create(null));
-const expected = defaultFormatter.format(datetime);
-
-const actualExplicit = datetime.toLocaleString('en', undefined);
-assert.sameValue(actualExplicit, expected, "default locale is determined by Intl.DateTimeFormat");
-
-const actualImplicit = datetime.toLocaleString('en');
-assert.sameValue(actualImplicit, expected, "default locale is determined by Intl.DateTimeFormat");
diff --git a/polyfill/test/ZonedDateTime/prototype/toLocaleString/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toLocaleString/prop-desc.js
deleted file mode 100644
index a1ff3fbfba..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toLocaleString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tolocalestring
-description: The "toLocaleString" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toLocaleString,
- "function",
- "`typeof ZonedDateTime.prototype.toLocaleString` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toLocaleString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/branding.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/branding.js
deleted file mode 100644
index d5e774a56a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDate = Temporal.ZonedDateTime.prototype.toPlainDate;
-
-assert.sameValue(typeof toPlainDate, "function");
-
-assert.throws(TypeError, () => toPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDate.call(null), "null");
-assert.throws(TypeError, () => toPlainDate.call(true), "true");
-assert.throws(TypeError, () => toPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDate.call(1), "1");
-assert.throws(TypeError, () => toPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toPlainDate.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/builtin.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/builtin.js
deleted file mode 100644
index 85adedb827..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/length.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/length.js
deleted file mode 100644
index 822dc2f487..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: Temporal.ZonedDateTime.prototype.toPlainDate.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainDate, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/name.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/name.js
deleted file mode 100644
index b14310a01d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: Temporal.ZonedDateTime.prototype.toPlainDate.name is "toPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainDate, "name", {
- value: "toPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/not-a-constructor.js
deleted file mode 100644
index cc9b3bc79d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: >
- Temporal.ZonedDateTime.prototype.toPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toPlainDate), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toPlainDate)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/prop-desc.js
deleted file mode 100644
index 0834619a95..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: The "toPlainDate" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toPlainDate,
- "function",
- "`typeof ZonedDateTime.prototype.toPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8cc238b12a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainDate());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index c0e4290164..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainDate());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index c22035e539..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindate
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toPlainDate());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/balance-negative-time-units.js
deleted file mode 100644
index 788ae268bf..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/balance-negative-time-units.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.toplaindatetime step 5:
- 5. Return ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _zonedDateTime_.[[Calendar]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-const pdt = datetime.toPlainDateTime();
-
-TemporalHelpers.assertPlainDateTime(pdt, 1970, 1, "M01", 1, 0, 0, 0, 0, 0, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/branding.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/branding.js
deleted file mode 100644
index 8cd4ee4943..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainDateTime = Temporal.ZonedDateTime.prototype.toPlainDateTime;
-
-assert.sameValue(typeof toPlainDateTime, "function");
-
-assert.throws(TypeError, () => toPlainDateTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainDateTime.call(null), "null");
-assert.throws(TypeError, () => toPlainDateTime.call(true), "true");
-assert.throws(TypeError, () => toPlainDateTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainDateTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainDateTime.call(1), "1");
-assert.throws(TypeError, () => toPlainDateTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toPlainDateTime.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/builtin.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/builtin.js
deleted file mode 100644
index 71091c1a19..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toPlainDateTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toPlainDateTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toPlainDateTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toPlainDateTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toPlainDateTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/length.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/length.js
deleted file mode 100644
index 22e23c9fbf..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: Temporal.ZonedDateTime.prototype.toPlainDateTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainDateTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/name.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/name.js
deleted file mode 100644
index 9f5c1bf3e3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: Temporal.ZonedDateTime.prototype.toPlainDateTime.name is "toPlainDateTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainDateTime, "name", {
- value: "toPlainDateTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/negative-epochnanoseconds.js
deleted file mode 100644
index 9b58d44d27..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toPlainDateTime();
-TemporalHelpers.assertPlainDateTime(result, 1969, 7, "M07", 24, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/not-a-constructor.js
deleted file mode 100644
index eda48ec409..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: >
- Temporal.ZonedDateTime.prototype.toPlainDateTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toPlainDateTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toPlainDateTime), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toPlainDateTime)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js
deleted file mode 100644
index 51806b01b4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/plain-custom-timezone.js
+++ /dev/null
@@ -1,41 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: timeZone.getOffsetNanosecondsFor() called
-includes: [compareArray.js]
-features: [Temporal]
----*/
-
-const actual = [];
-const expected = [
- "has timeZone.timeZone",
- "get timeZone.getOffsetNanosecondsFor",
- "call timeZone.getOffsetNanosecondsFor",
-];
-
-const timeZone = new Proxy({
- getOffsetNanosecondsFor() {
- actual.push("call timeZone.getOffsetNanosecondsFor");
- return -8735135802468;
- },
-}, {
- has(target, property) {
- actual.push(`has timeZone.${property}`);
- return property in target;
- },
- get(target, property) {
- actual.push(`get timeZone.${property}`);
- return target[property];
- },
-});
-
-const zdt = new Temporal.ZonedDateTime(160583136123456789n, timeZone);
-const dateTime = Temporal.PlainDateTime.from("1975-02-02T12:00:00.987654321");
-const result = zdt.toPlainDateTime();
-for (const property of ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"]) {
- assert.sameValue(result[property], dateTime[property], property);
-}
-
-assert.compareArray(actual, expected);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/prop-desc.js
deleted file mode 100644
index 6928a01968..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: The "toPlainDateTime" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toPlainDateTime,
- "function",
- "`typeof ZonedDateTime.prototype.toPlainDateTime` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toPlainDateTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 888ebc14d9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainDateTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f312c13985..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainDateTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f559b4aa2e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainDateTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaindatetime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toPlainDateTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/branding.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/branding.js
deleted file mode 100644
index d758ea470e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainMonthDay = Temporal.ZonedDateTime.prototype.toPlainMonthDay;
-
-assert.sameValue(typeof toPlainMonthDay, "function");
-
-assert.throws(TypeError, () => toPlainMonthDay.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainMonthDay.call(null), "null");
-assert.throws(TypeError, () => toPlainMonthDay.call(true), "true");
-assert.throws(TypeError, () => toPlainMonthDay.call(""), "empty string");
-assert.throws(TypeError, () => toPlainMonthDay.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainMonthDay.call(1), "1");
-assert.throws(TypeError, () => toPlainMonthDay.call({}), "plain object");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toPlainMonthDay.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/builtin.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/builtin.js
deleted file mode 100644
index b9abcadc78..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toPlainMonthDay
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toPlainMonthDay),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toPlainMonthDay),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toPlainMonthDay),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toPlainMonthDay.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-arguments.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-arguments.js
deleted file mode 100644
index 8fe60d2cc6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: Correct options value is passed to calendar method
-info: |
- MonthDayFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- monthDayFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.monthDayFromFields(...args);
- }
-}
-const zonedDateTime = new Temporal.ZonedDateTime(957270896123456789n, "UTC", new CustomCalendar());
-const result = zonedDateTime.toPlainMonthDay();
-TemporalHelpers.assertPlainMonthDay(result, "M05", 2);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js
deleted file mode 100644
index d542b9f3cc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.toplainmonthday step 7:
- 7. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"monthCode"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "monthCode",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-datetime.toPlainMonthDay();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-result.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-result.js
deleted file mode 100644
index c03cfbff76..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/calendar-result.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: TypeError thrown when calendar method returns an object with the wrong brand
-info: |
- MonthDayFromFields ( calendar, fields, options )
-
- 4. Perform ? RequireInternalSlot(monthDay, [[InitializedTemporalMonthDay]]).
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- monthDayFromFields() {
- return {};
- }
-}
-const zonedDateTime = new Temporal.ZonedDateTime(957270896123456789n, "UTC", new CustomCalendar());
-assert.throws(TypeError, () => zonedDateTime.toPlainMonthDay());
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/length.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/length.js
deleted file mode 100644
index f1d40d3b22..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: Temporal.ZonedDateTime.prototype.toPlainMonthDay.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainMonthDay, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/name.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/name.js
deleted file mode 100644
index 06b551c3c4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: Temporal.ZonedDateTime.prototype.toPlainMonthDay.name is "toPlainMonthDay".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainMonthDay, "name", {
- value: "toPlainMonthDay",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/not-a-constructor.js
deleted file mode 100644
index def4383625..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: >
- Temporal.ZonedDateTime.prototype.toPlainMonthDay does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toPlainMonthDay();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toPlainMonthDay), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toPlainMonthDay)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/prop-desc.js
deleted file mode 100644
index bebb091b1b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: The "toPlainMonthDay" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toPlainMonthDay,
- "function",
- "`typeof ZonedDateTime.prototype.toPlainMonthDay` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toPlainMonthDay", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 3c23946344..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainMonthDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 4a34249f13..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainMonthDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 334a531ba0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainMonthDay/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainmonthday
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toPlainMonthDay());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/balance-negative-time-units.js
deleted file mode 100644
index ade5862d6c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/balance-negative-time-units.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-get-temporal.zoneddatetime.prototype.toplaintime step 5:
- 5. Let _temporalDateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _zonedDateTime_.[[Calendar]]).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-const time = datetime.toPlainTime();
-
-TemporalHelpers.assertPlainTime(time, 0, 0, 0, 0, 0, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/branding.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/branding.js
deleted file mode 100644
index 2cc9ab9de8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainTime = Temporal.ZonedDateTime.prototype.toPlainTime;
-
-assert.sameValue(typeof toPlainTime, "function");
-
-assert.throws(TypeError, () => toPlainTime.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainTime.call(null), "null");
-assert.throws(TypeError, () => toPlainTime.call(true), "true");
-assert.throws(TypeError, () => toPlainTime.call(""), "empty string");
-assert.throws(TypeError, () => toPlainTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainTime.call(1), "1");
-assert.throws(TypeError, () => toPlainTime.call({}), "plain object");
-assert.throws(TypeError, () => toPlainTime.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toPlainTime.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/builtin.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/builtin.js
deleted file mode 100644
index 0ff83131bd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toPlainTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toPlainTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toPlainTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toPlainTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toPlainTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/length.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/length.js
deleted file mode 100644
index e7f23ef26f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: Temporal.ZonedDateTime.prototype.toPlainTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/name.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/name.js
deleted file mode 100644
index 9868d6b3e6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: Temporal.ZonedDateTime.prototype.toPlainTime.name is "toPlainTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainTime, "name", {
- value: "toPlainTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/negative-epochnanoseconds.js
deleted file mode 100644
index 3f7b3284f3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toPlainTime();
-TemporalHelpers.assertPlainTime(result, 16, 50, 35, 0, 0, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/not-a-constructor.js
deleted file mode 100644
index cd5ba5e5cb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: >
- Temporal.ZonedDateTime.prototype.toPlainTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toPlainTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toPlainTime), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toPlainTime)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/prop-desc.js
deleted file mode 100644
index ec95b8b7f1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: The "toPlainTime" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toPlainTime,
- "function",
- "`typeof ZonedDateTime.prototype.toPlainTime` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toPlainTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 8ac9757f36..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 613c7093ff..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index f5c4a4f548..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplaintime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toPlainTime());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/branding.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/branding.js
deleted file mode 100644
index 772c7f4320..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toPlainYearMonth = Temporal.ZonedDateTime.prototype.toPlainYearMonth;
-
-assert.sameValue(typeof toPlainYearMonth, "function");
-
-assert.throws(TypeError, () => toPlainYearMonth.call(undefined), "undefined");
-assert.throws(TypeError, () => toPlainYearMonth.call(null), "null");
-assert.throws(TypeError, () => toPlainYearMonth.call(true), "true");
-assert.throws(TypeError, () => toPlainYearMonth.call(""), "empty string");
-assert.throws(TypeError, () => toPlainYearMonth.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toPlainYearMonth.call(1), "1");
-assert.throws(TypeError, () => toPlainYearMonth.call({}), "plain object");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toPlainYearMonth.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/builtin.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/builtin.js
deleted file mode 100644
index 9446a1db13..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toPlainYearMonth
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toPlainYearMonth),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toPlainYearMonth),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toPlainYearMonth),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toPlainYearMonth.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-arguments.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-arguments.js
deleted file mode 100644
index 4cf9c1f921..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-arguments.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: Correct options value is passed to calendar method
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 3. If options is not present, then
- a. Set options to undefined.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- yearMonthFromFields(...args) {
- assert.sameValue(args.length, 2, "args.length");
- assert.sameValue(typeof args[0], "object", "args[0]");
- assert.sameValue(args[1], undefined, "args[1]");
- return super.yearMonthFromFields(...args);
- }
-}
-const zonedDateTime = new Temporal.ZonedDateTime(957270896123456789n, "UTC", new CustomCalendar());
-const result = zonedDateTime.toPlainYearMonth();
-TemporalHelpers.assertPlainYearMonth(result, 2000, 5, "M05");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js
deleted file mode 100644
index 9b096ac6e0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-fields-iterable.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.toplainyearmonth step 7:
- 7. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "monthCode",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-datetime.toPlainYearMonth();
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-result.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-result.js
deleted file mode 100644
index 61a67fd44f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/calendar-result.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: TypeError thrown when calendar method returns an object with the wrong brand
-info: |
- YearMonthFromFields ( calendar, fields [ , options ] )
-
- 4. Perform ? RequireInternalSlot(yearMonth, [[InitializedTemporalYearMonth]]).
-features: [Temporal]
----*/
-
-class CustomCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- yearMonthFromFields() {
- return {};
- }
-}
-const zonedDateTime = new Temporal.ZonedDateTime(957270896123456789n, "UTC", new CustomCalendar());
-assert.throws(TypeError, () => zonedDateTime.toPlainYearMonth());
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/length.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/length.js
deleted file mode 100644
index fd99878bd0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: Temporal.ZonedDateTime.prototype.toPlainYearMonth.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainYearMonth, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/name.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/name.js
deleted file mode 100644
index ac49eb0f40..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: Temporal.ZonedDateTime.prototype.toPlainYearMonth.name is "toPlainYearMonth".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toPlainYearMonth, "name", {
- value: "toPlainYearMonth",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/not-a-constructor.js
deleted file mode 100644
index ec99dfc7d5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: >
- Temporal.ZonedDateTime.prototype.toPlainYearMonth does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toPlainYearMonth();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toPlainYearMonth), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toPlainYearMonth)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/prop-desc.js
deleted file mode 100644
index 3a331fa011..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: The "toPlainYearMonth" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toPlainYearMonth,
- "function",
- "`typeof ZonedDateTime.prototype.toPlainYearMonth` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toPlainYearMonth", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index f87b615cfe..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainYearMonth());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index cbd2f29c05..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toPlainYearMonth());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 4231ff9280..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toPlainYearMonth/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.toplainyearmonth
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toPlainYearMonth());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/toString/balance-negative-time-units.js
deleted file mode 100644
index add1ee4b59..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/balance-negative-time-units.js
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-temporalzoneddatetimetostring step 9:
- 9. Let _dateTime_ be ? BuiltinTimeZoneGetPlainDateTimeFor(_timeZone_, _instant_, _isoCalendar_).
- sec-get-temporal.zoneddatetime.prototype.tostring step 9:
- 9. Return ? TemporalZonedDateTimeToString(_zonedDateTime_, _precision_.[[Precision]], _showCalendar_, _showTimeZone_, _showOffset_, _precision_.[[Increment]], _precision_.[[Unit]], _roundingMode_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// ZonedDateTime
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(1001n, tz);
-
-const isoString = datetime.toString();
-
-assert.sameValue(isoString, "1970-01-01T00:00:00.000000999-00:00:00.000000002[-00:00:00.000000002]");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/branding.js b/polyfill/test/ZonedDateTime/prototype/toString/branding.js
deleted file mode 100644
index b07f47f7f1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const toString = Temporal.ZonedDateTime.prototype.toString;
-
-assert.sameValue(typeof toString, "function");
-
-assert.throws(TypeError, () => toString.call(undefined), "undefined");
-assert.throws(TypeError, () => toString.call(null), "null");
-assert.throws(TypeError, () => toString.call(true), "true");
-assert.throws(TypeError, () => toString.call(""), "empty string");
-assert.throws(TypeError, () => toString.call(Symbol()), "symbol");
-assert.throws(TypeError, () => toString.call(1), "1");
-assert.throws(TypeError, () => toString.call({}), "plain object");
-assert.throws(TypeError, () => toString.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => toString.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/builtin.js b/polyfill/test/ZonedDateTime/prototype/toString/builtin.js
deleted file mode 100644
index 416e5e26e3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: >
- Tests that Temporal.ZonedDateTime.prototype.toString
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.toString),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.toString),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.toString),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.toString.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/calendarname-invalid-string.js
deleted file mode 100644
index 0b4967d73c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: RangeError thrown when calendarName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_64_321n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ calendarName: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/calendarname-undefined.js
deleted file mode 100644
index 207d1df30f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-undefined.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Fallback value for calendarName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime1 = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const datetime2 = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
-
-[
- [datetime1, "2001-09-09T01:46:40.987654321+00:00[UTC]"],
- [datetime2, "2001-09-09T01:46:40.987654321+00:00[UTC][u-ca=custom]"],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toString({ calendarName: undefined });
- assert.sameValue(explicit, expected, "default calendarName option is auto");
-
- // See options-undefined.js for {}
-});
-
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/calendarname-wrong-type.js
deleted file mode 100644
index 5f1e7e73a9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/calendarname-wrong-type.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Type conversions for calendarName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowcalendaroption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"calendarName"*, « String », « *"auto"*, *"always"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 6:
- 6. Let _showCalendar_ be ? ToShowCalendarOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
-
-TemporalHelpers.checkStringOptionWrongType("calendarName", "auto",
- (calendarName) => datetime.toString({ calendarName }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.987654321+00:00[UTC][u-ca=custom]", descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
deleted file mode 100644
index ea172ceb80..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-invalid-string.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option not one of the allowed string values
-info: |
- sec-getstringornumberoption step 4:
- 4. If _stringValues_ is not *undefined* and _stringValues_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.instant.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-nan.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-nan.js
deleted file mode 100644
index 88544be37f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-nan.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.zoneddatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: NaN }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-non-integer.js
deleted file mode 100644
index 93685aedec..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-non-integer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Rounding for fractionalSecondDigits option
-info: |
- sec-getstringornumberoption step 3.b:
- b. Return floor(ℝ(_value_)).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.zoneddatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-
-const string = datetime.toString({ fractionalSecondDigits: 2.5 });
-assert.sameValue(string, "2001-09-09T01:46:40.98+00:00[UTC]", "fractionalSecondDigits 2.5 floors to 2");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
deleted file mode 100644
index 36ae8d1429..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-out-of-range.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown when fractionalSecondDigits option out of range
-info: |
- sec-getstringornumberoption step 3.a:
- a. If _value_ < _minimum_ or _value_ > _maximum_, throw a *RangeError* exception.
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.zoneddatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: -1 }));
-assert.throws(RangeError, () => datetime.toString({ fractionalSecondDigits: 10 }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
deleted file mode 100644
index a4e0a10b5f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Fallback value for fractionalSecondDigits option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, *"stringOrNumber"*, *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.zoneddatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToDurationSecondsStringPrecision(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-
-const explicit = datetime.toString({ fractionalSecondDigits: undefined });
-assert.sameValue(explicit, "2001-09-09T01:46:40.98765+00:00[UTC]", "default fractionalSecondDigits is auto");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
deleted file mode 100644
index b147dbac3e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/fractionalseconddigits-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Type conversions for fractionalSecondDigits option
-info: |
- sec-getoption steps 8–9:
- 8. Else if _type_ is Number, then
- a. Set _value_ to ? ToNumber(value).
- b. ...
- 9. Else,
- a. Set _value_ to ? ToString(value).
- sec-getstringornumberoption step 2:
- 2. Let _value_ be ? GetOption(_options_, _property_, « Number, String », *undefined*, _fallback_).
- sec-temporal-tosecondsstringprecision step 9:
- 9. Let _digits_ be ? GetStringOrNumberOption(_normalizedOptions_, *"fractionalSecondDigits"*, « *"auto"* », 0, 9, *"auto"*).
- sec-temporal.zoneddatetime.prototype.tostring step 4:
- 4. Let _precision_ be ? ToSecondsStringPrecision(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_650_000n, "UTC");
-TemporalHelpers.checkFractionalSecondDigitsOptionWrongType(datetime);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/length.js b/polyfill/test/ZonedDateTime/prototype/toString/length.js
deleted file mode 100644
index b47f8dde92..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Temporal.ZonedDateTime.prototype.toString.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toString, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/name.js b/polyfill/test/ZonedDateTime/prototype/toString/name.js
deleted file mode 100644
index f9c5888dff..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Temporal.ZonedDateTime.prototype.toString.name is "toString".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.toString, "name", {
- value: "toString",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/toString/negative-epochnanoseconds.js
deleted file mode 100644
index 57dbb7951b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.toString();
-assert.sameValue(result, "1969-07-24T16:50:35.000000001+00:00[UTC]");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/toString/not-a-constructor.js
deleted file mode 100644
index e7e75bc76b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: >
- Temporal.ZonedDateTime.prototype.toString does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.toString();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.toString), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.toString)");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/offset-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/offset-invalid-string.js
deleted file mode 100644
index 5842446a2f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/offset-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: RangeError thrown when offset option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowoffsetoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 8:
- 8. Let _showOffset_ be ? ToShowOffsetOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_64_321n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ offset: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/offset-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/offset-undefined.js
deleted file mode 100644
index dd81e25e62..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/offset-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Fallback value for offset option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowoffsetoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 8:
- 8. Let _showOffset_ be ? ToShowOffsetOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-const explicit = datetime.toString({ offset: undefined });
-assert.sameValue(explicit, "2001-09-09T01:46:40.987654321+00:00[UTC]", "default offset option is auto");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/offset-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/offset-wrong-type.js
deleted file mode 100644
index 0c6a6f7691..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/offset-wrong-type.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Type conversions for offset option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowoffsetoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 8:
- 8. Let _showOffset_ be ? ToShowOffsetOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-TemporalHelpers.checkStringOptionWrongType("offset", "auto",
- (offset) => datetime.toString({ offset }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.987654321+00:00[UTC]", descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/options-undefined.js
deleted file mode 100644
index 4d5280cbf0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/options-undefined.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Verify that undefined options are handled correctly.
-features: [Temporal]
----*/
-
-const calendar = {
- toString() { return "custom"; }
-};
-const datetime1 = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC");
-const datetime2 = new Temporal.ZonedDateTime(957270896_987_650_000n, "UTC", calendar);
-
-[
- [datetime1, "2000-05-02T12:34:56.98765+00:00[UTC]"],
- [datetime2, "2000-05-02T12:34:56.98765+00:00[UTC][u-ca=custom]"],
-].forEach(([datetime, expected]) => {
- const explicit = datetime.toString(undefined);
- assert.sameValue(explicit, expected, "default show options are auto, precision is auto, and no rounding");
-
- const propertyImplicit = datetime.toString({});
- assert.sameValue(propertyImplicit, expected, "default show options are auto, precision is auto, and no rounding");
-
- const implicit = datetime.toString();
- assert.sameValue(implicit, expected, "default show options are auto, precision is auto, and no rounding");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/toString/prop-desc.js
deleted file mode 100644
index 057028b645..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: The "toString" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.toString,
- "function",
- "`typeof ZonedDateTime.prototype.toString` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "toString", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-invalid-string.js
deleted file mode 100644
index 01d86acc41..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-undefined.js
deleted file mode 100644
index 752c9d6976..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Fallback value for roundingMode option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-
-const explicit1 = datetime.toString({ smallestUnit: "microsecond", roundingMode: undefined });
-assert.sameValue(explicit1, "2001-09-09T01:46:40.123987+00:00[UTC]", "default roundingMode is trunc");
-const implicit1 = datetime.toString({ smallestUnit: "microsecond" });
-assert.sameValue(implicit1, "2001-09-09T01:46:40.123987+00:00[UTC]", "default roundingMode is trunc");
-
-const explicit2 = datetime.toString({ smallestUnit: "millisecond", roundingMode: undefined });
-assert.sameValue(explicit2, "2001-09-09T01:46:40.123+00:00[UTC]", "default roundingMode is trunc");
-const implicit2 = datetime.toString({ smallestUnit: "millisecond" });
-assert.sameValue(implicit2, "2001-09-09T01:46:40.123+00:00[UTC]", "default roundingMode is trunc");
-
-const explicit3 = datetime.toString({ smallestUnit: "second", roundingMode: undefined });
-assert.sameValue(explicit3, "2001-09-09T01:46:40+00:00[UTC]", "default roundingMode is trunc");
-const implicit3 = datetime.toString({ smallestUnit: "second" });
-assert.sameValue(implicit3, "2001-09-09T01:46:40+00:00[UTC]", "default roundingMode is trunc");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-wrong-type.js
deleted file mode 100644
index 784fac456b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => datetime.toString({ smallestUnit: "microsecond", roundingMode }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.123987+00:00[UTC]", descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-invalid-string.js
deleted file mode 100644
index d394046481..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ smallestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-plurals-accepted.js
deleted file mode 100644
index 0c824f4c43..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_456_789n, "UTC");
-const validUnits = [
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => datetime.toString({ smallestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-undefined.js
deleted file mode 100644
index f3ef265657..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-undefined.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Fallback value for smallestUnit option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-
-const explicit1 = datetime.toString({ smallestUnit: undefined, fractionalSecondDigits: 6 });
-assert.sameValue(explicit1, "2001-09-09T01:46:40.123987+00:00[UTC]", "default smallestUnit defers to fractionalSecondDigits");
-const implicit1 = datetime.toString({ fractionalSecondDigits: 6 });
-assert.sameValue(implicit1, "2001-09-09T01:46:40.123987+00:00[UTC]", "default smallestUnit defers to fractionalSecondDigits");
-
-const explicit2 = datetime.toString({ smallestUnit: undefined, fractionalSecondDigits: 3 });
-assert.sameValue(explicit2, "2001-09-09T01:46:40.123+00:00[UTC]", "default smallestUnit defers to fractionalSecondDigits");
-const implicit2 = datetime.toString({ fractionalSecondDigits: 3 });
-assert.sameValue(implicit2, "2001-09-09T01:46:40.123+00:00[UTC]", "default smallestUnit defers to fractionalSecondDigits");
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-valid-units.js b/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-valid-units.js
deleted file mode 100644
index 12c10368b6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-valid-units.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Valid units for the smallestUnit option
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_456_789n, "UTC");
-
-assert.sameValue(datetime.toString({ smallestUnit: "minute" }), "2001-09-09T01:46+00:00[UTC]");
-assert.sameValue(datetime.toString({ smallestUnit: "second" }), "2001-09-09T01:46:40+00:00[UTC]");
-assert.sameValue(datetime.toString({ smallestUnit: "millisecond" }), "2001-09-09T01:46:40.123+00:00[UTC]");
-assert.sameValue(datetime.toString({ smallestUnit: "microsecond" }), "2001-09-09T01:46:40.123456+00:00[UTC]");
-assert.sameValue(datetime.toString({ smallestUnit: "nanosecond" }), "2001-09-09T01:46:40.123456789+00:00[UTC]");
-
-const notValid = [
- "year",
- "month",
- "week",
- "day",
- "hour",
-];
-
-notValid.forEach((smallestUnit) => {
- assert.throws(RangeError, () => datetime.toString({ smallestUnit }), smallestUnit);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-wrong-type.js
deleted file mode 100644
index ef44165436..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => datetime.toString({ smallestUnit }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.123987+00:00[UTC]", descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index f32b4dccc0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toString());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index f4325d7f36..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.toString());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 4d8dc3812b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.tostring
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.toString());
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/toString/timezonename-invalid-string.js
deleted file mode 100644
index 94067c2590..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: RangeError thrown when timeZoneName option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-toshowtimezonenameoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"timeZoneName"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 7:
- 7. Let _showTimeZone_ be ? ToShowTimeZoneNameOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_64_321n, "UTC");
-assert.throws(RangeError, () => datetime.toString({ timeZoneName: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-undefined.js b/polyfill/test/ZonedDateTime/prototype/toString/timezonename-undefined.js
deleted file mode 100644
index 7973c987d7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-undefined.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Fallback value for timeZoneName option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-toshowtimezonenameoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"timeZoneName"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 7:
- 7. Let _showTimeZone_ be ? ToShowTimeZoneNameOption(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-const explicit = datetime.toString({ timeZoneName: undefined });
-assert.sameValue(explicit, "2001-09-09T01:46:40.987654321+00:00[UTC]", "default timeZoneName option is auto");
-
-// See options-undefined.js for {}
diff --git a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/toString/timezonename-wrong-type.js
deleted file mode 100644
index e83112b28d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/toString/timezonename-wrong-type.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.tostring
-description: Type conversions for timeZoneName option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-toshowtimezonenameoption step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"timeZoneName"*, « String », « *"auto"*, *"never"* », *"auto"*).
- sec-temporal.zoneddatetime.protoype.tostring step 7:
- 7. Let _showTimeZone_ be ? ToShowTimeZoneNameOption(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-TemporalHelpers.checkStringOptionWrongType("timeZoneName", "auto",
- (timeZoneName) => datetime.toString({ timeZoneName }),
- (result, descr) => assert.sameValue(result, "2001-09-09T01:46:40.987654321+00:00[UTC]", descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/until/balance-negative-time-units.js
deleted file mode 100644
index 2005406753..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/balance-negative-time-units.js
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-differencetime step 8:
- 8. Let _bt_ be ? BalanceTime(_hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-differenceisodatetime step 2:
- 2. Let _timeDifference_ be ? DifferenceTime(_h1_, _min1_, _s1_, _ms1_, _mus1_, _ns1_, _h2_, _min2_, _s2_, _ms2_, _mus2_, _ns2_).
- sec-temporal-differencezoneddatetime step 7:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- sec-temporal.zoneddatetime.prototype.until step 15:
- 15. Let _difference_ be ? DifferenceZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _other_.[[Nanoseconds]], _zonedDateTime_.[[TimeZone]], _zonedDateTime_.[[Calendar]], _largestUnit_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = new Temporal.TimeZone("UTC");
-const datetime = new Temporal.ZonedDateTime(830998861_001_001_001n, timeZone);
-const options = { largestUnit: "days" };
-
-const result1 = new Temporal.ZonedDateTime(830995200_000_000_002n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 999, "nanoseconds balance");
-
-const result2 = new Temporal.ZonedDateTime(830995200_000_002_000n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 1, 1, 1, 0, 999, 1, "microseconds balance");
-
-const result3 = new Temporal.ZonedDateTime(830995200_002_000_000n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, 1, 1, 0, 999, 1, 1, "milliseconds balance");
-
-const result4 = new Temporal.ZonedDateTime(830995202_000_000_000n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result4, 0, 0, 0, 0, 1, 0, 59, 1, 1, 1, "seconds balance");
-
-const result5 = new Temporal.ZonedDateTime(830995320_000_000_000n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result5, 0, 0, 0, 0, 0, 59, 1, 1, 1, 1, "minutes balance");
-
-// This one is different because hours are later balanced again in BalanceDuration
-const result6 = new Temporal.ZonedDateTime(831002400_000_000_000n, timeZone).until(datetime, options);
-TemporalHelpers.assertDuration(result6, 0, 0, 0, 0, 0, -58, -58, -998, -998, -999, "hours balance");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/branding.js b/polyfill/test/ZonedDateTime/prototype/until/branding.js
deleted file mode 100644
index 18210ae365..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const until = Temporal.ZonedDateTime.prototype.until;
-
-assert.sameValue(typeof until, "function");
-
-assert.throws(TypeError, () => until.call(undefined), "undefined");
-assert.throws(TypeError, () => until.call(null), "null");
-assert.throws(TypeError, () => until.call(true), "true");
-assert.throws(TypeError, () => until.call(""), "empty string");
-assert.throws(TypeError, () => until.call(Symbol()), "symbol");
-assert.throws(TypeError, () => until.call(1), "1");
-assert.throws(TypeError, () => until.call({}), "plain object");
-assert.throws(TypeError, () => until.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => until.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/builtin.js b/polyfill/test/ZonedDateTime/prototype/until/builtin.js
deleted file mode 100644
index 790fa26fd3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: >
- Tests that Temporal.ZonedDateTime.prototype.until
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.until),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.until),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.until),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.until.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 13bdd33972..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const earlier = new Temporal.ZonedDateTime(0n, timeZone, calendar);
-
-// Basic difference with largestUnit larger than days.
-// The calls come from these paths:
-// ZonedDateTime.until() -> DifferenceZonedDateTime ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-
-const later1 = new Temporal.ZonedDateTime(1_213_200_000_000_000n, timeZone, calendar);
-earlier.until(later1, { largestUnit: "weeks" });
-assert.sameValue(calendar.dateAddCallCount, 2, "basic difference with largestUnit >days");
-
-// Basic difference with largestUnit equal to days, to cover the second path in
-// AddZonedDateTime.
-// The calls come from these paths:
-// ZonedDateTime.until() -> DifferenceZonedDateTime -> NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-
-calendar.dateAddCallCount = 0;
-
-earlier.until(later1, { largestUnit: "days" });
-assert.sameValue(calendar.dateAddCallCount, 2, "basic difference with largestUnit days");
-
-// Difference with rounding, with smallestUnit a calendar unit.
-// The calls come from these paths:
-// ZonedDateTime.until() ->
-// DifferenceZonedDateTime ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// RoundDuration ->
-// MoveRelativeZonedDateTime -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// MoveRelativeDate -> calendar.dateAdd()
-
-calendar.dateAddCallCount = 0;
-
-earlier.until(later1, { smallestUnit: "weeks" });
-assert.sameValue(calendar.dateAddCallCount, 5, "rounding difference with calendar smallestUnit");
-
-// Difference with rounding, with smallestUnit a non-calendar unit, and having
-// the resulting time difference be longer than a calendar day, covering the
-// paths that go through AdjustRoundedDurationDays.
-// The calls come from these paths:
-// ZonedDateTime.until() ->
-// DifferenceZonedDateTime -> NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// AdjustRoundedDurationDays ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// AddDuration ->
-// AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd()
-// DifferenceZonedDateTime -> NanosecondsToDays -> AddZonedDateTime -> BuiltinTimeZoneGetInstantFor -> calendar.dateAdd() (2x)
-
-calendar.dateAddCallCount = 0;
-
-const later2 = new Temporal.ZonedDateTime(86_399_999_999_999n, timeZone, calendar);
-earlier.until(later2, { largestUnit: "days", smallestUnit: "hours", roundingMode: "ceil" });
-assert.sameValue(calendar.dateAddCallCount, 5, "rounding difference with non-calendar smallestUnit and time difference longer than a calendar day");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js b/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js
deleted file mode 100644
index 5bc1242b13..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-copy-of-options.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: The dateUntil() method on the calendar is called with a copy of the options bag
-features: [Temporal]
----*/
-
-const originalOptions = {
- largestUnit: "year",
- shouldBeCopied: {},
-};
-let called = false;
-
-class Calendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(d1, d2, options) {
- called = true;
- assert.notSameValue(options, originalOptions, "options bag should be a copy");
- assert.sameValue(options.shouldBeCopied, originalOptions.shouldBeCopied, "options bag should be a shallow copy");
- return new Temporal.Duration(1);
- }
-}
-const calendar = new Calendar();
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-// exactly one year later; avoids NanosecondsToDays path
-const later = new Temporal.ZonedDateTime(1_031_536_000_000_000_000n, "UTC", calendar);
-earlier.until(later, originalOptions);
-assert(called, "calendar.dateUntil must be called");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js b/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
deleted file mode 100644
index c07900f71b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/calendar-dateuntil-called-with-singular-largestunit.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: The options object passed to calendar.dateUntil has a largestUnit property with its value in the singular form
-info: |
- sec-temporal.zoneddatetime.prototype.until steps 13–17:
- 13. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- c. Return ...
- 14. ...
- 15. Let _difference_ be ? DifferenceZonedDateTime(_zonedDateTime_.[[Nanoseconds]], _other_.[[Nanoseconds]], _zonedDateTime_.[[TimeZone]], _zonedDateTime_.[[Calendar]], _largestUnit_).
- 16. Let _roundResult_ be ? RoundDuration(_difference_.[[Years]], _difference_.[[Months]], _difference_.[[Weeks]], _difference_.[[Days]], _difference_.[[Hours]], _difference_.[[Minutes]], _difference_.[[Seconds]], _difference_.[[Milliseconds]], _difference_.[[Microseconds]], _difference_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _zonedDateTime_).
- 17. Let _result_ be ? AdjustRoundedDurationDays(_roundResult_.[[Years]], _roundResult_.[[Months]], _roundResult_.[[Weeks]], _roundResult_.[[Days]], _roundResult_.[[Hours]], _roundResult_.[[Minutes]], _roundResult_.[[Seconds]], _roundResult_.[[Milliseconds]], _roundResult_.[[Microseconds]], _roundResult_.[[Nanoseconds]], _roundingIncrement_, _smallestUnit_, _roundingMode_, _zonedDateTime_).
- sec-temporal-differencezoneddatetime steps 7 and 11:
- 7. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _calendar_, _largestUnit_, _options_).
- 11. Let _result_ be ? NanosecondsToDays(_timeRemainderNs_, _intermediate_).
- sec-temporal-roundduration steps 5.d and 8.n–p:
- 5. If _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- d. Let _result_ be ? NanosecondsToDays(_nanoseconds_, _intermediate_).
- ...
- 8. If _unit_ is *"year"*, then
- ...
- n. Let _untilOptions_ be ! OrdinaryObjectCreate(*null*).
- o. Perform ! CreateDataPropertyOrThrow(_untilOptions_, *"largestUnit"*, *"year"*).
- p. Let _timePassed_ be ? CalendarDateUntil(_calendar_, _relativeTo_, _daysLater_, _untilOptions_)
- sec-temporal-adjustroundeddurationdays steps 1 and 9:
- 1. If _relativeTo_ does not have an [[InitializedTemporalZonedDateTime]] internal slot; or _unit_ is one of *"year"*, *"month"*, *"week"*, or *"day"*; or _unit_ is *"nanosecond"* and _increment_ is 1, then
- a. Return ...
- ...
- 9. Let _adjustedDateDuration_ be ? AddDuration(_years_, _months_, _weeks_, _days_, 0, 0, 0, 0, 0, 0, 0, 0, 0, _direction_, 0, 0, 0, 0, 0, 0, _relativeTo_).
- sec-temporal-addduration step 7.a–g:
- a. Assert: _relativeTo_ has an [[IntializedTemporalZonedDateTime]] internal slot.
- ...
- f. If _largestUnit_ is not one of *"year"*, *"month"*, *"week"*, or *"day"*, then
- ...
- g. Else,
- i. Let _result_ be ? DifferenceZonedDateTime(_relativeTo_.[[Nanoseconds]], _endNs_, _timeZone_, _calendar_, _largestUnit_).
- sec-temporal-nanosecondstodays step 11:
- 11. 1. Let _dateDifference_ be ? DifferenceISODateTime(_startDateTime_.[[ISOYear]], _startDateTime_.[[ISOMonth]], _startDateTime_.[[ISODay]], _startDateTime_.[[ISOHour]], _startDateTime_.[[ISOMinute]], _startDateTime_.[[ISOSecond]], _startDateTime_.[[ISOMillisecond]], _startDateTime_.[[ISOMicrosecond]], _startDateTime_.[[ISONanosecond]], _endDateTime_.[[ISOYear]], _endDateTime_.[[ISOMonth]], _endDateTime_.[[ISODay]], _endDateTime_.[[ISOHour]], _endDateTime_.[[ISOMinute]], _endDateTime_.[[ISOSecond]], _endDateTime_.[[ISOMillisecond]], _endDateTime_.[[ISOMicrosecond]], _endDateTime_.[[ISONanosecond]], _relativeTo_.[[Calendar]], *"day"*).
- sec-temporal-differenceisodatetime steps 9–11:
- 9. Let _dateLargestUnit_ be ! LargerOfTwoTemporalUnits(*"day"*, _largestUnit_).
- 10. Let _untilOptions_ be ? MergeLargestUnitOption(_options_, _dateLargestUnit_).
- 11. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC", calendar);
- earlier.until(later, { largestUnit });
- },
- {
- years: ["year", "day"],
- months: ["month", "day"],
- weeks: ["week", "day"],
- days: ["day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Additionally check the path that goes through AdjustRoundedDurationDays
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, largestUnit) => {
- const earlier = new Temporal.ZonedDateTime(0n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(86_399_999_999_999n, "UTC", calendar);
- earlier.until(later, { largestUnit, roundingIncrement: 2, roundingMode: 'ceil' });
- },
- {
- years: ["year", "day", "day", "day"],
- months: ["month", "day", "day", "day"],
- weeks: ["week", "day", "day", "day"],
- days: ["day", "day", "day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
-
-// Also check the path that goes through RoundDuration when smallestUnit is
-// given
-
-TemporalHelpers.checkCalendarDateUntilLargestUnitSingular(
- (calendar, smallestUnit) => {
- const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
- const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC", calendar);
- earlier.until(later, { smallestUnit });
- },
- {
- years: ["year", "day", "day", "year"],
- months: ["month", "day", "day"],
- weeks: ["week", "day", "day"],
- days: ["day", "day", "day"],
- hours: [],
- minutes: [],
- seconds: [],
- milliseconds: [],
- microseconds: [],
- nanoseconds: []
- }
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/until/calendar-fields-iterable.js
deleted file mode 100644
index f9ca14e193..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/calendar-fields-iterable.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.until({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/until/calendar-temporal-object.js
deleted file mode 100644
index d7ddb80b70..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/calendar-temporal-object.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.b:
- b. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", temporalObject);
- datetime.until({ year: 2005, month: 6, day: 2, timeZone: "UTC", calendar: temporalObject });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 6bb4a50be4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const base = { year: 2000, month: 5, day: 2, hour: 15, minute: 30, second: 45, millisecond: 987, microsecond: 654, nanosecond: 321, timeZone: "UTC" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.until({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/largestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/until/largestunit-invalid-string.js
deleted file mode 100644
index 77765bdfc8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/largestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown when largestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-assert.throws(RangeError, () => earlier.until(later, { largestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/until/largestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/until/largestunit-plurals-accepted.js
deleted file mode 100644
index 0b04af5b6c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/largestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Plural units are accepted as well for the largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC");
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((largestUnit) => earlier.until(later, { largestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/largestunit-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/largestunit-undefined.js
deleted file mode 100644
index 84619cbab9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/largestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Fallback value for largestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-
-const explicit = earlier.until(later, { largestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default largestUnit is hour");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default largestUnit is hour");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/largestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/until/largestunit-wrong-type.js
deleted file mode 100644
index b102d73e8e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/largestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Type conversions for largestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("largestUnit", "year",
- (largestUnit) => earlier.until(later, { largestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 1, 1, 1, 1, 987, 654, 321, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/length.js b/polyfill/test/ZonedDateTime/prototype/until/length.js
deleted file mode 100644
index a1e4337c32..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Temporal.ZonedDateTime.prototype.until.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.until, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/name.js b/polyfill/test/ZonedDateTime/prototype/until/name.js
deleted file mode 100644
index 88a70c9217..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Temporal.ZonedDateTime.prototype.until.name is "until".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.until, "name", {
- value: "until",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/until/negative-epochnanoseconds.js
deleted file mode 100644
index c9b818164d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.until(new Temporal.ZonedDateTime(0n, "UTC"), { largestUnit: "month" });
-TemporalHelpers.assertDuration(result, 0, 5, 0, 7, 7, 9, 24, 999, 999, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/until/not-a-constructor.js
deleted file mode 100644
index 54bfbbe6bd..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: >
- Temporal.ZonedDateTime.prototype.until does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.until();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.until), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.until)");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/options-undefined.js
deleted file mode 100644
index a85c673b2b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/options-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(957270896_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(959949296_987_654_322n, "UTC");
-
-const explicit = earlier.until(later, undefined);
-assert.sameValue(explicit.years, 0, "default largest unit is hours");
-assert.sameValue(explicit.months, 0, "default largest unit is hours");
-assert.sameValue(explicit.weeks, 0, "default largest unit is hours");
-assert.sameValue(explicit.days, 0, "default largest unit is hours");
-assert.sameValue(explicit.hours, 744, "default largest unit is hours");
-assert.sameValue(explicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
-
-const implicit = earlier.until(later);
-assert.sameValue(implicit.years, 0, "default largest unit is hours");
-assert.sameValue(implicit.months, 0, "default largest unit is hours");
-assert.sameValue(implicit.weeks, 0, "default largest unit is hours");
-assert.sameValue(implicit.days, 0, "default largest unit is hours");
-assert.sameValue(implicit.hours, 744, "default largest unit is hours");
-assert.sameValue(implicit.nanoseconds, 1, "default smallest unit is nanoseconds and no rounding");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/until/prop-desc.js
deleted file mode 100644
index 04f2f59c23..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: The "until" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.until,
- "function",
- "`typeof ZonedDateTime.prototype.until` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "until", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/prototype/until/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 5a7001a01c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 2.e:
- e. Let _result_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
-const duration = datetime.until({ year: 2001, month: 9, day: 9, timeZone: "UTC", calendar });
-
-TemporalHelpers.assertDuration(duration, 0, 0, 0, 0, -1, -46, -40, -987, -654, -321);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-nan.js b/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-nan.js
deleted file mode 100644
index 88e18fa42d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-nan.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown when roundingIncrement option is NaN
-info: |
- sec-getoption step 8.b:
- b. If _value_ is *NaN*, throw a *RangeError* exception.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: NaN }));
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-non-integer.js b/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-non-integer.js
deleted file mode 100644
index 7302c42955..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-non-integer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Rounding for roundingIncrement option
-info: |
- sec-temporal-totemporalroundingincrement step 7:
- 7. Set _increment_ to floor(ℝ(_increment_)).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-const result = earlier.until(later, { roundingIncrement: 2.5 });
-TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, "roundingIncrement 2.5 floors to 2");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-out-of-range.js
deleted file mode 100644
index d47d2f76ec..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-out-of-range.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown when roundingIncrement option out of range
-info: |
- sec-temporal-totemporalroundingincrement step 6:
- 6. If _increment_ < 1 or _increment_ > _maximum_, throw a *RangeError* exception.
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_000_000_000_000_005n, "UTC");
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -Infinity }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: -1 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: 0 }));
-assert.throws(RangeError, () => earlier.until(later, { roundingIncrement: Infinity }));
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-undefined.js
deleted file mode 100644
index 6684ddef2a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-undefined.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Fallback value for roundingIncrement option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-
-const explicit = earlier.until(later, { roundingIncrement: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
-
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, "default roundingIncrement is 1");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-wrong-type.js
deleted file mode 100644
index f3794af571..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingincrement-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Type conversions for roundingIncrement option
-info: |
- sec-getoption step 8.a:
- a. Set _value_ to ? ToNumber(value).
- sec-temporal-totemporalroundingincrement step 5:
- 5. Let _increment_ be ? GetOption(_normalizedOptions_, *"roundingIncrement"*, « Number », *undefined*, 1).
- sec-temporal.zoneddatetime.prototype.until step 12:
- 12. Let _roundingIncrement_ be ? ToTemporalRoundingIncrement(_options_, _maximum_, *false*).
-includes: [temporalHelpers.js, compareArray.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_988_655_322n, "UTC");
-
-TemporalHelpers.checkRoundingIncrementOptionWrongType(
- (roundingIncrement) => earlier.until(later, { roundingIncrement }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 1, 1, 1, descr),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 1, 1, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/until/roundingmode-invalid-string.js
deleted file mode 100644
index 70d9827659..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown when roundingMode option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "microsecond", roundingMode: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/roundingmode-undefined.js
deleted file mode 100644
index b39c472982..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-undefined.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Fallback value for roundingMode option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-
-const explicit1 = earlier.until(later, { smallestUnit: "microsecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit1, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-const implicit1 = earlier.until(later, { smallestUnit: "microsecond" });
-TemporalHelpers.assertDuration(implicit1, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, "default roundingMode is trunc");
-
-const explicit2 = earlier.until(later, { smallestUnit: "millisecond", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit2, 0, 0, 0, 0, 25, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-const implicit2 = earlier.until(later, { smallestUnit: "millisecond" });
-TemporalHelpers.assertDuration(implicit2, 0, 0, 0, 0, 25, 1, 1, 123, 0, 0, "default roundingMode is trunc");
-
-const explicit3 = earlier.until(later, { smallestUnit: "second", roundingMode: undefined });
-TemporalHelpers.assertDuration(explicit3, 0, 0, 0, 0, 25, 1, 1, 0, 0, 0, "default roundingMode is trunc");
-const implicit3 = earlier.until(later, { smallestUnit: "second" });
-TemporalHelpers.assertDuration(implicit3, 0, 0, 0, 0, 25, 1, 1, 0, 0, 0, "default roundingMode is trunc");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/until/roundingmode-wrong-type.js
deleted file mode 100644
index 49865d78e2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/roundingmode-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Type conversions for roundingMode option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_123_987_500n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("roundingMode", "trunc",
- (roundingMode) => earlier.until(later, { smallestUnit: "microsecond", roundingMode }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 123, 987, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/until/smallestunit-invalid-string.js
deleted file mode 100644
index b5a2f80114..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-invalid-string.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown when smallestUnit option not one of the allowed string values
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-assert.throws(RangeError, () => earlier.until(later, { smallestUnit: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-plurals-accepted.js b/polyfill/test/ZonedDateTime/prototype/until/smallestunit-plurals-accepted.js
deleted file mode 100644
index 3d974f993f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-plurals-accepted.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Plural units are accepted as well for the smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const later = new Temporal.ZonedDateTime(1_086_403_661_988_655_322n, "UTC");
-const validUnits = [
- "year",
- "month",
- "week",
- "day",
- "hour",
- "minute",
- "second",
- "millisecond",
- "microsecond",
- "nanosecond",
-];
-TemporalHelpers.checkPluralUnitsAccepted((smallestUnit) => earlier.until(later, { smallestUnit }), validUnits);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-undefined.js b/polyfill/test/ZonedDateTime/prototype/until/smallestunit-undefined.js
deleted file mode 100644
index f1496a3253..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Fallback value for smallestUnit option
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-
-const explicit = earlier.until(later, { smallestUnit: undefined });
-TemporalHelpers.assertDuration(explicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
-const implicit = earlier.until(later, {});
-TemporalHelpers.assertDuration(implicit, 0, 0, 0, 0, 25, 1, 1, 987, 654, 321, "default smallestUnit is nanosecond");
diff --git a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/until/smallestunit-wrong-type.js
deleted file mode 100644
index 30e3d00451..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/smallestunit-wrong-type.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Type conversions for smallestUnit option
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const earlier = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const later = new Temporal.ZonedDateTime(1_000_090_061_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("smallestUnit", "microsecond",
- (smallestUnit) => earlier.until(later, { smallestUnit }),
- (result, descr) => TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 25, 1, 1, 987, 654, 0, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 5a7f0527ca..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(RangeError, () => datetime.until(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 81d031c548..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(RangeError, () => datetime.until(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index fd51309e23..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const other = new Temporal.ZonedDateTime(1_100_000_000_123_456_789n, timeZone);
- assert.throws(TypeError, () => datetime.until(other, { largestUnit: "days" }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/until/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/until/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index bed8dcd2be..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.prototype.until step 3:
- 3. Set _other_ to ? ToTemporalZonedDateTime(_other_).
- sec-temporal-totemporalzoneddatetime step 7:
- 7. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_result_.[[Year]], [...], _result_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-// Not called on the instance's time zone
-
-const expected1 = [];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.until({ year: 2005, month: 6, day: 2, timeZone: "UTC" });
-}, expected1);
-
-// Called on the argument's time zone
-
-const expected2 = [
- "2005-06-02T00:00:00",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- datetime.until({ year: 2005, month: 6, day: 2, timeZone });
-}, expected2);
diff --git a/polyfill/test/ZonedDateTime/prototype/until/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/prototype/until/timezone-string-datetime.js
deleted file mode 100644
index 6116921900..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/timezone-string-datetime.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-let expectedTimeZone = "UTC";
-const instance1 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance1.until({ year: 2020, month: 5, day: 2, timeZone }), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance1.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } }), "bare date-time string is not a time zone");
-
-// The following are all valid strings so should not throw. They should produce
-// expectedTimeZone, so additionally the operation will not throw due to the
-// time zones being different on the receiver and the argument.
-
-timeZone = "2021-08-19T17:30Z";
-instance1.until({ year: 2020, month: 5, day: 2, timeZone });
-instance1.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-expectedTimeZone = "-07:00";
-const instance2 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-08-19T17:30-07:00";
-instance2.until({ year: 2020, month: 5, day: 2, timeZone });
-instance2.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-expectedTimeZone = "America/Vancouver";
-const instance3 = new Temporal.ZonedDateTime(0n, expectedTimeZone);
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-instance3.until({ year: 2020, month: 5, day: 2, timeZone });
-instance3.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-instance3.until({ year: 2020, month: 5, day: 2, timeZone });
-instance3.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-instance3.until({ year: 2020, month: 5, day: 2, timeZone });
-instance3.until({ year: 2020, month: 5, day: 2, timeZone: { timeZone } });
diff --git a/polyfill/test/ZonedDateTime/prototype/until/zoneddatetime-string.js b/polyfill/test/ZonedDateTime/prototype/until/zoneddatetime-string.js
deleted file mode 100644
index 1b4b5cc338..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/until/zoneddatetime-string.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.until
-description: Conversion of ISO date-time strings to Temporal.ZonedDateTime instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(0n, "UTC");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.until(str), "bare date-time string is not a ZonedDateTime");
-str = "1970-01-01T00:00Z";
-assert.throws(RangeError, () => instance.until(str), "date-time + Z is not a ZonedDateTime");
-str = "1970-01-01T00:00+01:00";
-assert.throws(RangeError, () => instance.until(str), "date-time + offset is not a ZonedDateTime");
-
-str = "1970-01-01T00:00[Europe/Berlin]";
-const result1 = instance.until(str);
-TemporalHelpers.assertDuration(result1, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, "date-time + IANA annotation preserves wall time in the time zone");
-
-str = "1970-01-01T00:00Z[Europe/Berlin]";
-const result2 = instance.until(str);
-TemporalHelpers.assertDuration(result2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation preserves exact time in the time zone");
-
-str = "1970-01-01T00:00+01:00[Europe/Berlin]";
-const result3 = instance.until(str);
-TemporalHelpers.assertDuration(result3, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation ensures both exact and wall time match");
-
-str = "1970-01-01T00:00-04:15[Europe/Berlin]";
-assert.throws(RangeError, () => instance.until(str), "date-time + offset + IANA annotation throws if wall time and exact time mismatch");
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/branding.js b/polyfill/test/ZonedDateTime/prototype/valueOf/branding.js
deleted file mode 100644
index 910dca8913..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const valueOf = Temporal.ZonedDateTime.prototype.valueOf;
-
-assert.sameValue(typeof valueOf, "function");
-
-assert.throws(TypeError, () => valueOf.call(undefined), "undefined");
-assert.throws(TypeError, () => valueOf.call(null), "null");
-assert.throws(TypeError, () => valueOf.call(true), "true");
-assert.throws(TypeError, () => valueOf.call(""), "empty string");
-assert.throws(TypeError, () => valueOf.call(Symbol()), "symbol");
-assert.throws(TypeError, () => valueOf.call(1), "1");
-assert.throws(TypeError, () => valueOf.call({}), "plain object");
-assert.throws(TypeError, () => valueOf.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => valueOf.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/builtin.js b/polyfill/test/ZonedDateTime/prototype/valueOf/builtin.js
deleted file mode 100644
index 136675925f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: >
- Tests that Temporal.ZonedDateTime.prototype.valueOf
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.valueOf),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.valueOf),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.valueOf),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.valueOf.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/length.js b/polyfill/test/ZonedDateTime/prototype/valueOf/length.js
deleted file mode 100644
index 229be81251..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: Temporal.ZonedDateTime.prototype.valueOf.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.valueOf, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/name.js b/polyfill/test/ZonedDateTime/prototype/valueOf/name.js
deleted file mode 100644
index 094dd08288..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: Temporal.ZonedDateTime.prototype.valueOf.name is "valueOf".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.valueOf, "name", {
- value: "valueOf",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/valueOf/not-a-constructor.js
deleted file mode 100644
index 47ca09e79e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: >
- Temporal.ZonedDateTime.prototype.valueOf does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.valueOf();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.valueOf), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.valueOf)");
diff --git a/polyfill/test/ZonedDateTime/prototype/valueOf/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/valueOf/prop-desc.js
deleted file mode 100644
index 27a3a0851b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/valueOf/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.valueof
-description: The "valueOf" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.valueOf,
- "function",
- "`typeof ZonedDateTime.prototype.valueOf` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "valueOf", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/weekOfYear/branding.js b/polyfill/test/ZonedDateTime/prototype/weekOfYear/branding.js
deleted file mode 100644
index 3d6377f855..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/weekOfYear/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const weekOfYear = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "weekOfYear").get;
-
-assert.sameValue(typeof weekOfYear, "function");
-
-assert.throws(TypeError, () => weekOfYear.call(undefined), "undefined");
-assert.throws(TypeError, () => weekOfYear.call(null), "null");
-assert.throws(TypeError, () => weekOfYear.call(true), "true");
-assert.throws(TypeError, () => weekOfYear.call(""), "empty string");
-assert.throws(TypeError, () => weekOfYear.call(Symbol()), "symbol");
-assert.throws(TypeError, () => weekOfYear.call(1), "1");
-assert.throws(TypeError, () => weekOfYear.call({}), "plain object");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => weekOfYear.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/weekOfYear/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/weekOfYear/prop-desc.js
deleted file mode 100644
index a018737591..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/weekOfYear/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
-description: The "weekOfYear" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "weekOfYear");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index da2d1a9c02..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.weekOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index ceb935001f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.weekOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index cef077319e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/weekOfYear/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.weekOfYear);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/with/balance-negative-time-units.js
deleted file mode 100644
index 7903a25e68..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/balance-negative-time-units.js
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Negative time fields are balanced upwards
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-addtime step 8:
- 8. Return ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-adddatetime step 1:
- 1. Let _timeResult_ be ? AddTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_, _hours_, _minutes_, _seconds_, _milliseconds_, _microseconds_, _nanoseconds_).
- sec-temporal-builtintimezonegetinstantfor step 13.a:
- a. Let _earlier_ be ? AddDateTime(_dateTime_.[[ISOYear]], _dateTime_.[[ISOMonth]], _dateTime_.[[ISODay]], _dateTime_.[[ISOHour]], _dateTime_.[[ISOMinute]], _dateTime_.[[ISOSecond]], _dateTime_.[[ISOMillisecond]], _dateTime_.[[ISOMicrosecond]], _dateTime_.[[ISONanosecond]], 0, 0, 0, 0, 0, 0, 0, 0, 0, −_nanoseconds_, *"constrain"*).
- sec-temporal-interpretisodatetimeoffset steps 4–10:
- 4. If _offsetNanoseconds_ is *null*, or _offset_ is *"ignore"*, then
- a. Let _instant_ be ? BuiltinTimeZoneGetInstantFor(_timeZone_, _dateTime_, _disambiguation_).
- ...
- ...
- 6. Assert: _offset_ is *"prefer"* or *"reject"*.
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- ...
- 9. If _offset_ is *"reject"*, throw a *RangeError* exception.
- 10. Let _instant_ be ? DisambiguatePossibleInstants(_possibleInstants_, _timeZone_, _dateTime_, _disambiguation_).
- sec-temporal.zoneddatetime.prototype.with step 26:
- 26. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_dateTimeResult_.[[Year]], _dateTimeResult_.[[Month]], _dateTimeResult_.[[Day]], _dateTimeResult_.[[Hour]], _dateTimeResult_.[[Minute]], _dateTimeResult_.[[Second]], _dateTimeResult_.[[Millisecond]], _dateTimeResult_.[[Microsecond]], _dateTimeResult_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const shiftInstant = new Temporal.Instant(3661_001_001_001n);
-const tz1 = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-const datetime1 = new Temporal.ZonedDateTime(3661_001_001_000n, tz1);
-
-// This code path is encountered if offset is `ignore` or `prefer`,
-// disambiguation is `earlier` and the shift is a spring-forward change
-datetime1.with({ nanosecond: 1 }, { offset: "ignore", disambiguation: "earlier" });
-
-const expected = [
- "1970-01-01T01:01:01.001001001",
- "1970-01-01T01:01:01.001000999",
-];
-assert.compareArray(tz1.getPossibleInstantsForCalledWith, expected);
-
-const tz2 = TemporalHelpers.oneShiftTimeZone(shiftInstant, 2);
-const datetime2 = new Temporal.ZonedDateTime(3661_001_001_000n, tz2);
-
-datetime2.with({ nanosecond: 1 }, { offset: "prefer", disambiguation: "earlier" });
-
-assert.compareArray(tz2.getPossibleInstantsForCalledWith, expected);
diff --git a/polyfill/test/ZonedDateTime/prototype/with/branding.js b/polyfill/test/ZonedDateTime/prototype/with/branding.js
deleted file mode 100644
index 2d9fa03c67..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const with_ = Temporal.ZonedDateTime.prototype.with;
-
-assert.sameValue(typeof with_, "function");
-
-assert.throws(TypeError, () => with_.call(undefined), "undefined");
-assert.throws(TypeError, () => with_.call(null), "null");
-assert.throws(TypeError, () => with_.call(true), "true");
-assert.throws(TypeError, () => with_.call(""), "empty string");
-assert.throws(TypeError, () => with_.call(Symbol()), "symbol");
-assert.throws(TypeError, () => with_.call(1), "1");
-assert.throws(TypeError, () => with_.call({}), "plain object");
-assert.throws(TypeError, () => with_.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => with_.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/builtin.js b/polyfill/test/ZonedDateTime/prototype/with/builtin.js
deleted file mode 100644
index 2b11cd1eec..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: >
- Tests that Temporal.ZonedDateTime.prototype.with
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.with),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.with),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.with),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.with.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/with/calendar-fields-iterable.js
deleted file mode 100644
index 326a7b8d01..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/calendar-fields-iterable.js
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.with step 9:
- 9. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"hour"*, *"microsecond"*, *"millisecond"*, *"minute"*, *"month"*, *"monthCode"*, *"nanosecond"*, *"second"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "hour",
- "microsecond",
- "millisecond",
- "minute",
- "month",
- "monthCode",
- "nanosecond",
- "second",
- "year",
-];
-
-const calendar = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-datetime.with({ year: 2005 });
-
-assert.sameValue(calendar.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/calendar-merge-fields-returns-primitive.js b/polyfill/test/ZonedDateTime/prototype/with/calendar-merge-fields-returns-primitive.js
deleted file mode 100644
index c6c2879ea3..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/calendar-merge-fields-returns-primitive.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: >
- with() should throw a TypeError if mergeFields() returns a primitive,
- without passing the value on to any other calendar methods
-includes: [compareArray.js, temporalHelpers.js]
-features: [BigInt, Symbol, Temporal]
----*/
-
-[undefined, null, true, 3.14159, "bad value", Symbol("no"), 7n].forEach((primitive) => {
- const calendar = TemporalHelpers.calendarMergeFieldsReturnsPrimitive(primitive);
- const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
- assert.throws(TypeError, () => instance.with({ year: 2005 }), "bad return from mergeFields() throws");
- assert.sameValue(calendar.dateFromFieldsCallCount, 0, "dateFromFields() never called");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/copies-merge-fields-object.js b/polyfill/test/ZonedDateTime/prototype/with/copies-merge-fields-object.js
deleted file mode 100644
index b62f3f98b8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/copies-merge-fields-object.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: The object returned from mergeFields() is copied before being passed to dateFromFields().
-info: |
- sec-temporal.plaindatetime.prototype.with steps 18–19 and 23:
- 18. Set _fields_ to ? CalendarMergeFields(_calendar_, _fields_, _partialDate_).
- 19. Set _fields_ to ? PrepareTemporalFields(_fields_, _fieldNames_, « *"timeZone"* »).
- 23. Let _dateTimeResult_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields step 2:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "get day",
- "get day.valueOf",
- "call day.valueOf",
- "get hour",
- "get hour.valueOf",
- "call hour.valueOf",
- "get microsecond",
- "get microsecond.valueOf",
- "call microsecond.valueOf",
- "get millisecond",
- "get millisecond.valueOf",
- "call millisecond.valueOf",
- "get minute",
- "get minute.valueOf",
- "call minute.valueOf",
- "get month",
- "get month.valueOf",
- "call month.valueOf",
- "get monthCode",
- "get monthCode.toString",
- "call monthCode.toString",
- "get nanosecond",
- "get nanosecond.valueOf",
- "call nanosecond.valueOf",
- "get second",
- "get second.valueOf",
- "call second.valueOf",
- "get year",
- "get year.valueOf",
- "call year.valueOf",
- "get offset",
- "get offset.toString",
- "call offset.toString",
- "get timeZone",
-];
-
-const calendar = TemporalHelpers.calendarMergeFieldsGetters();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-datetime.with({ year: 2022 });
-
-assert.compareArray(calendar.mergeFieldsReturnOperations, expected, "getters called on mergeFields return");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/with/disambiguation-invalid-string.js
deleted file mode 100644
index 06d6bd1fa0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.with
-description: RangeError thrown when disambiguation option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.zoneddatetime.protoype.with step 14:
- 14. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => datetime.with({ hour: 2 }, { disambiguation: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-undefined.js b/polyfill/test/ZonedDateTime/prototype/with/disambiguation-undefined.js
deleted file mode 100644
index 028c38dbf5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-undefined.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Fallback value for disambiguation option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.zoneddatetime.protoype.with step 14:
- 14. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const timeZone = TemporalHelpers.springForwardFallBackTimeZone();
-const springForwardDatetime = new Temporal.ZonedDateTime(954702001_000_000_000n, timeZone);
-const fallBackDatetime = new Temporal.ZonedDateTime(972849601_000_000_000n, timeZone);
-const offset = "ignore";
-
-[
- [springForwardDatetime, { hour: 2, minute: 30 }, 954671401_000_000_000n],
- [fallBackDatetime, { hour: 1, minute: 30 }, 972808201_000_000_000n],
-].forEach(([datetime, fields, expected]) => {
- const explicit = datetime.with(fields, { offset, disambiguation: undefined });
- assert.sameValue(explicit.epochNanoseconds, expected, "default disambiguation is compatible");
- const implicit = datetime.with(fields, { offset });
- assert.sameValue(implicit.epochNanoseconds, expected, "default disambiguation is compatible");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/with/disambiguation-wrong-type.js
deleted file mode 100644
index d949dd8204..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/disambiguation-wrong-type.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Type conversions for disambiguation option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaldisambiguation step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"disambiguation"*, « String », « *"compatible"*, *"earlier"*, *"later"*, *"reject"* », *"compatible"*).
- sec-temporal.zoneddatetime.protoype.with step 14:
- 14. Let _disambiguation_ be ? ToTemporalDisambiguation(_options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("disambiguation", "compatible",
- (disambiguation) => datetime.with({ hour: 2 }, { disambiguation }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_003_600_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/with/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/with/infinity-throws-rangeerror.js
deleted file mode 100644
index 7619bfb0af..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.with
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((prop) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.with({ [prop]: inf }, { overflow }), `${prop} property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.with({ [prop]: obj }, { overflow }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
- });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/length.js b/polyfill/test/ZonedDateTime/prototype/with/length.js
deleted file mode 100644
index fb7eae0f8a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Temporal.ZonedDateTime.prototype.with.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.with, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/name.js b/polyfill/test/ZonedDateTime/prototype/with/name.js
deleted file mode 100644
index 5ba3bbed23..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Temporal.ZonedDateTime.prototype.with.name is "with".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.with, "name", {
- value: "with",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/with/not-a-constructor.js
deleted file mode 100644
index 33ac8f4ca7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: >
- Temporal.ZonedDateTime.prototype.with does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.with();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.with), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.with)");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/offset-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/with/offset-invalid-string.js
deleted file mode 100644
index 2b870ec6ee..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/offset-invalid-string.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.protoype.with
-description: RangeError thrown when offset option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal.zoneddatetime.protoype.with step 15:
- 15. Let _offset_ be ? ToTemporalOffset(_options_, *"prefer"*).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => datetime.with({ hour: 2 }, { offset: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/with/offset-undefined.js b/polyfill/test/ZonedDateTime/prototype/with/offset-undefined.js
deleted file mode 100644
index a4ca0f75cf..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/offset-undefined.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Fallback value for offset option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal.zoneddatetime.protoype.with step 15:
- 15. Let _offset_ be ? ToTemporalOffset(_options_, *"prefer"*).
-features: [Temporal]
----*/
-
-const timeZone = new Temporal.TimeZone("America/St_Johns");
-
-const datetime = new Temporal.ZonedDateTime(1572757201_000_000_000n, timeZone);
-const explicit = datetime.with({ minute: 31 }, { offset: undefined });
-assert.sameValue(explicit.epochNanoseconds, 1572757261_000_000_000n, "default offset is prefer");
-const implicit = datetime.with({ minute: 31 }, {});
-assert.sameValue(implicit.epochNanoseconds, 1572757261_000_000_000n, "default offset is prefer");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/offset-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/with/offset-wrong-type.js
deleted file mode 100644
index 2b3a527d55..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/offset-wrong-type.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Type conversions for offset option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloffset step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"offset"*, « String », « *"prefer"*, *"use"*, *"ignore"*, *"reject"* », _fallback_).
- sec-temporal.zoneddatetime.protoype.with step 15:
- 15. Let _offset_ be ? ToTemporalOffset(_options_, *"prefer"*).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-TemporalHelpers.checkStringOptionWrongType("offset", "prefer",
- (offset) => datetime.with({ hour: 2 }, { offset }),
- (result, descr) => assert.sameValue(result.epochNanoseconds, 1_000_003_600_987_654_321n, descr),
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/with/options-undefined.js b/polyfill/test/ZonedDateTime/prototype/with/options-undefined.js
deleted file mode 100644
index 63d6f06867..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/options-undefined.js
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Verify that undefined options are handled correctly.
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(949494896_987_654_321n, "UTC");
-const fields = { day: 31 };
-
-const explicit = datetime.with(fields, undefined);
-assert.sameValue(explicit.month, 2, "default overflow is constrain");
-assert.sameValue(explicit.day, 29, "default overflow is constrain");
-
-const implicit = datetime.with(fields);
-assert.sameValue(implicit.month, 2, "default overflow is constrain");
-assert.sameValue(implicit.day, 29, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/overflow-invalid-string.js b/polyfill/test/ZonedDateTime/prototype/with/overflow-invalid-string.js
deleted file mode 100644
index 96d5ab3799..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/overflow-invalid-string.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: RangeError thrown when overflow option not one of the allowed string values
-info: |
- sec-getoption step 10:
- 10. If _values_ is not *undefined* and _values_ does not contain an element equal to _value_, throw a *RangeError* exception.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.prototype.with step 24:
- 24. Let _dateTimeResult_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => datetime.with({ minute: 45 }, { overflow: "other string" }));
diff --git a/polyfill/test/ZonedDateTime/prototype/with/overflow-undefined.js b/polyfill/test/ZonedDateTime/prototype/with/overflow-undefined.js
deleted file mode 100644
index b3c630c537..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/overflow-undefined.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Fallback value for overflow option
-info: |
- sec-getoption step 3:
- 3. If _value_ is *undefined*, return _fallback_.
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.prototype.with step 24:
- 24. Let _dateTimeResult_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-const explicit = datetime.with({ second: 67 }, { overflow: undefined });
-assert.sameValue(explicit.epochNanoseconds, 1_000_000_019_987_654_321n, "default overflow is constrain");
-const implicit = datetime.with({ second: 67 }, {});
-assert.sameValue(implicit.epochNanoseconds, 1_000_000_019_987_654_321n, "default overflow is constrain");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/overflow-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/with/overflow-wrong-type.js
deleted file mode 100644
index 77f3c9c656..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/overflow-wrong-type.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.with
-description: Type conversions for overflow option
-info: |
- sec-getoption step 9.a:
- a. Set _value_ to ? ToString(_value_).
- sec-temporal-totemporaloverflow step 1:
- 1. Return ? GetOption(_normalizedOptions_, *"overflow"*, « String », « *"constrain"*, *"reject"* », *"constrain"*).
- sec-temporal-interprettemporaldatetimefields steps 2–3:
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
- 3. Let _overflow_ be ? ToTemporalOverflow(_options_).
- sec-temporal.zoneddatetime.prototype.with step 24:
- 24. Let _dateTimeResult_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-
-// See TemporalHelpers.checkStringOptionWrongType(); this code path has
-// different expectations for observable calls
-
-assert.throws(RangeError, () => datetime.with({ second: 41 }, { overflow: null }), "null");
-assert.throws(RangeError, () => datetime.with({ second: 41 }, { overflow: true }), "true");
-assert.throws(RangeError, () => datetime.with({ second: 41 }, { overflow: false }), "false");
-assert.throws(TypeError, () => datetime.with({ second: 41 }, { overflow: Symbol() }), "symbol");
-assert.throws(RangeError, () => datetime.with({ second: 41 }, { overflow: 2n }), "bigint");
-assert.throws(RangeError, () => datetime.with({ second: 41 }, { overflow: {} }), "plain object");
-
-// toString property is read once by Calendar.dateFromFields() in the builtin
-// calendars, to get the option value for the date part, and then once again
-// internally to get the option value for the time part.
-const expected = [
- "get overflow.toString",
- "call overflow.toString",
- "get overflow.toString",
- "call overflow.toString",
-];
-const actual = [];
-const observer = TemporalHelpers.toPrimitiveObserver(actual, "constrain", "overflow");
-const result = datetime.with({ second: 41 }, { overflow: observer });
-assert.sameValue(result.epochNanoseconds, 1_000_000_001_987_654_321n, "object with toString");
-assert.compareArray(actual, expected, "order of operations");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/with/prop-desc.js
deleted file mode 100644
index 0774b88ad4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: The "with" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.with,
- "function",
- "`typeof ZonedDateTime.prototype.with` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "with", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/read-time-fields-before-datefromfields.js b/polyfill/test/ZonedDateTime/prototype/with/read-time-fields-before-datefromfields.js
deleted file mode 100644
index 9f20ae7fa1..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/read-time-fields-before-datefromfields.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: The time fields are read from the object before being passed to dateFromFields().
-info: |
- sec-temporal.zoneddatetime.prototype.with step 23:
- 23. Let _dateTimeResult_ be ? InterpretTemporalDateTimeFields(_calendar_, _fields_, _options_).
- sec-temporal-interprettemporaldatetimefields steps 1–2:
- 1. Let _timeResult_ be ? ToTemporalTimeRecord(_fields_).
- 2. Let _temporalDate_ be ? DateFromFields(_calendar_, _fields_, _options_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarMakeInfinityTime();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC", calendar);
-const newDatetime = datetime.with({ year: 2022 });
-
-assert.sameValue(newDatetime.hour, 1, "hour value");
-assert.sameValue(newDatetime.minute, 46, "minute value");
-assert.sameValue(newDatetime.second, 40, "second value");
-assert.sameValue(newDatetime.millisecond, 987, "millisecond value");
-assert.sameValue(newDatetime.microsecond, 654, "microsecond value");
-assert.sameValue(newDatetime.nanosecond, 321, "nanosecond value");
diff --git a/polyfill/test/ZonedDateTime/prototype/with/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/with/subclassing-ignored.js
deleted file mode 100644
index 5fb3f6f151..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "with",
- [{ year: 2000 }],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 946684800_000_000_010n, "epochNanoseconds result");
- assert.sameValue(result.year, 2000, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 10, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 404a64aed9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.with({ day: 27 }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 2689ffea0f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.with({ day: 27 }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 3dfdaf445b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.with({ day: 27 }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/with/timezone-getpossibleinstantsfor-iterable.js b/polyfill/test/ZonedDateTime/prototype/with/timezone-getpossibleinstantsfor-iterable.js
deleted file mode 100644
index 9c3e6900bc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/with/timezone-getpossibleinstantsfor-iterable.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.with
-description: An iterable returned from timeZone.getPossibleInstantsFor is consumed after each call
-info: |
- sec-temporal.zoneddatetime.prototype.with step 24:
- 24. Let _epochNanoseconds_ be ? InterpretISODateTimeOffset(_dateTimeResult_.[[Year]], [...], _dateTimeResult_.[[Nanosecond]], _offsetNanoseconds_, _timeZone_, _disambiguation_, _offset_).
- sec-temporal-interpretisodatetimeoffset step 7:
- 7. Let _possibleInstants_ be ? GetPossibleInstantsFor(_timeZone_, _dateTime_).
- sec-temporal-getpossibleinstantsfor step 2:
- 2. Let _list_ be ? IterableToList(_possibleInstants_).
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "2005-09-09T01:46:40",
-];
-
-TemporalHelpers.checkTimeZonePossibleInstantsIterable((timeZone) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, timeZone);
- datetime.with({ year: 2005 });
-}, expected);
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/branding.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/branding.js
deleted file mode 100644
index 4958c2884c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withCalendar = Temporal.ZonedDateTime.prototype.withCalendar;
-
-assert.sameValue(typeof withCalendar, "function");
-
-assert.throws(TypeError, () => withCalendar.call(undefined), "undefined");
-assert.throws(TypeError, () => withCalendar.call(null), "null");
-assert.throws(TypeError, () => withCalendar.call(true), "true");
-assert.throws(TypeError, () => withCalendar.call(""), "empty string");
-assert.throws(TypeError, () => withCalendar.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withCalendar.call(1), "1");
-assert.throws(TypeError, () => withCalendar.call({}), "plain object");
-assert.throws(TypeError, () => withCalendar.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withCalendar.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/builtin.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/builtin.js
deleted file mode 100644
index 63a75d030f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: >
- Tests that Temporal.ZonedDateTime.prototype.withCalendar
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.withCalendar),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.withCalendar),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.withCalendar),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.withCalendar.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js
deleted file mode 100644
index c62b8ade3d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/calendar-temporal-object.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.withcalendar step 3:
- 3. Let _calendar_ be ? ToTemporalCalendar(_calendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const result = zonedDateTime.withCalendar(temporalObject);
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/length.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/length.js
deleted file mode 100644
index 296328461a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: Temporal.ZonedDateTime.prototype.withCalendar.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withCalendar, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/missing-argument.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/missing-argument.js
deleted file mode 100644
index 4ae04818fb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/missing-argument.js
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: RangeError thrown when calendar argument not given
-features: [Temporal]
----*/
-
-const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
-assert.throws(RangeError, () => zonedDateTime.withCalendar(), "missing argument");
-assert.throws(RangeError, () => zonedDateTime.withCalendar(undefined), "undefined argument");
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/name.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/name.js
deleted file mode 100644
index b8b16f082c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: Temporal.ZonedDateTime.prototype.withCalendar.name is "withCalendar".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withCalendar, "name", {
- value: "withCalendar",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/not-a-constructor.js
deleted file mode 100644
index 15a968e90e..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: >
- Temporal.ZonedDateTime.prototype.withCalendar does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.withCalendar();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.withCalendar), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.withCalendar)");
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/prop-desc.js
deleted file mode 100644
index 65fc4c72a0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: The "withCalendar" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.withCalendar,
- "function",
- "`typeof ZonedDateTime.prototype.withCalendar` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "withCalendar", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withCalendar/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/withCalendar/subclassing-ignored.js
deleted file mode 100644
index f044a122de..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withCalendar/subclassing-ignored.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withcalendar
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const customCalendar = {
- year() { return 1900; },
- month() { return 2; },
- day() { return 5; },
- toString() { return "custom-calendar"; },
-};
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "withCalendar",
- [customCalendar],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10n, "epochNanoseconds result");
- assert.sameValue(result.year, 1900, "year result");
- assert.sameValue(result.month, 2, "month result");
- assert.sameValue(result.day, 5, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 10, "nanosecond result");
- assert.sameValue(result.calendar, customCalendar, "calendar result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-plaindatetime.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-plaindatetime.js
deleted file mode 100644
index c9da210d06..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-plaindatetime.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.withplaindate
-description: Fast path for converting Temporal.PlainDateTime to Temporal.PlainDate by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.b:
- b. If _item_ has an [[InitializedTemporalDateTime]] internal slot, then
- i. Return ! CreateTemporalDate(_item_.[[ISOYear]], _item_.[[ISOMonth]], _item_.[[ISODay]], _item_.[[Calendar]]).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkPlainDateTimeConversionFastPath((datetime) => {
- const receiver = new Temporal.ZonedDateTime(1_000_000_000_123_456_789n, "UTC");
- const result = receiver.withPlainDate(datetime);
- assert.sameValue(result.year, 2000, "year result");
- assert.sameValue(result.month, 5, "month result");
- assert.sameValue(result.day, 2, "day result");
- assert.sameValue(result.hour, 1, "hour result");
- assert.sameValue(result.minute, 46, "minute result");
- assert.sameValue(result.second, 40, "second result");
- assert.sameValue(result.millisecond, 123, "millisecond result");
- assert.sameValue(result.microsecond, 456, "microsecond result");
- assert.sameValue(result.nanosecond, 789, "nanosecond result");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index d3d04181c9..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.withPlainDate(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 7ccdef857c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.withPlainDate(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 61187f599f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.withPlainDate(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/branding.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/branding.js
deleted file mode 100644
index 5d9df4cbfb..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withPlainDate = Temporal.ZonedDateTime.prototype.withPlainDate;
-
-assert.sameValue(typeof withPlainDate, "function");
-
-assert.throws(TypeError, () => withPlainDate.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainDate.call(null), "null");
-assert.throws(TypeError, () => withPlainDate.call(true), "true");
-assert.throws(TypeError, () => withPlainDate.call(""), "empty string");
-assert.throws(TypeError, () => withPlainDate.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainDate.call(1), "1");
-assert.throws(TypeError, () => withPlainDate.call({}), "plain object");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withPlainDate.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/builtin.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/builtin.js
deleted file mode 100644
index 2b93ea5fc4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: >
- Tests that Temporal.ZonedDateTime.prototype.withPlainDate
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.withPlainDate),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.withPlainDate),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.withPlainDate),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.withPlainDate.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 8b22fa81dc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.ZonedDateTime(82800_000_000_000n, timeZone, calendar);
-instance.withPlainDate(new Temporal.PlainDate(1970, 1, 1, calendar));
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-fields-iterable.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-fields-iterable.js
deleted file mode 100644
index b0e3906c3a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-fields-iterable.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Verify the result of calendar.fields() is treated correctly.
-info: |
- sec-temporal.zoneddatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _fieldNames_ be ? CalendarFields(_calendar_, « *"day"*, *"month"*, *"monthCode"*, *"year"* »).
- sec-temporal-calendarfields step 4:
- 4. Let _result_ be ? IterableToList(_fieldsArray_).
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const expected = [
- "day",
- "month",
- "monthCode",
- "year",
-];
-
-const calendar1 = TemporalHelpers.calendarFieldsIterable();
-const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar1);
-const calendar2 = TemporalHelpers.calendarFieldsIterable();
-datetime.withPlainDate({ year: 2001, month: 6, day: 4, calendar: calendar2 });
-
-assert.sameValue(calendar1.fieldsCallCount, 0, "fields() method not called");
-assert.sameValue(calendar2.fieldsCallCount, 1, "fields() method called once");
-assert.compareArray(calendar2.fieldsCalledWith[0], expected, "fields() method called with correct args");
-assert(calendar2.iteratorExhausted[0], "iterated through the whole iterable");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-temporal-object.js
deleted file mode 100644
index a7423b74a8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/calendar-temporal-object.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.zoneddatetime.prototype.withplaindate step 3:
- 3. Let _plainDate_ be ? ToTemporalDate(_plainDateLike_).
- sec-temporal-totemporaldate step 2.c:
- c. Let _calendar_ be ? GetTemporalCalendarWithISODefault(_item_).
- sec-temporal-gettemporalcalendarwithisodefault step 2:
- 2. Return ? ToTemporalCalendarWithISODefault(_calendar_).
- sec-temporal-totemporalcalendarwithisodefault step 2:
- 3. Return ? ToTemporalCalendar(_temporalCalendarLike_).
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject, calendar) => {
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
- // the PlainDate's calendar will override the ZonedDateTime's ISO calendar
- const result = datetime.withPlainDate({ year: 2001, month: 6, day: 4, calendar: temporalObject });
- assert.sameValue(result.calendar, calendar, "Temporal object coerced to calendar");
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index cbed462de7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC");
-const base = { year: 2000, month: 5, day: 2 };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["year", "month", "day"].forEach((prop) => {
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, [prop]: inf }), `${prop} property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, prop);
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, [prop]: obj }));
- assert.compareArray(calls, [`get ${prop}.valueOf`, `call ${prop}.valueOf`], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/length.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/length.js
deleted file mode 100644
index f307fcb1a6..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Temporal.ZonedDateTime.prototype.withPlainDate.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withPlainDate, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/name.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/name.js
deleted file mode 100644
index 1b36a0dead..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Temporal.ZonedDateTime.prototype.withPlainDate.name is "withPlainDate".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withPlainDate, "name", {
- value: "withPlainDate",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/negative-epochnanoseconds.js
deleted file mode 100644
index 46aee7faab..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/negative-epochnanoseconds.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const result = datetime.withPlainDate(new Temporal.PlainDate(2000, 5, 2));
-assert.sameValue(result.epochNanoseconds, 957286235_000_000_001n);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/not-a-constructor.js
deleted file mode 100644
index b68389c619..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: >
- Temporal.ZonedDateTime.prototype.withPlainDate does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.withPlainDate();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.withPlainDate), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.withPlainDate)");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/prop-desc.js
deleted file mode 100644
index 9c703be6d4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: The "withPlainDate" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.withPlainDate,
- "function",
- "`typeof ZonedDateTime.prototype.withPlainDate` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "withPlainDate", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/subclassing-ignored.js
deleted file mode 100644
index cb6101cc64..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "withPlainDate",
- ["2000-01-01"],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 946684800_000_000_010n, "epochNanoseconds result");
- assert.sameValue(result.year, 2000, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 0, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 10, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ce1342ae46..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => datetime.withPlainDate(date));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 9a6f4de3da..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(RangeError, () => datetime.withPlainDate(date));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 5aad76dbf7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainDate/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const date = new Temporal.PlainDate(2000, 5, 2);
- assert.throws(TypeError, () => datetime.withPlainDate(date));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js
deleted file mode 100644
index ab2372b537..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-balance-negative-time-units.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Negative time fields are balanced upwards if the argument is given as ZonedDateTime
-info: |
- sec-temporal-balancetime steps 3–14:
- 3. Set _microsecond_ to _microsecond_ + floor(_nanosecond_ / 1000).
- 4. Set _nanosecond_ to _nanosecond_ modulo 1000.
- 5. Set _millisecond_ to _millisecond_ + floor(_microsecond_ / 1000).
- 6. Set _microsecond_ to _microsecond_ modulo 1000.
- 7. Set _second_ to _second_ + floor(_millisecond_ / 1000).
- 8. Set _millisecond_ to _millisecond_ modulo 1000.
- 9. Set _minute_ to _minute_ + floor(_second_ / 60).
- 10. Set _second_ to _second_ modulo 60.
- 11. Set _hour_ to _hour_ + floor(_minute_ / 60).
- 12. Set _minute_ to _minute_ modulo 60.
- 13. Let _days_ be floor(_hour_ / 24).
- 14. Set _hour_ to _hour_ modulo 24.
- sec-temporal-balanceisodatetime step 1:
- 1. Let _balancedTime_ be ? BalanceTime(_hour_, _minute_, _second_, _millisecond_, _microsecond_, _nanosecond_).
- sec-temporal-builtintimezonegetplaindatetimefor step 3:
- 3. Set _result_ to ? BalanceISODateTime(_result_.[[Year]], _result_.[[Month]], _result_.[[Day]], _result_.[[Hour]], _result_.[[Minute]], _result_.[[Second]], _result_.[[Millisecond]], _result_.[[Microsecond]], _result_.[[Nanosecond]] + _offsetNanoseconds_).
- sec-temporal-totemporaltime step 3.b:
- b. If _item_ has an [[InitializedTemporalZonedDateTime]] internal slot, then
- ...
- ii. 1. Set _plainDateTime_ to ? BuiltinTimeZoneGetPlainDateTimeFor(_item_.[[TimeZone]], _instant_, _item_.[[Calendar]]).
- sec-temporal.zoneddatetime.prototype.withplaintime step 4.a:
- a. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_).
-features: [Temporal]
----*/
-
-// This code path is encountered if the time zone offset is negative and its
-// absolute value in nanoseconds is greater than the nanosecond field of the
-// exact time's epoch parts
-const tz = new Temporal.TimeZone("-00:00:00.000000002");
-const datetime = new Temporal.ZonedDateTime(3661_001_001_001n, tz);
-
-const otherTimeZone = new Temporal.TimeZone("UTC"); // should not be used to convert datetime -> PlainTime
-const zdt = new Temporal.ZonedDateTime(86400_000_000_000n, otherTimeZone);
-const newzdt = zdt.withPlainTime(datetime);
-
-assert.sameValue(newzdt.microsecond, 0);
-assert.sameValue(newzdt.nanosecond, 999);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js
deleted file mode 100644
index 4a8952bc75..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-negative-epochnanoseconds.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: A pre-epoch value is handled correctly by the modulo operation in GetISOPartsFromEpoch
-info: |
- sec-temporal-getisopartsfromepoch step 1:
- 1. Let _remainderNs_ be the mathematical value whose sign is the sign of _epochNanoseconds_ and whose magnitude is abs(_epochNanoseconds_) modulo 106.
- sec-temporal-builtintimezonegetplaindatetimefor step 2:
- 2. Let _result_ be ! GetISOPartsFromEpoch(_instant_.[[Nanoseconds]]).
-features: [Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(-13849764_999_999_999n, "UTC");
-
-// This code path shows up anywhere we convert an exact time, before the Unix
-// epoch, with nonzero microseconds or nanoseconds, into a wall time.
-
-const instance = new Temporal.ZonedDateTime(0n, "UTC");
-const result = instance.withPlainTime(datetime);
-assert.sameValue(result.epochNanoseconds, 60635_000_000_001n);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 4606a4f4f0..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.withPlainTime(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 98ad066bb4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.withPlainTime(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index db12e43dec..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/argument-zoneddatetime-timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- const other = new Temporal.ZonedDateTime(1_100_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.withPlainTime(other));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/branding.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/branding.js
deleted file mode 100644
index 471e0f20d8..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withPlainTime = Temporal.ZonedDateTime.prototype.withPlainTime;
-
-assert.sameValue(typeof withPlainTime, "function");
-
-assert.throws(TypeError, () => withPlainTime.call(undefined), "undefined");
-assert.throws(TypeError, () => withPlainTime.call(null), "null");
-assert.throws(TypeError, () => withPlainTime.call(true), "true");
-assert.throws(TypeError, () => withPlainTime.call(""), "empty string");
-assert.throws(TypeError, () => withPlainTime.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withPlainTime.call(1), "1");
-assert.throws(TypeError, () => withPlainTime.call({}), "plain object");
-assert.throws(TypeError, () => withPlainTime.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withPlainTime.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/builtin.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/builtin.js
deleted file mode 100644
index 61576da0fa..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: >
- Tests that Temporal.ZonedDateTime.prototype.withPlainTime
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.withPlainTime),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.withPlainTime),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.withPlainTime),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.withPlainTime.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-dateadd-called-with-options-undefined.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-dateadd-called-with-options-undefined.js
deleted file mode 100644
index 387aeacb84..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-dateadd-called-with-options-undefined.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: >
- BuiltinTimeZoneGetInstantFor calls Calendar.dateAdd with undefined as the
- options value
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const calendar = TemporalHelpers.calendarDateAddUndefinedOptions();
-const timeZone = TemporalHelpers.oneShiftTimeZone(new Temporal.Instant(0n), 3600e9);
-const instance = new Temporal.ZonedDateTime(7200_000_000_000n, timeZone, calendar);
-instance.withPlainTime();
-assert.sameValue(calendar.dateAddCallCount, 1);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js
deleted file mode 100644
index dc5866225d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/calendar-temporal-object.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.withplaintime
-description: Fast path for converting other Temporal objects to Temporal.Calendar by reading internal slots
-info: |
- sec-temporal.plaindatetime.prototype.withplaintime step 4:
- 3. Let _plainTime_ be ? ToTemporalTime(_plainTimeLike_).
- sec-temporal-totemporaltime step 3.d:
- d. If _calendar_ is not *undefined*, then
- i. Set _calendar_ to ? ToTemporalCalendar(_calendar_).
- ii. If ? ToString(_calendar_) is not *"iso8601"*, then
- 1. Throw a *RangeError* exception.
- sec-temporal-totemporalcalendar step 1.a:
- a. If _temporalCalendarLike_ has an [[InitializedTemporalDate]], [[InitializedTemporalDateTime]], [[InitializedTemporalMonthDay]], [[InitializedTemporalYearMonth]], or [[InitializedTemporalZonedDateTime]] internal slot, then
- i. Return _temporalCalendarLike_.[[Calendar]].
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkToTemporalCalendarFastPath((temporalObject) => {
- const datetime = new Temporal.PlainDateTime(2000, 5, 3, 13, 3, 27, 123, 456, 789);
- assert.throws(RangeError, () => datetime.withPlainTime({ hour: 12, minute: 30, calendar: temporalObject }));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/length.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/length.js
deleted file mode 100644
index 09cc7b6fdc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Temporal.ZonedDateTime.prototype.withPlainTime.length is 0
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withPlainTime, "length", {
- value: 0,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/name.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/name.js
deleted file mode 100644
index 8a04cebfd5..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Temporal.ZonedDateTime.prototype.withPlainTime.name is "withPlainTime".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withPlainTime, "name", {
- value: "withPlainTime",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/not-a-constructor.js
deleted file mode 100644
index 4a65428457..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: >
- Temporal.ZonedDateTime.prototype.withPlainTime does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.withPlainTime();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.withPlainTime), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.withPlainTime)");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/prop-desc.js
deleted file mode 100644
index b81669d574..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: The "withPlainTime" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.withPlainTime,
- "function",
- "`typeof ZonedDateTime.prototype.withPlainTime` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "withPlainTime", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/subclassing-ignored.js
deleted file mode 100644
index c8526caa82..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "withPlainTime",
- ["05:43:21.123456789"],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 20601_123_456_789n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 5, "hour result");
- assert.sameValue(result.minute, 43, "minute result");
- assert.sameValue(result.second, 21, "second result");
- assert.sameValue(result.millisecond, 123, "millisecond result");
- assert.sameValue(result.microsecond, 456, "microsecond result");
- assert.sameValue(result.nanosecond, 789, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/time-undefined.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/time-undefined.js
deleted file mode 100644
index a8482e3804..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/time-undefined.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: The time is assumed to be midnight if not given
-features: [BigInt, Temporal]
----*/
-
-const datetime = new Temporal.ZonedDateTime(957270896_987_654_321n, "UTC");
-
-const explicit = datetime.withPlainTime(undefined);
-assert.sameValue(explicit.hour, 0, "default time is midnight");
-assert.sameValue(explicit.minute, 0, "default time is midnight");
-assert.sameValue(explicit.second, 0, "default time is midnight");
-assert.sameValue(explicit.millisecond, 0, "default time is midnight");
-assert.sameValue(explicit.microsecond, 0, "default time is midnight");
-assert.sameValue(explicit.nanosecond, 0, "default time is midnight");
-
-const implicit = datetime.withPlainTime();
-assert.sameValue(implicit.hour, 0, "default time is midnight");
-assert.sameValue(implicit.minute, 0, "default time is midnight");
-assert.sameValue(implicit.second, 0, "default time is midnight");
-assert.sameValue(implicit.millisecond, 0, "default time is midnight");
-assert.sameValue(implicit.microsecond, 0, "default time is midnight");
-assert.sameValue(implicit.nanosecond, 0, "default time is midnight");
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index 9c6016214d..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => datetime.withPlainTime(time));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index 09d5b9258c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(RangeError, () => datetime.withPlainTime(time));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index 175ca62a1c..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withPlainTime/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withplaintime
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- const time = new Temporal.PlainTime(12, 34, 56, 987, 654, 321);
- assert.throws(TypeError, () => datetime.withPlainTime(time));
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/branding.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/branding.js
deleted file mode 100644
index 15c0b3379f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const withTimeZone = Temporal.ZonedDateTime.prototype.withTimeZone;
-
-assert.sameValue(typeof withTimeZone, "function");
-
-assert.throws(TypeError, () => withTimeZone.call(undefined), "undefined");
-assert.throws(TypeError, () => withTimeZone.call(null), "null");
-assert.throws(TypeError, () => withTimeZone.call(true), "true");
-assert.throws(TypeError, () => withTimeZone.call(""), "empty string");
-assert.throws(TypeError, () => withTimeZone.call(Symbol()), "symbol");
-assert.throws(TypeError, () => withTimeZone.call(1), "1");
-assert.throws(TypeError, () => withTimeZone.call({}), "plain object");
-assert.throws(TypeError, () => withTimeZone.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => withTimeZone.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/builtin.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/builtin.js
deleted file mode 100644
index 5875c7b21b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/builtin.js
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: >
- Tests that Temporal.ZonedDateTime.prototype.withTimeZone
- meets the requirements for built-in objects defined by the
- introduction of chapter 17 of the ECMAScript Language Specification.
-info: |
- Built-in functions that are not constructors do not have a "prototype" property unless
- otherwise specified in the description of a particular function.
-
- Unless specified otherwise, a built-in object that is callable as a function is a built-in
- function object with the characteristics described in 10.3. Unless specified otherwise, the
- [[Extensible]] internal slot of a built-in object initially has the value true.
-
- Unless otherwise specified every built-in function and every built-in constructor has the
- Function prototype object [...] as the value of its [[Prototype]] internal slot.
-features: [Temporal]
----*/
-
-assert.sameValue(Object.isExtensible(Temporal.ZonedDateTime.prototype.withTimeZone),
- true, "Built-in objects must be extensible.");
-
-assert.sameValue(Object.prototype.toString.call(Temporal.ZonedDateTime.prototype.withTimeZone),
- "[object Function]", "Object.prototype.toString");
-
-assert.sameValue(Object.getPrototypeOf(Temporal.ZonedDateTime.prototype.withTimeZone),
- Function.prototype, "prototype");
-
-assert.sameValue(Temporal.ZonedDateTime.prototype.withTimeZone.hasOwnProperty("prototype"),
- false, "prototype property");
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/length.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/length.js
deleted file mode 100644
index d6d71b00ce..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/length.js
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: Temporal.ZonedDateTime.prototype.withTimeZone.length is 1
-info: |
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withTimeZone, "length", {
- value: 1,
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/name.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/name.js
deleted file mode 100644
index dd27d1edb4..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/name.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: Temporal.ZonedDateTime.prototype.withTimeZone.name is "withTimeZone".
-info: |
- 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.
-
- 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: [Temporal]
----*/
-
-verifyProperty(Temporal.ZonedDateTime.prototype.withTimeZone, "name", {
- value: "withTimeZone",
- writable: false,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/not-a-constructor.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/not-a-constructor.js
deleted file mode 100644
index 5493995f34..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/not-a-constructor.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: >
- Temporal.ZonedDateTime.prototype.withTimeZone does not implement [[Construct]], is not new-able
-info: |
- Built-in function objects that are not identified as constructors do not implement the
- [[Construct]] internal method unless otherwise specified in the description of a particular
- function.
-includes: [isConstructor.js]
-features: [Reflect.construct, Temporal]
----*/
-
-assert.throws(TypeError, () => {
- new Temporal.ZonedDateTime.prototype.withTimeZone();
-}, "Calling as constructor");
-
-assert.sameValue(isConstructor(Temporal.ZonedDateTime.prototype.withTimeZone), false,
- "isConstructor(Temporal.ZonedDateTime.prototype.withTimeZone)");
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/prop-desc.js
deleted file mode 100644
index 6e377ecd32..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/prop-desc.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: The "withTimeZone" property of Temporal.ZonedDateTime.prototype
-includes: [propertyHelper.js]
-features: [Temporal]
----*/
-
-assert.sameValue(
- typeof Temporal.ZonedDateTime.prototype.withTimeZone,
- "function",
- "`typeof ZonedDateTime.prototype.withTimeZone` is `function`"
-);
-
-verifyProperty(Temporal.ZonedDateTime.prototype, "withTimeZone", {
- writable: true,
- enumerable: false,
- configurable: true,
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/subclassing-ignored.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/subclassing-ignored.js
deleted file mode 100644
index c602257844..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/subclassing-ignored.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: Objects of a subclass are never created as return values.
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.checkSubclassingIgnored(
- Temporal.ZonedDateTime,
- [10n, "UTC"],
- "withTimeZone",
- ["+01:00"],
- (result) => {
- assert.sameValue(result.epochNanoseconds, 10n, "epochNanoseconds result");
- assert.sameValue(result.year, 1970, "year result");
- assert.sameValue(result.month, 1, "month result");
- assert.sameValue(result.day, 1, "day result");
- assert.sameValue(result.hour, 1, "hour result");
- assert.sameValue(result.minute, 0, "minute result");
- assert.sameValue(result.second, 0, "second result");
- assert.sameValue(result.millisecond, 0, "millisecond result");
- assert.sameValue(result.microsecond, 0, "microsecond result");
- assert.sameValue(result.nanosecond, 10, "nanosecond result");
- },
-);
diff --git a/polyfill/test/ZonedDateTime/prototype/withTimeZone/timezone-string-datetime.js b/polyfill/test/ZonedDateTime/prototype/withTimeZone/timezone-string-datetime.js
deleted file mode 100644
index 1130b6d5e7..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/withTimeZone/timezone-string-datetime.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.zoneddatetime.prototype.withtimezone
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(0n, "UTC");
-
-let timeZone = "2021-08-19T17:30";
-assert.throws(RangeError, () => instance.withTimeZone(timeZone), "bare date-time string is not a time zone");
-assert.throws(RangeError, () => instance.withTimeZone({ timeZone }), "bare date-time string is not a time zone");
-
-timeZone = "2021-08-19T17:30Z";
-const result1 = instance.withTimeZone(timeZone);
-assert.sameValue(result1.timeZone.id, "UTC", "date-time + Z is UTC time zone");
-const result2 = instance.withTimeZone({ timeZone });
-assert.sameValue(result2.timeZone.id, "UTC", "date-time + Z is UTC time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00";
-const result3 = instance.withTimeZone(timeZone);
-assert.sameValue(result3.timeZone.id, "-07:00", "date-time + offset is the offset time zone");
-const result4 = instance.withTimeZone({ timeZone });
-assert.sameValue(result4.timeZone.id, "-07:00", "date-time + offset is the offset time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30[America/Vancouver]";
-const result5 = instance.withTimeZone(timeZone);
-assert.sameValue(result5.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone");
-const result6 = instance.withTimeZone({ timeZone });
-assert.sameValue(result6.timeZone.id, "America/Vancouver", "date-time + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30Z[America/Vancouver]";
-const result7 = instance.withTimeZone(timeZone);
-assert.sameValue(result7.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone");
-const result8 = instance.withTimeZone({ timeZone });
-assert.sameValue(result8.timeZone.id, "America/Vancouver", "date-time + Z + IANA annotation is the IANA time zone (string in property bag)");
-
-timeZone = "2021-08-19T17:30-07:00[America/Vancouver]";
-const result9 = instance.withTimeZone(timeZone);
-assert.sameValue(result9.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone");
-const result10 = instance.withTimeZone({ timeZone });
-assert.sameValue(result10.timeZone.id, "America/Vancouver", "date-time + offset + IANA annotation is the IANA time zone (string in property bag)");
diff --git a/polyfill/test/ZonedDateTime/prototype/year/branding.js b/polyfill/test/ZonedDateTime/prototype/year/branding.js
deleted file mode 100644
index 2359e26b9a..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/branding.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: Throw a TypeError if the receiver is invalid
-features: [Symbol, Temporal]
----*/
-
-const year = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "year").get;
-
-assert.sameValue(typeof year, "function");
-
-assert.throws(TypeError, () => year.call(undefined), "undefined");
-assert.throws(TypeError, () => year.call(null), "null");
-assert.throws(TypeError, () => year.call(true), "true");
-assert.throws(TypeError, () => year.call(""), "empty string");
-assert.throws(TypeError, () => year.call(Symbol()), "symbol");
-assert.throws(TypeError, () => year.call(1), "1");
-assert.throws(TypeError, () => year.call({}), "plain object");
-assert.throws(TypeError, () => year.call(Temporal.ZonedDateTime), "Temporal.ZonedDateTime");
-assert.throws(TypeError, () => year.call(Temporal.ZonedDateTime.prototype), "Temporal.ZonedDateTime.prototype");
diff --git a/polyfill/test/ZonedDateTime/prototype/year/calendar-returns-infinity.js b/polyfill/test/ZonedDateTime/prototype/year/calendar-returns-infinity.js
deleted file mode 100644
index 2eb34813bc..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: Getter throws if the calendar returns ±∞ from its year method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- year() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.ZonedDateTime(0n, "UTC", pos);
-assert.throws(RangeError, () => instance1.year);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.ZonedDateTime(0n, "UTC", neg);
-assert.throws(RangeError, () => instance2.year);
diff --git a/polyfill/test/ZonedDateTime/prototype/year/prop-desc.js b/polyfill/test/ZonedDateTime/prototype/year/prop-desc.js
deleted file mode 100644
index 0b5e639b81..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/prop-desc.js
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: The "year" property of Temporal.ZonedDateTime.prototype
-features: [Temporal]
----*/
-
-const descriptor = Object.getOwnPropertyDescriptor(Temporal.ZonedDateTime.prototype, "year");
-assert.sameValue(typeof descriptor.get, "function");
-assert.sameValue(descriptor.set, undefined);
-assert.sameValue(descriptor.enumerable, false);
-assert.sameValue(descriptor.configurable, true);
diff --git a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-non-integer.js b/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-non-integer.js
deleted file mode 100644
index ee36fb294b..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-non-integer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: RangeError thrown if time zone reports an offset that is not an integer number of nanoseconds
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[3600_000_000_000.5, NaN, -Infinity, Infinity].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.year);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-out-of-range.js b/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-out-of-range.js
deleted file mode 100644
index d03fa5e9f2..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-out-of-range.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: RangeError thrown if time zone reports an offset that is out of range
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[-86400_000_000_001, 86400_000_000_001].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(RangeError, () => datetime.year);
-});
diff --git a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-wrong-type.js b/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-wrong-type.js
deleted file mode 100644
index ede6e0049f..0000000000
--- a/polyfill/test/ZonedDateTime/prototype/year/timezone-getoffsetnanosecondsfor-wrong-type.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.year
-description: TypeError thrown if time zone reports an offset that is not a Number
-features: [Temporal]
-includes: [temporalHelpers.js]
----*/
-
-[
- undefined,
- null,
- true,
- "+01:00",
- Symbol(),
- 3600_000_000_000n,
- {},
- { valueOf() { return 3600_000_000_000; } },
-].forEach((wrongOffset) => {
- const timeZone = TemporalHelpers.specificOffsetTimeZone(wrongOffset);
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, timeZone);
- assert.throws(TypeError, () => datetime.year);
-});
diff --git a/polyfill/test/helpers/temporalHelpers.js b/polyfill/test/helpers/temporalHelpers.js
deleted file mode 100644
index a3579b0b78..0000000000
--- a/polyfill/test/helpers/temporalHelpers.js
+++ /dev/null
@@ -1,1361 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-description: |
- This defines helper objects and functions for testing Temporal.
-defines: [TemporalHelpers]
-features: [Symbol.species, Symbol.iterator, Temporal]
----*/
-
-var TemporalHelpers = {
- /*
- * assertDuration(duration, years, ..., nanoseconds[, description]):
- *
- * Shorthand for asserting that each field of a Temporal.Duration is equal to
- * an expected value.
- */
- assertDuration(duration, years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, nanoseconds, description = "") {
- assert(duration instanceof Temporal.Duration, `${description} instanceof`);
- assert.sameValue(duration.years, years, `${description} years result`);
- assert.sameValue(duration.months, months, `${description} months result`);
- assert.sameValue(duration.weeks, weeks, `${description} weeks result`);
- assert.sameValue(duration.days, days, `${description} days result`);
- assert.sameValue(duration.hours, hours, `${description} hours result`);
- assert.sameValue(duration.minutes, minutes, `${description} minutes result`);
- assert.sameValue(duration.seconds, seconds, `${description} seconds result`);
- assert.sameValue(duration.milliseconds, milliseconds, `${description} milliseconds result`);
- assert.sameValue(duration.microseconds, microseconds, `${description} microseconds result`);
- assert.sameValue(duration.nanoseconds, nanoseconds, `${description} nanoseconds result`);
- },
-
- /*
- * assertPlainDate(date, year, ..., nanosecond[, description[, era, eraYear]]):
- *
- * Shorthand for asserting that each field of a Temporal.PlainDate is equal to
- * an expected value. (Except the `calendar` property, since callers may want
- * to assert either object equality with an object they put in there, or the
- * result of date.calendar.toString().)
- */
- assertPlainDate(date, year, month, monthCode, day, description = "", era = undefined, eraYear = undefined) {
- assert(date instanceof Temporal.PlainDate, `${description} instanceof`);
- assert.sameValue(date.era, era, `${description} era result`);
- assert.sameValue(date.eraYear, eraYear, `${description} eraYear result`);
- assert.sameValue(date.year, year, `${description} year result`);
- assert.sameValue(date.month, month, `${description} month result`);
- assert.sameValue(date.monthCode, monthCode, `${description} monthCode result`);
- assert.sameValue(date.day, day, `${description} day result`);
- },
-
- /*
- * assertPlainDateTime(datetime, year, ..., nanosecond[, description[, era, eraYear]]):
- *
- * Shorthand for asserting that each field of a Temporal.PlainDateTime is
- * equal to an expected value. (Except the `calendar` property, since callers
- * may want to assert either object equality with an object they put in there,
- * or the result of datetime.calendar.toString().)
- */
- assertPlainDateTime(datetime, year, month, monthCode, day, hour, minute, second, millisecond, microsecond, nanosecond, description = "", era = undefined, eraYear = undefined) {
- assert(datetime instanceof Temporal.PlainDateTime, `${description} instanceof`);
- assert.sameValue(datetime.era, era, `${description} era result`);
- assert.sameValue(datetime.eraYear, eraYear, `${description} eraYear result`);
- assert.sameValue(datetime.year, year, `${description} year result`);
- assert.sameValue(datetime.month, month, `${description} month result`);
- assert.sameValue(datetime.monthCode, monthCode, `${description} monthCode result`);
- assert.sameValue(datetime.day, day, `${description} day result`);
- assert.sameValue(datetime.hour, hour, `${description} hour result`);
- assert.sameValue(datetime.minute, minute, `${description} minute result`);
- assert.sameValue(datetime.second, second, `${description} second result`);
- assert.sameValue(datetime.millisecond, millisecond, `${description} millisecond result`);
- assert.sameValue(datetime.microsecond, microsecond, `${description} microsecond result`);
- assert.sameValue(datetime.nanosecond, nanosecond, `${description} nanosecond result`);
- },
-
- /*
- * assertPlainMonthDay(monthDay, monthCode, day[, description [, referenceISOYear]]):
- *
- * Shorthand for asserting that each field of a Temporal.PlainMonthDay is
- * equal to an expected value. (Except the `calendar` property, since callers
- * may want to assert either object equality with an object they put in there,
- * or the result of monthDay.calendar.toString().)
- */
- assertPlainMonthDay(monthDay, monthCode, day, description = "", referenceISOYear = 1972) {
- assert(monthDay instanceof Temporal.PlainMonthDay, `${description} instanceof`);
- assert.sameValue(monthDay.monthCode, monthCode, `${description} monthCode result`);
- assert.sameValue(monthDay.day, day, `${description} day result`);
- assert.sameValue(monthDay.getISOFields().isoYear, referenceISOYear, `${description} referenceISOYear result`);
- },
-
- /*
- * assertPlainTime(time, hour, ..., nanosecond[, description]):
- *
- * Shorthand for asserting that each field of a Temporal.PlainTime is equal to
- * an expected value.
- */
- assertPlainTime(time, hour, minute, second, millisecond, microsecond, nanosecond, description = "") {
- assert(time instanceof Temporal.PlainTime, `${description} instanceof`);
- assert.sameValue(time.hour, hour, `${description} hour result`);
- assert.sameValue(time.minute, minute, `${description} minute result`);
- assert.sameValue(time.second, second, `${description} second result`);
- assert.sameValue(time.millisecond, millisecond, `${description} millisecond result`);
- assert.sameValue(time.microsecond, microsecond, `${description} microsecond result`);
- assert.sameValue(time.nanosecond, nanosecond, `${description} nanosecond result`);
- },
-
- /*
- * assertPlainYearMonth(yearMonth, year, month, monthCode[, description[, era, eraYear]]):
- *
- * Shorthand for asserting that each field of a Temporal.PlainYearMonth is
- * equal to an expected value. (Except the `calendar` property, since callers
- * may want to assert either object equality with an object they put in there,
- * or the result of yearMonth.calendar.toString().)
- */
- assertPlainYearMonth(yearMonth, year, month, monthCode, description = "", era = undefined, eraYear = undefined) {
- assert(yearMonth instanceof Temporal.PlainYearMonth, `${description} instanceof`);
- assert.sameValue(yearMonth.era, era, `${description} era result`);
- assert.sameValue(yearMonth.eraYear, eraYear, `${description} eraYear result`);
- assert.sameValue(yearMonth.year, year, `${description} year result`);
- assert.sameValue(yearMonth.month, month, `${description} month result`);
- assert.sameValue(yearMonth.monthCode, monthCode, `${description} monthCode result`);
- },
-
- /*
- * assertUnreachable(description):
- *
- * Helper for asserting that code is not executed. This is useful for
- * assertions that methods of user calendars and time zones are not called.
- */
- assertUnreachable(description) {
- let message = "This code should not be executed";
- if (description) {
- message = `${message}: ${description}`;
- }
- throw new Test262Error(message);
- },
-
- /*
- * checkCalendarDateUntilLargestUnitSingular(func, expectedLargestUnitCalls):
- *
- * When an options object with a largestUnit property is synthesized inside
- * Temporal and passed to user code such as calendar.dateUntil(), the value of
- * the largestUnit property should be in the singular form, even if the input
- * was given in the plural form.
- * (This doesn't apply when the options object is passed through verbatim.)
- *
- * func(calendar, largestUnit, index) is the operation under test. It's called
- * with an instance of a calendar that keeps track of which largestUnit is
- * passed to dateUntil(), each key of expectedLargestUnitCalls in turn, and
- * the key's numerical index in case the function needs to generate test data
- * based on the index. At the end, the actual values passed to dateUntil() are
- * compared with the array values of expectedLargestUnitCalls.
- */
- checkCalendarDateUntilLargestUnitSingular(func, expectedLargestUnitCalls) {
- const actual = [];
-
- class DateUntilOptionsCalendar extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil(earlier, later, options) {
- actual.push(options.largestUnit);
- return super.dateUntil(earlier, later, options);
- }
-
- toString() {
- return "date-until-options";
- }
- }
-
- const calendar = new DateUntilOptionsCalendar();
- Object.entries(expectedLargestUnitCalls).forEach(([largestUnit, expected], index) => {
- func(calendar, largestUnit, index);
- assert.compareArray(actual, expected, `largestUnit passed to calendar.dateUntil() for largestUnit ${largestUnit}`);
- actual.splice(0, actual.length); // empty it for the next check
- });
- },
-
- /*
- * checkFractionalSecondDigitsOptionWrongType(temporalObject):
- *
- * Checks the string-or-number type handling of the fractionalSecondDigits
- * option to the various types' toString() methods. temporalObject is an
- * instance of the Temporal type under test.
- */
- checkFractionalSecondDigitsOptionWrongType(temporalObject) {
- // null is not a number, and converts to the string "null", which is an invalid string value
- assert.throws(RangeError, () => temporalObject.toString({ fractionalSecondDigits: null }), "null");
- // Booleans are not numbers, and convert to the strings "true" or "false", which are invalid
- assert.throws(RangeError, () => temporalObject.toString({ fractionalSecondDigits: true }), "true");
- assert.throws(RangeError, () => temporalObject.toString({ fractionalSecondDigits: false }), "false");
- // Symbols are not numbers and cannot convert to strings
- assert.throws(TypeError, () => temporalObject.toString({ fractionalSecondDigits: Symbol() }), "symbol");
- // BigInts are not numbers and convert to strings which are invalid
- assert.throws(RangeError, () => temporalObject.toString({ fractionalSecondDigits: 2n }), "bigint");
-
- // Objects are not numbers and prefer their toString() methods when converting to a string
- assert.throws(RangeError, () => temporalObject.toString({ fractionalSecondDigits: {} }), "plain object");
-
- const toStringExpected = temporalObject.toString({ fractionalSecondDigits: 'auto' });
- const expected = [
- "get fractionalSecondDigits.toString",
- "call fractionalSecondDigits.toString",
- ];
- const actual = [];
- const observer = TemporalHelpers.toPrimitiveObserver(actual, "auto", "fractionalSecondDigits");
- const result = temporalObject.toString({ fractionalSecondDigits: observer });
- assert.sameValue(result, toStringExpected, "object with toString");
- assert.compareArray(actual, expected, "order of operations");
- },
-
- /*
- * checkPlainDateTimeConversionFastPath(func):
- *
- * ToTemporalDate and ToTemporalTime should both, if given a
- * Temporal.PlainDateTime instance, convert to the desired type by reading the
- * PlainDateTime's internal slots, rather than calling any getters.
- *
- * func(datetime, calendar) is the actual operation to test, that must
- * internally call the abstract operation ToTemporalDate or ToTemporalTime.
- * It is passed a Temporal.PlainDateTime instance, as well as the instance's
- * calendar object (so that it doesn't have to call the calendar getter itself
- * if it wants to make any assertions about the calendar.)
- */
- checkPlainDateTimeConversionFastPath(func) {
- const actual = [];
- const expected = [];
-
- const calendar = new Temporal.Calendar("iso8601");
- const datetime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.PlainDateTime.prototype);
- ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((property) => {
- Object.defineProperty(datetime, property, {
- get() {
- actual.push(`get ${property}`);
- const value = prototypeDescrs[property].get.call(this);
- return {
- toString() {
- actual.push(`toString ${property}`);
- return value.toString();
- },
- valueOf() {
- actual.push(`valueOf ${property}`);
- return value;
- },
- };
- },
- });
- });
- Object.defineProperty(datetime, "calendar", {
- get() {
- actual.push("get calendar");
- return calendar;
- },
- });
-
- func(datetime, calendar);
- assert.compareArray(actual, expected, "property getters not called");
- },
-
- /*
- * Check that an options bag that accepts units written in the singular form,
- * also accepts the same units written in the plural form.
- * func(unit) should call the method with the appropriate options bag
- * containing unit as a value. This will be called twice for each element of
- * validSingularUnits, once with singular and once with plural, and the
- * results of each pair should be the same (whether a Temporal object or a
- * primitive value.)
- */
- checkPluralUnitsAccepted(func, validSingularUnits) {
- const plurals = {
- year: 'years',
- month: 'months',
- week: 'weeks',
- day: 'days',
- hour: 'hours',
- minute: 'minutes',
- second: 'seconds',
- millisecond: 'milliseconds',
- microsecond: 'microseconds',
- nanosecond: 'nanoseconds',
- };
-
- validSingularUnits.forEach((unit) => {
- const singularValue = func(unit);
- const pluralValue = func(plurals[unit]);
- if (singularValue instanceof Temporal.Duration) {
- assert.sameValue(pluralValue.years, singularValue.years, "years value");
- assert.sameValue(pluralValue.months, singularValue.months, "months value");
- assert.sameValue(pluralValue.weeks, singularValue.weeks, "weeks value");
- assert.sameValue(pluralValue.days, singularValue.days, "days value");
- assert.sameValue(pluralValue.hours, singularValue.hours, "hours value");
- assert.sameValue(pluralValue.minutes, singularValue.minutes, "minutes value");
- assert.sameValue(pluralValue.seconds, singularValue.seconds, "seconds value");
- assert.sameValue(pluralValue.milliseconds, singularValue.milliseconds, "milliseconds value");
- assert.sameValue(pluralValue.microseconds, singularValue.microseconds, "microseconds value");
- assert.sameValue(pluralValue.nanoseconds, singularValue.nanoseconds, "nanoseconds value");
- } else if (
- singularValue instanceof Temporal.Instant ||
- singularValue instanceof Temporal.PlainDateTime ||
- singularValue instanceof Temporal.PlainTime ||
- singularValue instanceof Temporal.ZonedDateTime
- ) {
- assert(pluralValue.equals(singularValue), "Temporal objects equal");
- } else {
- assert.sameValue(pluralValue, singularValue);
- }
- });
- },
-
- /*
- * checkRoundingIncrementOptionWrongType(checkFunc, assertTrueResultFunc, assertObjectResultFunc):
- *
- * Checks the type handling of the roundingIncrement option.
- * checkFunc(roundingIncrement) is a function which takes the value of
- * roundingIncrement to test, and calls the method under test with it,
- * returning the result. assertTrueResultFunc(result, description) should
- * assert that result is the expected result with roundingIncrement: true, and
- * assertObjectResultFunc(result, description) should assert that result is
- * the expected result with roundingIncrement being an object with a valueOf()
- * method.
- */
- checkRoundingIncrementOptionWrongType(checkFunc, assertTrueResultFunc, assertObjectResultFunc) {
- // null converts to 0, which is out of range
- assert.throws(RangeError, () => checkFunc(null), "null");
- // Booleans convert to either 0 or 1, and 1 is allowed
- const trueResult = checkFunc(true);
- assertTrueResultFunc(trueResult, "true");
- assert.throws(RangeError, () => checkFunc(false), "false");
- // Symbols and BigInts cannot convert to numbers
- assert.throws(TypeError, () => checkFunc(Symbol()), "symbol");
- assert.throws(TypeError, () => checkFunc(2n), "bigint");
-
- // Objects prefer their valueOf() methods when converting to a number
- assert.throws(RangeError, () => checkFunc({}), "plain object");
-
- const expected = [
- "get roundingIncrement.valueOf",
- "call roundingIncrement.valueOf",
- ];
- const actual = [];
- const observer = TemporalHelpers.toPrimitiveObserver(actual, 2, "roundingIncrement");
- const objectResult = checkFunc(observer);
- assertObjectResultFunc(objectResult, "object with valueOf");
- assert.compareArray(actual, expected, "order of operations");
- },
-
- /*
- * checkStringOptionWrongType(propertyName, value, checkFunc, assertFunc):
- *
- * Checks the type handling of a string option, of which there are several in
- * Temporal.
- * propertyName is the name of the option, and value is the value that
- * assertFunc should expect it to have.
- * checkFunc(value) is a function which takes the value of the option to test,
- * and calls the method under test with it, returning the result.
- * assertFunc(result, description) should assert that result is the expected
- * result with the option value being an object with a toString() method
- * which returns the given value.
- */
- checkStringOptionWrongType(propertyName, value, checkFunc, assertFunc) {
- // null converts to the string "null", which is an invalid string value
- assert.throws(RangeError, () => checkFunc(null), "null");
- // Booleans convert to the strings "true" or "false", which are invalid
- assert.throws(RangeError, () => checkFunc(true), "true");
- assert.throws(RangeError, () => checkFunc(false), "false");
- // Symbols cannot convert to strings
- assert.throws(TypeError, () => checkFunc(Symbol()), "symbol");
- // Numbers convert to strings which are invalid
- assert.throws(RangeError, () => checkFunc(2), "number");
- // BigInts convert to strings which are invalid
- assert.throws(RangeError, () => checkFunc(2n), "bigint");
-
- // Objects prefer their toString() methods when converting to a string
- assert.throws(RangeError, () => checkFunc({}), "plain object");
-
- const expected = [
- `get ${propertyName}.toString`,
- `call ${propertyName}.toString`,
- ];
- const actual = [];
- const observer = TemporalHelpers.toPrimitiveObserver(actual, value, propertyName);
- const result = checkFunc(observer);
- assertFunc(result, "object with toString");
- assert.compareArray(actual, expected, "order of operations");
- },
-
- /*
- * checkSubclassingIgnored(construct, constructArgs, method, methodArgs,
- * resultAssertions):
- *
- * Methods of Temporal classes that return a new instance of the same class,
- * must not take the constructor of a subclass into account, nor the @@species
- * property. This helper runs tests to ensure this.
- *
- * construct(...constructArgs) must yield a valid instance of the Temporal
- * class. instance[method](...methodArgs) is the method call under test, which
- * must also yield a valid instance of the same Temporal class, not a
- * subclass. See below for the individual tests that this runs.
- * resultAssertions() is a function that performs additional assertions on the
- * instance returned by the method under test.
- */
- checkSubclassingIgnored(...args) {
- this.checkSubclassConstructorNotObject(...args);
- this.checkSubclassConstructorUndefined(...args);
- this.checkSubclassConstructorThrows(...args);
- this.checkSubclassConstructorNotCalled(...args);
- this.checkSubclassSpeciesInvalidResult(...args);
- this.checkSubclassSpeciesNotAConstructor(...args);
- this.checkSubclassSpeciesNull(...args);
- this.checkSubclassSpeciesUndefined(...args);
- this.checkSubclassSpeciesThrows(...args);
- },
-
- /*
- * Checks that replacing the 'constructor' property of the instance with
- * various primitive values does not affect the returned new instance.
- */
- checkSubclassConstructorNotObject(construct, constructArgs, method, methodArgs, resultAssertions) {
- function check(value, description) {
- const instance = new construct(...constructArgs);
- instance.constructor = value;
- const result = instance[method](...methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype, description);
- resultAssertions(result);
- }
-
- check(null, "null");
- check(true, "true");
- check("test", "string");
- check(Symbol(), "Symbol");
- check(7, "number");
- check(7n, "bigint");
- },
-
- /*
- * Checks that replacing the 'constructor' property of the subclass with
- * undefined does not affect the returned new instance.
- */
- checkSubclassConstructorUndefined(construct, constructArgs, method, methodArgs, resultAssertions) {
- let called = 0;
-
- class MySubclass extends construct {
- constructor() {
- ++called;
- super(...constructArgs);
- }
- }
-
- const instance = new MySubclass();
- assert.sameValue(called, 1);
-
- MySubclass.prototype.constructor = undefined;
-
- const result = instance[method](...methodArgs);
- assert.sameValue(called, 1);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Checks that making the 'constructor' property of the instance throw when
- * called does not affect the returned new instance.
- */
- checkSubclassConstructorThrows(construct, constructArgs, method, methodArgs, resultAssertions) {
- function CustomError() {}
- const instance = new construct(...constructArgs);
- Object.defineProperty(instance, "constructor", {
- get() {
- throw new CustomError();
- }
- });
- const result = instance[method](...methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Checks that when subclassing, the subclass constructor is not called by
- * the method under test.
- */
- checkSubclassConstructorNotCalled(construct, constructArgs, method, methodArgs, resultAssertions) {
- let called = 0;
-
- class MySubclass extends construct {
- constructor() {
- ++called;
- super(...constructArgs);
- }
- }
-
- const instance = new MySubclass();
- assert.sameValue(called, 1);
-
- const result = instance[method](...methodArgs);
- assert.sameValue(called, 1);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Check that the constructor's @@species property is ignored when it's a
- * constructor that returns a non-object value.
- */
- checkSubclassSpeciesInvalidResult(construct, constructArgs, method, methodArgs, resultAssertions) {
- function check(value, description) {
- const instance = new construct(...constructArgs);
- instance.constructor = {
- [Symbol.species]: function() {
- return value;
- },
- };
- const result = instance[method](...methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype, description);
- resultAssertions(result);
- }
-
- check(undefined, "undefined");
- check(null, "null");
- check(true, "true");
- check("test", "string");
- check(Symbol(), "Symbol");
- check(7, "number");
- check(7n, "bigint");
- check({}, "plain object");
- },
-
- /*
- * Check that the constructor's @@species property is ignored when it's not a
- * constructor.
- */
- checkSubclassSpeciesNotAConstructor(construct, constructArgs, method, methodArgs, resultAssertions) {
- function check(value, description) {
- const instance = new construct(...constructArgs);
- instance.constructor = {
- [Symbol.species]: value,
- };
- const result = instance[method](...methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype, description);
- resultAssertions(result);
- }
-
- check(true, "true");
- check("test", "string");
- check(Symbol(), "Symbol");
- check(7, "number");
- check(7n, "bigint");
- check({}, "plain object");
- },
-
- /*
- * Check that the constructor's @@species property is ignored when it's null.
- */
- checkSubclassSpeciesNull(construct, constructArgs, method, methodArgs, resultAssertions) {
- let called = 0;
-
- class MySubclass extends construct {
- constructor() {
- ++called;
- super(...constructArgs);
- }
- }
-
- const instance = new MySubclass();
- assert.sameValue(called, 1);
-
- MySubclass.prototype.constructor = {
- [Symbol.species]: null,
- };
-
- const result = instance[method](...methodArgs);
- assert.sameValue(called, 1);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Check that the constructor's @@species property is ignored when it's
- * undefined.
- */
- checkSubclassSpeciesUndefined(construct, constructArgs, method, methodArgs, resultAssertions) {
- let called = 0;
-
- class MySubclass extends construct {
- constructor() {
- ++called;
- super(...constructArgs);
- }
- }
-
- const instance = new MySubclass();
- assert.sameValue(called, 1);
-
- MySubclass.prototype.constructor = {
- [Symbol.species]: undefined,
- };
-
- const result = instance[method](...methodArgs);
- assert.sameValue(called, 1);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Check that the constructor's @@species property is ignored when it throws,
- * i.e. it is not called at all.
- */
- checkSubclassSpeciesThrows(construct, constructArgs, method, methodArgs, resultAssertions) {
- function CustomError() {}
-
- const instance = new construct(...constructArgs);
- instance.constructor = {
- get [Symbol.species]() {
- throw new CustomError();
- },
- };
-
- const result = instance[method](...methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- },
-
- /*
- * checkSubclassingIgnoredStatic(construct, method, methodArgs, resultAssertions):
- *
- * Static methods of Temporal classes that return a new instance of the class,
- * must not use the this-value as a constructor. This helper runs tests to
- * ensure this.
- *
- * construct[method](...methodArgs) is the static method call under test, and
- * must yield a valid instance of the Temporal class, not a subclass. See
- * below for the individual tests that this runs.
- * resultAssertions() is a function that performs additional assertions on the
- * instance returned by the method under test.
- */
- checkSubclassingIgnoredStatic(...args) {
- this.checkStaticInvalidReceiver(...args);
- this.checkStaticReceiverNotCalled(...args);
- this.checkThisValueNotCalled(...args);
- },
-
- /*
- * Check that calling the static method with a receiver that's not callable,
- * still calls the intrinsic constructor.
- */
- checkStaticInvalidReceiver(construct, method, methodArgs, resultAssertions) {
- function check(value, description) {
- const result = construct[method].apply(value, methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- }
-
- check(undefined, "undefined");
- check(null, "null");
- check(true, "true");
- check("test", "string");
- check(Symbol(), "symbol");
- check(7, "number");
- check(7n, "bigint");
- check({}, "Non-callable object");
- },
-
- /*
- * Check that calling the static method with a receiver that returns a value
- * that's not callable, still calls the intrinsic constructor.
- */
- checkStaticReceiverNotCalled(construct, method, methodArgs, resultAssertions) {
- function check(value, description) {
- const receiver = function () {
- return value;
- };
- const result = construct[method].apply(receiver, methodArgs);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- }
-
- check(undefined, "undefined");
- check(null, "null");
- check(true, "true");
- check("test", "string");
- check(Symbol(), "symbol");
- check(7, "number");
- check(7n, "bigint");
- check({}, "Non-callable object");
- },
-
- /*
- * Check that the receiver isn't called.
- */
- checkThisValueNotCalled(construct, method, methodArgs, resultAssertions) {
- let called = false;
-
- class MySubclass extends construct {
- constructor(...args) {
- called = true;
- super(...args);
- }
- }
-
- const result = MySubclass[method](...methodArgs);
- assert.sameValue(called, false);
- assert.sameValue(Object.getPrototypeOf(result), construct.prototype);
- resultAssertions(result);
- },
-
- /*
- * Check that any iterable returned from a custom time zone's
- * getPossibleInstantsFor() method is exhausted.
- * The custom time zone object is passed in to func().
- * expected is an array of strings representing the expected calls to the
- * getPossibleInstantsFor() method. The PlainDateTimes that it is called with,
- * are compared (using their toString() results) with the array.
- */
- checkTimeZonePossibleInstantsIterable(func, expected) {
- // A custom time zone that returns an iterable instead of an array from its
- // getPossibleInstantsFor() method, and for testing purposes skips
- // 00:00-01:00 UTC on January 1, 2030, and repeats 00:00-01:00 UTC+1 on
- // January 3, 2030. Otherwise identical to the UTC time zone.
- class TimeZonePossibleInstantsIterable extends Temporal.TimeZone {
- constructor() {
- super("UTC");
- this.getPossibleInstantsForCallCount = 0;
- this.getPossibleInstantsForCalledWith = [];
- this.getPossibleInstantsForReturns = [];
- this.iteratorExhausted = [];
- }
-
- toString() {
- return "Custom/Iterable";
- }
-
- getOffsetNanosecondsFor(instant) {
- if (Temporal.Instant.compare(instant, "2030-01-01T00:00Z") >= 0 &&
- Temporal.Instant.compare(instant, "2030-01-03T01:00Z") < 0) {
- return 3600_000_000_000;
- } else {
- return 0;
- }
- }
-
- getPossibleInstantsFor(dateTime) {
- this.getPossibleInstantsForCallCount++;
- this.getPossibleInstantsForCalledWith.push(dateTime);
-
- // Fake DST transition
- let retval = super.getPossibleInstantsFor(dateTime);
- if (dateTime.toPlainDate().equals("2030-01-01") && dateTime.hour === 0) {
- retval = [];
- } else if (dateTime.toPlainDate().equals("2030-01-03") && dateTime.hour === 0) {
- retval.push(retval[0].subtract({ hours: 1 }));
- } else if (dateTime.year === 2030 && dateTime.month === 1 && dateTime.day >= 1 && dateTime.day <= 2) {
- retval[0] = retval[0].subtract({ hours: 1 });
- }
-
- this.getPossibleInstantsForReturns.push(retval);
- this.iteratorExhausted.push(false);
- return {
- callIndex: this.getPossibleInstantsForCallCount - 1,
- timeZone: this,
- *[Symbol.iterator]() {
- yield* this.timeZone.getPossibleInstantsForReturns[this.callIndex];
- this.timeZone.iteratorExhausted[this.callIndex] = true;
- },
- };
- }
- }
-
- const timeZone = new TimeZonePossibleInstantsIterable();
- func(timeZone);
-
- assert.sameValue(timeZone.getPossibleInstantsForCallCount, expected.length, "getPossibleInstantsFor() method called correct number of times");
-
- for (let index = 0; index < expected.length; index++) {
- assert.sameValue(timeZone.getPossibleInstantsForCalledWith[index].toString(), expected[index], "getPossibleInstantsFor() called with expected PlainDateTime");
- assert(timeZone.iteratorExhausted[index], "iterated through the whole iterable");
- }
- },
-
- /*
- * Check that any calendar-carrying Temporal object has its [[Calendar]]
- * internal slot read by ToTemporalCalendar, and does not fetch the calendar
- * by calling getters.
- * The custom calendar object is passed in to func() so that it can do its
- * own additional assertions involving the calendar if necessary. (Sometimes
- * there is nothing to assert as the calendar isn't stored anywhere that can
- * be asserted about.)
- */
- checkToTemporalCalendarFastPath(func) {
- class CalendarFastPathCheck extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- toString() {
- return "fast-path-check";
- }
- }
- const calendar = new CalendarFastPathCheck();
-
- const plainDate = new Temporal.PlainDate(2000, 5, 2, calendar);
- const plainDateTime = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar);
- const plainMonthDay = new Temporal.PlainMonthDay(5, 2, calendar);
- const plainYearMonth = new Temporal.PlainYearMonth(2000, 5, calendar);
- const zonedDateTime = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
-
- [plainDate, plainDateTime, plainMonthDay, plainYearMonth, zonedDateTime].forEach((temporalObject) => {
- const actual = [];
- const expected = [];
-
- Object.defineProperty(temporalObject, "calendar", {
- get() {
- actual.push("get calendar");
- return calendar;
- },
- });
-
- func(temporalObject, calendar);
- assert.compareArray(actual, expected, "calendar getter not called");
- });
- },
-
- checkToTemporalInstantFastPath(func) {
- const actual = [];
- const expected = [];
-
- const datetime = new Temporal.ZonedDateTime(1_000_000_000_987_654_321n, "UTC");
- Object.defineProperty(datetime, 'toString', {
- get() {
- actual.push("get toString");
- return function (options) {
- actual.push("call toString");
- return Temporal.ZonedDateTime.prototype.toString.call(this, options);
- };
- },
- });
-
- func(datetime);
- assert.compareArray(actual, expected, "toString not called");
- },
-
- checkToTemporalPlainDateTimeFastPath(func) {
- const actual = [];
- const expected = [];
-
- const calendar = new Temporal.Calendar("iso8601");
- const date = new Temporal.PlainDate(2000, 5, 2, calendar);
- const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.PlainDate.prototype);
- ["year", "month", "monthCode", "day"].forEach((property) => {
- Object.defineProperty(date, property, {
- get() {
- actual.push(`get ${property}`);
- const value = prototypeDescrs[property].get.call(this);
- return TemporalHelpers.toPrimitiveObserver(actual, value, property);
- },
- });
- });
- ["hour", "minute", "second", "millisecond", "microsecond", "nanosecond"].forEach((property) => {
- Object.defineProperty(date, property, {
- get() {
- actual.push(`get ${property}`);
- return undefined;
- },
- });
- });
- Object.defineProperty(date, "calendar", {
- get() {
- actual.push("get calendar");
- return calendar;
- },
- });
-
- func(date, calendar);
- assert.compareArray(actual, expected, "property getters not called");
- },
-
- /*
- * A custom calendar that asserts its dateAdd() method is called with the
- * options parameter having the value undefined.
- */
- calendarDateAddUndefinedOptions() {
- class CalendarDateAddUndefinedOptions extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- this.dateAddCallCount = 0;
- }
-
- toString() {
- return "dateadd-undef-options";
- }
-
- dateAdd(one, two, options) {
- this.dateAddCallCount++;
- assert.sameValue(options, undefined, "dateAdd shouldn't be called with options");
- return super.dateAdd(one, two, options);
- }
- }
- return new CalendarDateAddUndefinedOptions();
- },
-
- /*
- * A custom calendar that returns @returnValue from its dateUntil() method,
- * recording the call in @calls.
- */
- calendarDateUntilObservable(calls, returnValue) {
- class CalendarDateUntilObservable extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateUntil() {
- calls.push("call dateUntil");
- return returnValue;
- }
- }
-
- return new CalendarDateUntilObservable();
- },
-
- /*
- * A custom calendar that returns an iterable instead of an array from its
- * fields() method, otherwise identical to the ISO calendar.
- */
- calendarFieldsIterable() {
- class CalendarFieldsIterable extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- this.fieldsCallCount = 0;
- this.fieldsCalledWith = [];
- this.iteratorExhausted = [];
- }
-
- toString() {
- return "fields-iterable";
- }
-
- fields(fieldNames) {
- this.fieldsCallCount++;
- this.fieldsCalledWith.push(fieldNames.slice());
- this.iteratorExhausted.push(false);
- return {
- callIndex: this.fieldsCallCount - 1,
- calendar: this,
- *[Symbol.iterator]() {
- yield* this.calendar.fieldsCalledWith[this.callIndex];
- this.calendar.iteratorExhausted[this.callIndex] = true;
- },
- };
- }
- }
- return new CalendarFieldsIterable();
- },
-
- /*
- * A custom calendar that modifies the fields object passed in to
- * dateFromFields, sabotaging its time properties.
- */
- calendarMakeInfinityTime() {
- class CalendarMakeInfinityTime extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateFromFields(fields, options) {
- const retval = super.dateFromFields(fields, options);
- fields.hour = Infinity;
- fields.minute = Infinity;
- fields.second = Infinity;
- fields.millisecond = Infinity;
- fields.microsecond = Infinity;
- fields.nanosecond = Infinity;
- return retval;
- }
- }
- return new CalendarMakeInfinityTime();
- },
-
- /*
- * A custom calendar that defines getters on the fields object passed into
- * dateFromFields that throw, sabotaging its time properties.
- */
- calendarMakeInvalidGettersTime() {
- class CalendarMakeInvalidGettersTime extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
-
- dateFromFields(fields, options) {
- const retval = super.dateFromFields(fields, options);
- const throwingDescriptor = {
- get() {
- throw new Test262Error("reading a sabotaged time field");
- },
- };
- Object.defineProperties(fields, {
- hour: throwingDescriptor,
- minute: throwingDescriptor,
- second: throwingDescriptor,
- millisecond: throwingDescriptor,
- microsecond: throwingDescriptor,
- nanosecond: throwingDescriptor,
- });
- return retval;
- }
- }
- return new CalendarMakeInvalidGettersTime();
- },
-
- /*
- * A custom calendar whose mergeFields() method returns a proxy object with
- * all of its Get and HasProperty operations observable, as well as adding a
- * "shouldNotBeCopied": true property.
- */
- calendarMergeFieldsGetters() {
- class CalendarMergeFieldsGetters extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- this.mergeFieldsReturnOperations = [];
- }
-
- toString() {
- return "merge-fields-getters";
- }
-
- dateFromFields(fields, options) {
- assert.sameValue(fields.shouldNotBeCopied, undefined, "extra fields should not be copied");
- return super.dateFromFields(fields, options);
- }
-
- yearMonthFromFields(fields, options) {
- assert.sameValue(fields.shouldNotBeCopied, undefined, "extra fields should not be copied");
- return super.yearMonthFromFields(fields, options);
- }
-
- monthDayFromFields(fields, options) {
- assert.sameValue(fields.shouldNotBeCopied, undefined, "extra fields should not be copied");
- return super.monthDayFromFields(fields, options);
- }
-
- mergeFields(fields, additionalFields) {
- const retval = super.mergeFields(fields, additionalFields);
- retval._calendar = this;
- retval.shouldNotBeCopied = true;
- return new Proxy(retval, {
- get(target, key) {
- target._calendar.mergeFieldsReturnOperations.push(`get ${key}`);
- const result = target[key];
- if (result === undefined) {
- return undefined;
- }
- return TemporalHelpers.toPrimitiveObserver(target._calendar.mergeFieldsReturnOperations, result, key);
- },
- has(target, key) {
- target._calendar.mergeFieldsReturnOperations.push(`has ${key}`);
- return key in target;
- },
- });
- }
- }
- return new CalendarMergeFieldsGetters();
- },
-
- /*
- * A custom calendar whose mergeFields() method returns a primitive value,
- * given by @primitive, and which records the number of calls made to its
- * dateFromFields(), yearMonthFromFields(), and monthDayFromFields() methods.
- */
- calendarMergeFieldsReturnsPrimitive(primitive) {
- class CalendarMergeFieldsPrimitive extends Temporal.Calendar {
- constructor(mergeFieldsReturnValue) {
- super("iso8601");
- this._mergeFieldsReturnValue = mergeFieldsReturnValue;
- this.dateFromFieldsCallCount = 0;
- this.monthDayFromFieldsCallCount = 0;
- this.yearMonthFromFieldsCallCount = 0;
- }
-
- toString() {
- return "merge-fields-primitive";
- }
-
- dateFromFields(fields, options) {
- this.dateFromFieldsCallCount++;
- return super.dateFromFields(fields, options);
- }
-
- yearMonthFromFields(fields, options) {
- this.yearMonthFromFieldsCallCount++;
- return super.yearMonthFromFields(fields, options);
- }
-
- monthDayFromFields(fields, options) {
- this.monthDayFromFieldsCallCount++;
- return super.monthDayFromFields(fields, options);
- }
-
- mergeFields() {
- return this._mergeFieldsReturnValue;
- }
- }
- return new CalendarMergeFieldsPrimitive(primitive);
- },
-
- /*
- * observeProperty(calls, object, propertyName, value):
- *
- * Defines an own property @object.@propertyName with value @value, that
- * will log any calls to its accessors to the array @calls.
- */
- observeProperty(calls, object, propertyName, value) {
- Object.defineProperty(object, propertyName, {
- get() {
- calls.push(`get ${propertyName}`);
- return value;
- },
- set(v) {
- calls.push(`set ${propertyName}`);
- }
- });
- },
-
- /*
- * A custom calendar that does not allow any of its methods to be called, for
- * the purpose of asserting that a particular operation does not call into
- * user code.
- */
- calendarThrowEverything() {
- class CalendarThrowEverything extends Temporal.Calendar {
- constructor() {
- super("iso8601");
- }
- toString() {
- TemporalHelpers.assertUnreachable("toString should not be called");
- }
- dateFromFields() {
- TemporalHelpers.assertUnreachable("dateFromFields should not be called");
- }
- yearMonthFromFields() {
- TemporalHelpers.assertUnreachable("yearMonthFromFields should not be called");
- }
- monthDayFromFields() {
- TemporalHelpers.assertUnreachable("monthDayFromFields should not be called");
- }
- dateAdd() {
- TemporalHelpers.assertUnreachable("dateAdd should not be called");
- }
- dateUntil() {
- TemporalHelpers.assertUnreachable("dateUntil should not be called");
- }
- era() {
- TemporalHelpers.assertUnreachable("era should not be called");
- }
- eraYear() {
- TemporalHelpers.assertUnreachable("eraYear should not be called");
- }
- year() {
- TemporalHelpers.assertUnreachable("year should not be called");
- }
- month() {
- TemporalHelpers.assertUnreachable("month should not be called");
- }
- monthCode() {
- TemporalHelpers.assertUnreachable("monthCode should not be called");
- }
- day() {
- TemporalHelpers.assertUnreachable("day should not be called");
- }
- fields() {
- TemporalHelpers.assertUnreachable("fields should not be called");
- }
- mergeFields() {
- TemporalHelpers.assertUnreachable("mergeFields should not be called");
- }
- }
-
- return new CalendarThrowEverything();
- },
-
- /*
- * oneShiftTimeZone(shiftInstant, shiftNanoseconds):
- *
- * In the case of a spring-forward time zone offset transition (skipped time),
- * and disambiguation === 'earlier', BuiltinTimeZoneGetInstantFor subtracts a
- * negative number of nanoseconds from a PlainDateTime, which should balance
- * with the microseconds field.
- *
- * This returns an instance of a custom time zone class which skips a length
- * of time equal to shiftNanoseconds (a number), at the Temporal.Instant
- * shiftInstant. Before shiftInstant, it's identical to UTC, and after
- * shiftInstant it's a constant-offset time zone.
- *
- * It provides a getPossibleInstantsForCalledWith member which is an array
- * with the result of calling toString() on any PlainDateTimes passed to
- * getPossibleInstantsFor().
- */
- oneShiftTimeZone(shiftInstant, shiftNanoseconds) {
- class OneShiftTimeZone extends Temporal.TimeZone {
- constructor(shiftInstant, shiftNanoseconds) {
- super("+00:00");
- this._shiftInstant = shiftInstant;
- this._epoch1 = shiftInstant.epochNanoseconds;
- this._epoch2 = this._epoch1 + BigInt(shiftNanoseconds);
- this._shiftNanoseconds = shiftNanoseconds;
- this._shift = new Temporal.Duration(0, 0, 0, 0, 0, 0, 0, 0, 0, this._shiftNanoseconds);
- this.getPossibleInstantsForCalledWith = [];
- }
-
- _isBeforeShift(instant) {
- return instant.epochNanoseconds < this._epoch1;
- }
-
- getOffsetNanosecondsFor(instant) {
- return this._isBeforeShift(instant) ? 0 : this._shiftNanoseconds;
- }
-
- getPossibleInstantsFor(plainDateTime) {
- this.getPossibleInstantsForCalledWith.push(plainDateTime.toString());
- const [instant] = super.getPossibleInstantsFor(plainDateTime);
- if (this._shiftNanoseconds > 0) {
- if (this._isBeforeShift(instant)) return [instant];
- if (instant.epochNanoseconds < this._epoch2) return [];
- return [instant.add(this._shift)];
- }
- if (instant.epochNanoseconds < this._epoch2) return [instant];
- const shifted = instant.add(this._shift);
- if (this._isBeforeShift(instant)) return [instant, shifted];
- return [shifted];
- }
-
- getNextTransition(instant) {
- return this._isBeforeShift(instant) ? this._shiftInstant : null;
- }
-
- getPreviousTransition(instant) {
- return this._isBeforeShift(instant) ? null : this._shiftInstant;
- }
-
- toString() {
- return "Custom/One_Shift";
- }
- }
- return new OneShiftTimeZone(shiftInstant, shiftNanoseconds);
- },
-
- /*
- * specificOffsetTimeZone():
- *
- * This returns an instance of a custom time zone class, which returns a
- * specific custom value from its getOffsetNanosecondsFrom() method. This is
- * for the purpose of testing the validation of what this method returns.
- *
- * It also returns an empty array from getPossibleInstantsFor(), so as to
- * trigger calls to getOffsetNanosecondsFor() when used from the
- * BuiltinTimeZoneGetInstantFor operation.
- */
- specificOffsetTimeZone(offsetValue) {
- class SpecificOffsetTimeZone extends Temporal.TimeZone {
- constructor(offsetValue) {
- super("UTC");
- this._offsetValue = offsetValue;
- }
-
- getOffsetNanosecondsFor() {
- return this._offsetValue;
- }
-
- getPossibleInstantsFor() {
- return [];
- }
- }
- return new SpecificOffsetTimeZone(offsetValue);
- },
-
- /*
- * springForwardFallBackTimeZone():
- *
- * This returns an instance of a custom time zone class that implements one
- * single spring-forward/fall-back transition, for the purpose of testing the
- * disambiguation option, without depending on system time zone data.
- *
- * The spring-forward occurs at epoch second 954669600 (2000-04-02T02:00
- * local) and goes from offset -08:00 to -07:00.
- *
- * The fall-back occurs at epoch second 972810000 (2000-10-29T02:00 local) and
- * goes from offset -07:00 to -08:00.
- */
- springForwardFallBackTimeZone() {
- const { compare } = Temporal.PlainDateTime;
- const springForwardLocal = new Temporal.PlainDateTime(2000, 4, 2, 2);
- const springForwardEpoch = 954669600_000_000_000n;
- const fallBackLocal = new Temporal.PlainDateTime(2000, 10, 29, 1);
- const fallBackEpoch = 972810000_000_000_000n;
- const winterOffset = new Temporal.TimeZone('-08:00');
- const summerOffset = new Temporal.TimeZone('-07:00');
-
- class SpringForwardFallBackTimeZone extends Temporal.TimeZone {
- constructor() {
- super("-08:00");
- }
-
- getOffsetNanosecondsFor(instant) {
- if (instant.epochNanoseconds < springForwardEpoch ||
- instant.epochNanoseconds >= fallBackEpoch) {
- return winterOffset.getOffsetNanosecondsFor(instant);
- }
- return summerOffset.getOffsetNanosecondsFor(instant);
- }
-
- getPossibleInstantsFor(datetime) {
- if (compare(datetime, springForwardLocal) >= 0 && compare(datetime, springForwardLocal.add({ hours: 1 })) < 0) {
- return [];
- }
- if (compare(datetime, fallBackLocal) >= 0 && compare(datetime, fallBackLocal.add({ hours: 1 })) < 0) {
- return [summerOffset.getInstantFor(datetime), winterOffset.getInstantFor(datetime)];
- }
- if (compare(datetime, springForwardLocal) < 0 || compare(datetime, fallBackLocal) >= 0) {
- return [winterOffset.getInstantFor(datetime)];
- }
- return [summerOffset.getInstantFor(datetime)];
- }
-
- getPreviousTransition(instant) {
- if (instant.epochNanoseconds > fallBackEpoch) return new Temporal.Instant(fallBackEpoch);
- if (instant.epochNanoseconds > springForwardEpoch) return new Temporal.Instant(springForwardEpoch);
- return null;
- }
-
- getNextTransition(instant) {
- if (instant.epochNanoseconds < springForwardEpoch) return new Temporal.Instant(springForwardEpoch);
- if (instant.epochNanoseconds < fallBackEpoch) return new Temporal.Instant(fallBackEpoch);
- return null;
- }
-
- toString() {
- return "Custom/Spring_Fall";
- }
- }
- return new SpringForwardFallBackTimeZone();
- },
-
- /*
- * Returns an object that will append logs of any Gets or Calls of its valueOf
- * or toString properties to the array calls. Both valueOf and toString will
- * return the actual primitiveValue. propertyName is used in the log.
- */
- toPrimitiveObserver(calls, primitiveValue, propertyName) {
- return {
- get valueOf() {
- calls.push(`get ${propertyName}.valueOf`);
- return function () {
- calls.push(`call ${propertyName}.valueOf`);
- return primitiveValue;
- };
- },
- get toString() {
- calls.push(`get ${propertyName}.toString`);
- return function () {
- calls.push(`call ${propertyName}.toString`);
- if (primitiveValue === undefined) return undefined;
- return primitiveValue.toString();
- };
- },
- };
- },
-};
diff --git a/polyfill/test/intl402/DateTimeFormat/prototype/format/temporal-objects-resolved-time-zone.js b/polyfill/test/intl402/DateTimeFormat/prototype/format/temporal-objects-resolved-time-zone.js
deleted file mode 100644
index 7abef1bb3d..0000000000
--- a/polyfill/test/intl402/DateTimeFormat/prototype/format/temporal-objects-resolved-time-zone.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-datetime-format-functions
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const formatter = new Intl.DateTimeFormat("en", { timeZone: "Pacific/Apia" });
-
-const date = new Temporal.PlainDate(2021, 8, 4);
-const dateResult = formatter.format(date);
-assert.sameValue(dateResult, "8/4/2021", "plain date");
-
-const datetime1 = new Temporal.PlainDateTime(2021, 8, 4, 0, 30, 45, 123, 456, 789);
-const datetimeResult1 = formatter.format(datetime1);
-assert.sameValue(datetimeResult1, "8/4/2021, 12:30:45 AM", "plain datetime close to beginning of day");
-const datetime2 = new Temporal.PlainDateTime(2021, 8, 4, 23, 30, 45, 123, 456, 789);
-const datetimeResult2 = formatter.format(datetime2);
-assert.sameValue(datetimeResult2, "8/4/2021, 11:30:45 PM", "plain datetime close to end of day");
-
-const monthDay = new Temporal.PlainMonthDay(8, 4, "gregory");
-const monthDayResult = formatter.format(monthDay);
-assert.sameValue(monthDayResult, "8/4", "plain month-day");
-
-const time1 = new Temporal.PlainTime(0, 30, 45, 123, 456, 789);
-const timeResult1 = formatter.format(time1);
-assert.sameValue(timeResult1, "12:30:45 AM", "plain time close to beginning of day");
-const time2 = new Temporal.PlainTime(23, 30, 45, 123, 456, 789);
-const timeResult2 = formatter.format(time2);
-assert.sameValue(timeResult2, "11:30:45 PM", "plain time close to end of day");
-
-const month = new Temporal.PlainYearMonth(2021, 8, "gregory");
-const monthResult = formatter.format(month);
-assert.sameValue(monthResult, "8/2021", "plain year-month");
diff --git a/polyfill/test/intl402/DateTimeFormat/prototype/formatRange/temporal-objects-resolved-time-zone.js b/polyfill/test/intl402/DateTimeFormat/prototype/formatRange/temporal-objects-resolved-time-zone.js
deleted file mode 100644
index 3e495ceedb..0000000000
--- a/polyfill/test/intl402/DateTimeFormat/prototype/formatRange/temporal-objects-resolved-time-zone.js
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-datetime-format-functions
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal, Intl.DateTimeFormat-formatRange]
----*/
-
-const formatter = new Intl.DateTimeFormat("en", { timeZone: "Pacific/Apia" });
-
-const date1 = new Temporal.PlainDate(2021, 8, 4);
-const date2 = new Temporal.PlainDate(2021, 8, 5);
-const dateResult = formatter.formatRange(date1, date2);
-assert.sameValue(dateResult, "8/4/2021 – 8/5/2021", "plain dates");
-
-const datetime1 = new Temporal.PlainDateTime(2021, 8, 4, 0, 30, 45, 123, 456, 789);
-const datetime2 = new Temporal.PlainDateTime(2021, 8, 4, 23, 30, 45, 123, 456, 789);
-const datetimeResult = formatter.formatRange(datetime1, datetime2);
-assert.sameValue(datetimeResult, "8/4/2021, 12:30:45 AM – 11:30:45 PM", "plain datetimes");
-
-const monthDay1 = new Temporal.PlainMonthDay(8, 4, "gregory");
-const monthDay2 = new Temporal.PlainMonthDay(8, 5, "gregory");
-const monthDayResult = formatter.formatRange(monthDay1, monthDay2);
-assert.sameValue(monthDayResult, "8/4 – 8/5", "plain month-days");
-
-const time1 = new Temporal.PlainTime(0, 30, 45, 123, 456, 789);
-const time2 = new Temporal.PlainTime(23, 30, 45, 123, 456, 789);
-const timeResult = formatter.formatRange(time1, time2);
-assert.sameValue(timeResult, "12:30:45 AM – 11:30:45 PM", "plain times");
-
-const month1 = new Temporal.PlainYearMonth(2021, 8, "gregory");
-const month2 = new Temporal.PlainYearMonth(2021, 9, "gregory");
-const monthResult = formatter.formatRange(month1, month2);
-assert.sameValue(monthResult, "8/2021 – 9/2021", "plain year-months");
diff --git a/polyfill/test/intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-resolved-time-zone.js b/polyfill/test/intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-resolved-time-zone.js
deleted file mode 100644
index 1c433c431f..0000000000
--- a/polyfill/test/intl402/DateTimeFormat/prototype/formatRangeToParts/temporal-objects-resolved-time-zone.js
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-datetime-format-functions
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-includes: [deepEqual.js]
-features: [Temporal, Intl.DateTimeFormat-formatRange]
----*/
-
-const formatter = new Intl.DateTimeFormat("en", { timeZone: "Pacific/Apia" });
-
-const date1 = new Temporal.PlainDate(2021, 8, 4);
-const date2 = new Temporal.PlainDate(2021, 8, 5);
-const dateResult = formatter.formatRangeToParts(date1, date2);
-assert.deepEqual(dateResult, [
- { type: "month", value: "8", source: "startRange" },
- { type: "literal", value: "/", source: "startRange" },
- { type: "day", value: "4", source: "startRange" },
- { type: "literal", value: "/", source: "startRange" },
- { type: "year", value: "2021", source: "startRange" },
- { type: "literal", value: " – ", source: "shared" },
- { type: "month", value: "8", source: "endRange" },
- { type: "literal", value: "/", source: "endRange" },
- { type: "day", value: "5", source: "endRange" },
- { type: "literal", value: "/", source: "endRange" },
- { type: "year", value: "2021", source: "endRange" },
-], "plain dates");
-
-const datetime1 = new Temporal.PlainDateTime(2021, 8, 4, 0, 30, 45, 123, 456, 789);
-const datetime2 = new Temporal.PlainDateTime(2021, 8, 4, 23, 30, 45, 123, 456, 789);
-const datetimeResult = formatter.formatRangeToParts(datetime1, datetime2);
-assert.deepEqual(datetimeResult, [
- { type: "month", value: "8", source: "shared" },
- { type: "literal", value: "/", source: "shared" },
- { type: "day", value: "4", source: "shared" },
- { type: "literal", value: "/", source: "shared" },
- { type: "year", value: "2021", source: "shared" },
- { type: "literal", value: ", ", source: "shared" },
- { type: "hour", value: "12", source: "startRange" },
- { type: "literal", value: ":", source: "startRange" },
- { type: "minute", value: "30", source: "startRange" },
- { type: "literal", value: ":", source: "startRange" },
- { type: "second", value: "45", source: "startRange" },
- { type: "literal", value: " ", source: "startRange" },
- { type: "dayPeriod", value: "AM", source: "startRange" },
- { type: "literal", value: " – ", source: "shared" },
- { type: "hour", value: "11", source: "endRange" },
- { type: "literal", value: ":", source: "endRange" },
- { type: "minute", value: "30", source: "endRange" },
- { type: "literal", value: ":", source: "endRange" },
- { type: "second", value: "45", source: "endRange" },
- { type: "literal", value: " ", source: "endRange" },
- { type: "dayPeriod", value: "PM", source: "endRange" },
-], "plain datetimes");
-
-const monthDay1 = new Temporal.PlainMonthDay(8, 4, "gregory");
-const monthDay2 = new Temporal.PlainMonthDay(8, 5, "gregory");
-const monthDayResult = formatter.formatRangeToParts(monthDay1, monthDay2);
-assert.deepEqual(monthDayResult, [
- { type: "month", value: "8", source: "startRange" },
- { type: "literal", value: "/", source: "startRange" },
- { type: "day", value: "4", source: "startRange" },
- { type: "literal", value: " – ", source: "shared" },
- { type: "month", value: "8", source: "endRange" },
- { type: "literal", value: "/", source: "endRange" },
- { type: "day", value: "5", source: "endRange" },
-], "plain month-days");
-
-const time1 = new Temporal.PlainTime(0, 30, 45, 123, 456, 789);
-const time2 = new Temporal.PlainTime(23, 30, 45, 123, 456, 789);
-const timeResult = formatter.formatRangeToParts(time1, time2);
-assert.deepEqual(timeResult, [
- { type: "hour", value: "12", source: "startRange" },
- { type: "literal", value: ":", source: "startRange" },
- { type: "minute", value: "30", source: "startRange" },
- { type: "literal", value: ":", source: "startRange" },
- { type: "second", value: "45", source: "startRange" },
- { type: "literal", value: " ", source: "startRange" },
- { type: "dayPeriod", value: "AM", source: "startRange" },
- { type: "literal", value: " – ", source: "shared" },
- { type: "hour", value: "11", source: "endRange" },
- { type: "literal", value: ":", source: "endRange" },
- { type: "minute", value: "30", source: "endRange" },
- { type: "literal", value: ":", source: "endRange" },
- { type: "second", value: "45", source: "endRange" },
- { type: "literal", value: " ", source: "endRange" },
- { type: "dayPeriod", value: "PM", source: "endRange" },
-], "plain times");
-
-const month1 = new Temporal.PlainYearMonth(2021, 8, "gregory");
-const month2 = new Temporal.PlainYearMonth(2021, 9, "gregory");
-const monthResult = formatter.formatRangeToParts(month1, month2);
-assert.deepEqual(monthResult, [
- { type: "month", value: "8", source: "startRange" },
- { type: "literal", value: "/", source: "startRange" },
- { type: "year", value: "2021", source: "startRange" },
- { type: "literal", value: " – ", source: "shared" },
- { type: "month", value: "9", source: "endRange" },
- { type: "literal", value: "/", source: "endRange" },
- { type: "year", value: "2021", source: "endRange" },
-], "plain year-months");
diff --git a/polyfill/test/intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-resolved-time-zone.js b/polyfill/test/intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-resolved-time-zone.js
deleted file mode 100644
index 9264390546..0000000000
--- a/polyfill/test/intl402/DateTimeFormat/prototype/formatToParts/temporal-objects-resolved-time-zone.js
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-Intl.DateTimeFormat.prototype.formatToParts
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-includes: [deepEqual.js]
-features: [Temporal]
----*/
-
-const formatter = new Intl.DateTimeFormat("en", { timeZone: "Pacific/Apia" });
-
-const date = new Temporal.PlainDate(2021, 8, 4);
-const dateResult = formatter.formatToParts(date);
-assert.deepEqual(dateResult, [
- { type: "month", value: "8" },
- { type: "literal", value: "/" },
- { type: "day", value: "4" },
- { type: "literal", value: "/" },
- { type: "year", value: "2021" },
-], "plain date");
-
-const datetime1 = new Temporal.PlainDateTime(2021, 8, 4, 0, 30, 45, 123, 456, 789);
-const datetimeResult1 = formatter.formatToParts(datetime1);
-assert.deepEqual(datetimeResult1, [
- { type: "month", value: "8" },
- { type: "literal", value: "/" },
- { type: "day", value: "4" },
- { type: "literal", value: "/" },
- { type: "year", value: "2021" },
- { type: "literal", value: ", " },
- { type: "hour", value: "12" },
- { type: "literal", value: ":" },
- { type: "minute", value: "30" },
- { type: "literal", value: ":" },
- { type: "second", value: "45" },
- { type: "literal", value: " " },
- { type: "dayPeriod", value: "AM" },
-], "plain datetime close to beginning of day");
-const datetime2 = new Temporal.PlainDateTime(2021, 8, 4, 23, 30, 45, 123, 456, 789);
-const datetimeResult2 = formatter.formatToParts(datetime2);
-assert.deepEqual(datetimeResult2, [
- { type: "month", value: "8" },
- { type: "literal", value: "/" },
- { type: "day", value: "4" },
- { type: "literal", value: "/" },
- { type: "year", value: "2021" },
- { type: "literal", value: ", " },
- { type: "hour", value: "11" },
- { type: "literal", value: ":" },
- { type: "minute", value: "30" },
- { type: "literal", value: ":" },
- { type: "second", value: "45" },
- { type: "literal", value: " " },
- { type: "dayPeriod", value: "PM" },
-], "plain datetime close to end of day");
-
-const monthDay = new Temporal.PlainMonthDay(8, 4, "gregory");
-const monthDayResult = formatter.formatToParts(monthDay);
-assert.deepEqual(monthDayResult, [
- { type: "month", value: "8" },
- { type: "literal", value: "/" },
- { type: "day", value: "4" },
-], "plain month-day");
-
-const time1 = new Temporal.PlainTime(0, 30, 45, 123, 456, 789);
-const timeResult1 = formatter.formatToParts(time1);
-assert.deepEqual(timeResult1, [
- { type: "hour", value: "12" },
- { type: "literal", value: ":" },
- { type: "minute", value: "30" },
- { type: "literal", value: ":" },
- { type: "second", value: "45" },
- { type: "literal", value: " " },
- { type: "dayPeriod", value: "AM" },
-], "plain time close to beginning of day");
-const time2 = new Temporal.PlainTime(23, 30, 45, 123, 456, 789);
-const timeResult2 = formatter.formatToParts(time2);
-assert.deepEqual(timeResult2, [
- { type: "hour", value: "11" },
- { type: "literal", value: ":" },
- { type: "minute", value: "30" },
- { type: "literal", value: ":" },
- { type: "second", value: "45" },
- { type: "literal", value: " " },
- { type: "dayPeriod", value: "PM" },
-], "plain time close to end of day");
-
-const month = new Temporal.PlainYearMonth(2021, 8, "gregory");
-const monthResult = formatter.formatToParts(month);
-assert.deepEqual(monthResult, [
- { type: "month", value: "8" },
- { type: "literal", value: "/" },
- { type: "year", value: "2021" },
-], "plain year-month");
diff --git a/polyfill/test/intl402/Temporal/Calendar/constructor/from/basic.js b/polyfill/test/intl402/Temporal/Calendar/constructor/from/basic.js
deleted file mode 100644
index 400a8911ed..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/constructor/from/basic.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.calendar.from
-description: Support for non-ISO calendars in Calendar.from().
-features: [Temporal]
----*/
-
-function test(item, id = item) {
- const calendar = Temporal.Calendar.from(item);
- assert(calendar instanceof Temporal.Calendar, `Calendar.from(${item}) is a calendar`);
- assert.sameValue(calendar.id, id, `Calendar.from(${item}) has the correct ID`);
-}
-test("gregory");
-test("japanese");
-test("1994-11-05T08:15:30-05:00[u-ca=gregory]", "gregory");
-test("1994-11-05T13:15:30Z[u-ca=japanese]", "japanese");
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js
deleted file mode 100644
index 238d684530..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/dateAdd/date-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dateadd
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const duration = new Temporal.Duration(1);
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.dateAdd({ era: "ad", eraYear: inf, month: 5, day: 2, calendar: instance }, duration, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.dateAdd({ era: "ad", eraYear: obj, month: 5, day: 2, calendar: instance }, duration, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index 94d8a0e6ab..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/dateFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.datefromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.dateFromFields({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.dateFromFields({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js
deleted file mode 100644
index 5c836456b2..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/dateUntil/argument-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dateuntil
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const other = new Temporal.PlainDate(2001, 6, 3);
-const base = { era: "ad", month: 5, day: 2, calendar: instance };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.dateUntil({ ...base, eraYear: inf }, other), `eraYear property cannot be ${inf}`);
-
- assert.throws(RangeError, () => instance.dateUntil(other, { ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, "eraYear");
- assert.throws(RangeError, () => instance.dateUntil({ ...base, eraYear: obj1 }, other));
- assert.compareArray(calls1, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, "eraYear");
- assert.throws(RangeError, () => instance.dateUntil(other, { ...base, eraYear: obj2 }));
- assert.compareArray(calls2, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/day/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/day/infinity-throws-rangeerror.js
deleted file mode 100644
index d4ce585df7..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/day/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.day
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.day({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.day({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js
deleted file mode 100644
index d85e547f05..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfWeek/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dayofweek
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.dayOfWeek({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.dayOfWeek({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js
deleted file mode 100644
index a884319166..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/dayOfYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.dayofyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.dayOfYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.dayOfYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js
deleted file mode 100644
index c39c875c41..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInMonth/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinmonth
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.daysInMonth({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.daysInMonth({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js
deleted file mode 100644
index d192101be1..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInWeek/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinweek
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.daysInWeek({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.daysInWeek({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 7f60f72328..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/daysInYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.daysinyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.daysInYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.daysInYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/era/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/era/infinity-throws-rangeerror.js
deleted file mode 100644
index a7a27dde31..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/era/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.era
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.era({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.era({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/eraYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/eraYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 1d20c67e7b..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/eraYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.erayear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.eraYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.eraYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 7b35c96281..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/inLeapYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.inleapyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.inLeapYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.inLeapYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/month/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/month/infinity-throws-rangeerror.js
deleted file mode 100644
index 6303b19aa8..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/month/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.month
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.month({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.month({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/monthCode/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/monthCode/infinity-throws-rangeerror.js
deleted file mode 100644
index 0723a48a3b..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/monthCode/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthcode
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.monthCode({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.monthCode({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index d25aed4965..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/monthDayFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthdayfromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.monthDayFromFields({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.monthDayFromFields({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 20f63ef9dc..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/monthsInYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.monthsinyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.monthsInYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.monthsInYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js
deleted file mode 100644
index 63b892aa86..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/weekOfYear/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.weekofyear
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.weekOfYear({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.weekOfYear({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/year/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/year/infinity-throws-rangeerror.js
deleted file mode 100644
index 0993a4ec33..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/year/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.year
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.year({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.year({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js
deleted file mode 100644
index d883bb2b9a..0000000000
--- a/polyfill/test/intl402/Temporal/Calendar/prototype/yearMonthFromFields/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.calendar.prototype.yearmonthfromfields
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Calendar("gregory");
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => instance.yearMonthFromFields({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.yearMonthFromFields({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index d2b0b866ce..0000000000
--- a/polyfill/test/intl402/Temporal/Duration/prototype/add/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.add
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.add(instance, { relativeTo: { ...base, eraYear: inf } }), `eraYear property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.add(instance, { relativeTo: { ...base, eraYear: obj } }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index b55a16228a..0000000000
--- a/polyfill/test/intl402/Temporal/Duration/prototype/round/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.round
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.round({ smallestUnit: "seconds", relativeTo: { ...base, eraYear: inf } }), `eraYear property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.round({ smallestUnit: "seconds", relativeTo: { ...base, eraYear: obj } }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index 75d223b85e..0000000000
--- a/polyfill/test/intl402/Temporal/Duration/prototype/subtract/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.subtract
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.subtract(instance, { relativeTo: { ...base, eraYear: inf } }), `eraYear property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.subtract(instance, { relativeTo: { ...base, eraYear: obj } }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js
deleted file mode 100644
index 9fa5335ff4..0000000000
--- a/polyfill/test/intl402/Temporal/Duration/prototype/total/relativeto-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.duration.prototype.total
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.Duration(1, 2, 3, 4, 5, 6, 7, 987, 654, 321);
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.total({ unit: "seconds", relativeTo: { ...base, eraYear: inf } }), `eraYear property cannot be ${inf} in relativeTo`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.total({ unit: "seconds", relativeTo: { ...base, eraYear: obj } }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDate/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDate/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index 5912c52e5a..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plaindate.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainDate(2000, 5, 2, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => Temporal.PlainDate.compare({ ...base, eraYear: inf }, other), `eraYear property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainDate.compare(other, { ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDate.compare({ ...base, eraYear: obj1 }, other));
- assert.compareArray(calls1, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDate.compare(other, { ...base, eraYear: obj2 }));
- assert.compareArray(calls2, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDate/constructor/from/basic.js b/polyfill/test/intl402/Temporal/PlainDate/constructor/from/basic.js
deleted file mode 100644
index c12cab6e14..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/constructor/from/basic.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.from
-description: Basic tests for PlainDate.from() with the Gregorian calendar.
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-TemporalHelpers.assertPlainDate(
- Temporal.PlainDate.from("1999-12-31[u-ca=gregory]"),
- 1999, 12, "M12", 31, "string era CE", "ce", 1999);
-
-TemporalHelpers.assertPlainDate(
- Temporal.PlainDate.from("-000001-12-31[u-ca=gregory]"),
- -1, 12, "M12", 31, "string era BCE", "bce", 2);
-
-TemporalHelpers.assertPlainDate(
- Temporal.PlainDate.from({ era: "ce", eraYear: 1999, month: 12, day: 31, calendar: "gregory" }),
- 1999, 12, "M12", 31, "property bag explicit era CE", "ce", 1999);
-
-TemporalHelpers.assertPlainDate(
- Temporal.PlainDate.from({ year: 1999, month: 12, day: 31, calendar: "gregory" }),
- 1999, 12, "M12", 31, "property bag implicit era CE", "ce", 1999);
-
-TemporalHelpers.assertPlainDate(
- Temporal.PlainDate.from({ era: "bce", eraYear: 2, month: 12, day: 31, calendar: "gregory" }),
- -1, 12, "M12", 31, "property bag era BCE", "bce", 2);
diff --git a/polyfill/test/intl402/Temporal/PlainDate/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDate/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 8f0efdcafd..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainDate.from({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDate.from({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDate/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDate/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index 8b8c3fbac8..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDate/prototype/eraYear/calendar-returns-infinity.js b/polyfill/test/intl402/Temporal/PlainDate/prototype/eraYear/calendar-returns-infinity.js
deleted file mode 100644
index cd143556b0..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/prototype/eraYear/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindate.prototype.erayear
-description: Getter throws if the calendar returns ±∞ from its eraYear method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- eraYear() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDate(2000, 5, 2, pos);
-assert.throws(RangeError, () => instance1.eraYear);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDate(2000, 5, 2, neg);
-assert.throws(RangeError, () => instance2.eraYear);
diff --git a/polyfill/test/intl402/Temporal/PlainDate/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDate/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index ca95678707..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDate/prototype/toLocaleString/resolved-time-zone.js b/polyfill/test/intl402/Temporal/PlainDate/prototype/toLocaleString/resolved-time-zone.js
deleted file mode 100644
index 6287b4baf0..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/prototype/toLocaleString/resolved-time-zone.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindate.prototype.tolocalestring
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const date = new Temporal.PlainDate(2021, 8, 4);
-const result = date.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result, "8/4/2021");
diff --git a/polyfill/test/intl402/Temporal/PlainDate/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDate/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 7eaae75ee9..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDate/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindate.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDate(2000, 5, 2, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index ea0e364760..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainDateTime(2000, 5, 2, 15, "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare({ ...base, eraYear: inf }, other), `eraYear property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(other, { ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare({ ...base, eraYear: obj1 }, other));
- assert.compareArray(calls1, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDateTime.compare(other, { ...base, eraYear: obj2 }));
- assert.compareArray(calls2, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index ead46deba6..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainDateTime.from({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainDateTime.from({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index 3760a57391..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/eraYear/calendar-returns-infinity.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/eraYear/calendar-returns-infinity.js
deleted file mode 100644
index 0655d8ee9a..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/eraYear/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plaindatetime.prototype.erayear
-description: Getter throws if the calendar returns ±∞ from its eraYear method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- eraYear() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, pos);
-assert.throws(RangeError, () => instance1.eraYear);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainDateTime(2000, 5, 2, 15, 30, 45, 987, 654, 321, neg);
-assert.throws(RangeError, () => instance2.eraYear);
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 10e5b7d17e..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/resolved-time-zone.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/resolved-time-zone.js
deleted file mode 100644
index c3f1aaa017..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/toLocaleString/resolved-time-zone.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaindatetime.prototype.tolocalestring
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const datetime1 = new Temporal.PlainDateTime(2021, 8, 4, 0, 30, 45, 123, 456, 789);
-const result1 = datetime1.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result1, "8/4/2021, 12:30:45 AM");
-
-const datetime2 = new Temporal.PlainDateTime(2021, 8, 4, 23, 30, 45, 123, 456, 789);
-const result2 = datetime2.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result2, "8/4/2021, 11:30:45 PM");
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 537274e1bb..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index a6c7f88d5b..0000000000
--- a/polyfill/test/intl402/Temporal/PlainDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaindatetime.prototype.withplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainDateTime(2000, 5, 2, 15, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainMonthDay/constructor/from/basic.js b/polyfill/test/intl402/Temporal/PlainMonthDay/constructor/from/basic.js
deleted file mode 100644
index d4e09219d7..0000000000
--- a/polyfill/test/intl402/Temporal/PlainMonthDay/constructor/from/basic.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.from
-description: Basic tests for PlainMonthDay.from() with the Gregorian calendar.
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const tests = [
- { era: "ce", eraYear: 2019, month: 11, day: 18, calendar: "gregory" },
- { era: "ce", eraYear: 1979, month: 11, day: 18, calendar: "gregory" },
- { era: "ce", eraYear: 2019, monthCode: "M11", day: 18, calendar: "gregory" },
- { era: "ce", eraYear: 1979, monthCode: "M11", day: 18, calendar: "gregory" },
- { year: 1970, month: 11, day: 18, calendar: "gregory" },
- { era: "ce", eraYear: 1970, month: 11, day: 18, calendar: "gregory" },
-];
-
-for (const fields of tests) {
- const result = Temporal.PlainMonthDay.from(fields);
- TemporalHelpers.assertPlainMonthDay(result, "M11", 18);
- assert.sameValue(result.calendar.id, "gregory");
- assert.sameValue(result.toString(), "1972-11-18[u-ca=gregory]");
-}
-
-assert.throws(TypeError, () => Temporal.PlainMonthDay.from({ month: 11, day: 18, calendar: "gregory" }));
diff --git a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index efb8cbf4dd..0000000000
--- a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2, "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/resolved-time-zone.js b/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/resolved-time-zone.js
deleted file mode 100644
index a8b7a4091a..0000000000
--- a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toLocaleString/resolved-time-zone.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainmonthday.prototype.tolocalestring
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const monthDay = new Temporal.PlainMonthDay(8, 4, "gregory");
-const result = monthDay.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result, "8/4");
diff --git a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index 1ab5ed9937..0000000000
--- a/polyfill/test/intl402/Temporal/PlainMonthDay/prototype/toPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws a RangeError if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainmonthday.prototype.toplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainMonthDay(5, 2, "gregory");
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.toPlainDate({ era: "ad", eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.toPlainDate({ era: "ad", eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainTime/prototype/toLocaleString/resolved-time-zone.js b/polyfill/test/intl402/Temporal/PlainTime/prototype/toLocaleString/resolved-time-zone.js
deleted file mode 100644
index 55227b799c..0000000000
--- a/polyfill/test/intl402/Temporal/PlainTime/prototype/toLocaleString/resolved-time-zone.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plaintime.prototype.tolocalestring
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const time1 = new Temporal.PlainTime(0, 30, 45, 123, 456, 789);
-const result1 = time1.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result1, "12:30:45 AM");
-
-const time2 = new Temporal.PlainTime(23, 30, 45, 123, 456, 789);
-const result2 = time2.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result2, "11:30:45 PM");
diff --git a/polyfill/test/intl402/Temporal/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js
deleted file mode 100644
index 5b858b9da5..0000000000
--- a/polyfill/test/intl402/Temporal/PlainTime/prototype/toPlainDateTime/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.toplaindatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15);
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.toPlainDateTime({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.toPlainDateTime({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js
deleted file mode 100644
index 81aa6d8f72..0000000000
--- a/polyfill/test/intl402/Temporal/PlainTime/prototype/toZonedDateTime/plaindate-infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plaintime.prototype.tozoneddatetime
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainTime(15);
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, eraYear: inf } }), `eraYear property cannot be ${inf} in plainDate`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.toZonedDateTime({ timeZone: "UTC", plainDate: { ...base, eraYear: obj } }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index c881327a04..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.PlainYearMonth(2000, 5, "gregory");
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare({ ...base, eraYear: inf }, other), `eraYear property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare(other, { ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare({ ...base, eraYear: obj1 }, other));
- assert.compareArray(calls1, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainYearMonth.compare(other, { ...base, eraYear: obj2 }));
- assert.compareArray(calls2, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 22594e69b6..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.PlainYearMonth.from({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.PlainYearMonth.from({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index eaebc9b397..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5, "gregory");
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/eraYear/calendar-returns-infinity.js b/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/eraYear/calendar-returns-infinity.js
deleted file mode 100644
index f8b9689115..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/eraYear/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.plainyearmonth.prototype.erayear
-description: Getter throws if the calendar returns ±∞ from its eraYear method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- eraYear() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.PlainYearMonth(2000, 5, pos);
-assert.throws(RangeError, () => instance1.eraYear);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.PlainYearMonth(2000, 5, neg);
-assert.throws(RangeError, () => instance2.eraYear);
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 20e322bff8..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5, "gregory");
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/resolved-time-zone.js b/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/resolved-time-zone.js
deleted file mode 100644
index 9e90adef38..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/toLocaleString/resolved-time-zone.js
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.plainyearmonth.prototype.tolocalestring
-description: A time zone in resolvedOptions with a large offset still produces the correct string
-locale: [en]
-features: [Temporal]
----*/
-
-const month = new Temporal.PlainYearMonth(2021, 8, "gregory");
-const result = month.toLocaleString("en", { timeZone: "Pacific/Apia" });
-assert.sameValue(result, "8/2021");
diff --git a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 9ee6e5fafa..0000000000
--- a/polyfill/test/intl402/Temporal/PlainYearMonth/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.plainyearmonth.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.PlainYearMonth(2000, 5, "gregory");
-const base = { era: "ad", month: 5, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/TimeZone/constructor/constructor/basic.js b/polyfill/test/intl402/Temporal/TimeZone/constructor/constructor/basic.js
deleted file mode 100644
index 08722358ae..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/constructor/constructor/basic.js
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone
-description: Basic tests for the Temporal.TimeZone constructor.
-features: [Temporal]
----*/
-
-const valid = [
- ["Europe/Vienna"],
- ["America/New_York"],
- ["Africa/CAIRO", "Africa/Cairo"],
- ["Asia/Ulan_Bator", "Asia/Ulaanbaatar"],
- ["GMT", "UTC"],
-];
-for (const [zone, id = zone] of valid) {
- const result = new Temporal.TimeZone(zone);
- assert.sameValue(typeof result, "object", `object should be created for ${zone}`);
- assert.sameValue(result.id, id, `id for ${zone} should be ${id}`);
-}
-
-const invalid = ["+00:01.1", "-01.1"];
-for (const zone of invalid) {
- assert.throws(RangeError, () => new Temporal.TimeZone(zone), `should throw for ${zone}`);
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-invalid.js b/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-invalid.js
deleted file mode 100644
index 6462e30693..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-invalid.js
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: TimeZone.from() with bad offsets in ISO strings.
-features: [Temporal]
----*/
-
-const invalids = [
- "1994-11-05T08:15:30-05:00[UTC]",
- "1994-11-05T13:15:30+00:00[America/New_York]",
- "1994-11-05T13:15:30-03[Europe/Brussels]",
-];
-
-for (const item of invalids) {
- assert.throws(RangeError, () => Temporal.TimeZone.from(item), `Throws for ${item}`);
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-object.js b/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-object.js
deleted file mode 100644
index 7991c341bd..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-object.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: An object is returned unchanged
-features: [Temporal]
----*/
-
-class CustomTimeZone extends Temporal.TimeZone {}
-
-const objects = [
- new Temporal.TimeZone("Europe/Madrid"),
- new CustomTimeZone("Africa/Accra"),
-];
-
-const thisValues = [
- Temporal.TimeZone,
- CustomTimeZone,
- {},
- null,
- undefined,
- 7,
-];
-
-for (const thisValue of thisValues) {
- for (const object of objects) {
- const result = Temporal.TimeZone.from.call(thisValue, object);
- assert.sameValue(result, object);
- }
-
- const zdt = new Temporal.ZonedDateTime(0n, "Africa/Cairo");
- const fromZdt = Temporal.TimeZone.from.call(thisValue, zdt);
- assert.sameValue(fromZdt, zdt.timeZone);
- assert.sameValue(fromZdt.id, "Africa/Cairo");
-
- const tz = new Temporal.TimeZone("Africa/Cairo");
- const fromPropertyBagObject = Temporal.TimeZone.from.call(thisValue, { timeZone: tz });
- assert.sameValue(fromPropertyBagObject, tz);
- assert.sameValue(fromPropertyBagObject.id, "Africa/Cairo");
-
- const fromPropertyBagString = Temporal.TimeZone.from.call(thisValue, { timeZone: "Africa/Cairo" });
- assert(fromPropertyBagString instanceof Temporal.TimeZone);
- assert.sameValue(fromPropertyBagString.id, "Africa/Cairo");
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-valid.js b/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-valid.js
deleted file mode 100644
index 69a0161fcf..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/constructor/from/argument-valid.js
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright (C) 2020 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.from
-description: Built-in time zones are parsed correctly out of valid strings
-features: [Temporal]
----*/
-
-const valids = [
- ["Africa/Bissau"],
- ["America/Belem"],
- ["Europe/Vienna"],
- ["America/New_York"],
- ["Africa/CAIRO", "Africa/Cairo"],
- ["Asia/Ulan_Bator", "Asia/Ulaanbaatar"],
- ["GMT", "UTC"],
- ["etc/gmt", "UTC"],
- ["1994-11-05T08:15:30-05:00[America/New_York]", "America/New_York"],
- ["1994-11-05T08:15:30-05[America/New_York]", "America/New_York"],
- ["1994-11-05T08:15:30\u221205:00[America/New_York]", "America/New_York"],
- ["1994-11-05T08:15:30\u221205[America/New_York]", "America/New_York"],
-];
-
-for (const [valid, canonical = valid] of valids) {
- const result = Temporal.TimeZone.from(valid);
- assert.sameValue(Object.getPrototypeOf(result), Temporal.TimeZone.prototype);
- assert.sameValue(result.id, canonical);
- assert.sameValue(result.toString(), canonical);
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js
deleted file mode 100644
index d525a22fb0..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/prototype/getInstantFor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.timezone.prototype.getinstantfor
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.getInstantFor({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.getInstantFor({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js b/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js
deleted file mode 100644
index 1635fc858a..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetNanosecondsFor/instant-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetnanosecondsfor
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("America/Vancouver");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getOffsetNanosecondsFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getOffsetNanosecondsFor(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-const valids = [
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-];
-for (const str of valids) {
- const result = instance.getOffsetNanosecondsFor(str);
- assert.sameValue(result, -28800e9);
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetStringFor/instant-string.js b/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetStringFor/instant-string.js
deleted file mode 100644
index 8fa65ff52d..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/prototype/getOffsetStringFor/instant-string.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getoffsetstringfor
-description: Conversion of ISO date-time strings to Temporal.TimeZone instances
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("America/Vancouver");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getOffsetStringFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getOffsetStringFor(str), "date-time + IANA annotation is not an instant");
-
-// The following are all valid strings so should not throw:
-
-const valids = [
- "1970-01-01T00:00Z",
- "1970-01-01T00:00+01:00",
- "1970-01-01T00:00Z[America/Vancouver]",
- "1970-01-01T00:00+01:00[America/Vancouver]",
-];
-for (const str of valids) {
- const result = instance.getOffsetStringFor(str);
- assert.sameValue(result, "-08:00");
-}
diff --git a/polyfill/test/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/instant-string.js b/polyfill/test/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/instant-string.js
deleted file mode 100644
index 2c2973e72f..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/instant-string.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-temporal.timezone.prototype.getplaindatetimefor
-description: Conversion of ISO date-time strings to Temporal.Instant instances
-includes: [temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("America/Vancouver");
-
-let str = "1970-01-01T00:00";
-assert.throws(RangeError, () => instance.getPlainDateTimeFor(str), "bare date-time string is not an instant");
-str = "1970-01-01T00:00[America/Vancouver]";
-assert.throws(RangeError, () => instance.getPlainDateTimeFor(str), "date-time + IANA annotation is not an instant");
-
-str = "1970-01-01T00:00Z";
-const result1 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result1, 1969, 12, "M12", 31, 16, 0, 0, 0, 0, 0, "date-time + Z preserves exact time");
-
-str = "1970-01-01T00:00+01:00";
-const result2 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result2, 1969, 12, "M12", 31, 15, 0, 0, 0, 0, 0, "date-time + offset preserves exact time with offset");
-
-str = "1970-01-01T00:00Z[America/Vancouver]";
-const result3 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result3, 1969, 12, "M12", 31, 16, 0, 0, 0, 0, 0, "date-time + Z + IANA annotation ignores the IANA annotation");
-
-str = "1970-01-01T00:00+01:00[America/Vancouver]";
-const result4 = instance.getPlainDateTimeFor(str);
-TemporalHelpers.assertPlainDateTime(result4, 1969, 12, "M12", 31, 15, 0, 0, 0, 0, 0, "date-time + offset + IANA annotation ignores the IANA annotation");
diff --git a/polyfill/test/intl402/Temporal/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js
deleted file mode 100644
index d388f95092..0000000000
--- a/polyfill/test/intl402/Temporal/TimeZone/prototype/getPossibleInstantsFor/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.timezone.prototype.getpossibleinstantsfor
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.TimeZone("UTC");
-const base = { era: "ad", month: 5, day: 2, hour: 15, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.getPossibleInstantsFor({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.getPossibleInstantsFor({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js
deleted file mode 100644
index 32abe5a846..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/compare/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if any value in a property bag for either argument is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.compare
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const other = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, timeZone: "UTC", calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ ...base, eraYear: inf }, other), `eraYear property cannot be ${inf}`);
-
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(other, { ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls1 = [];
- const obj1 = TemporalHelpers.toPrimitiveObserver(calls1, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare({ ...base, eraYear: obj1 }, other));
- assert.compareArray(calls1, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-
- const calls2 = [];
- const obj2 = TemporalHelpers.toPrimitiveObserver(calls2, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.ZonedDateTime.compare(other, { ...base, eraYear: obj2 }));
- assert.compareArray(calls2, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js
deleted file mode 100644
index 73ced05dcb..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/constructor/from/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.from
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const base = { era: "ad", month: 5, day: 2, hour: 15, timeZone: "UTC", calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- ["constrain", "reject"].forEach((overflow) => {
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ ...base, eraYear: inf }, { overflow }), `eraYear property cannot be ${inf} (overflow ${overflow}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => Temporal.ZonedDateTime.from({ ...base, eraYear: obj }, { overflow }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
- });
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js
deleted file mode 100644
index e2e121c5e2..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/equals/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.equals
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, timeZone: "UTC", calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.equals({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/eraYear/calendar-returns-infinity.js b/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/eraYear/calendar-returns-infinity.js
deleted file mode 100644
index b8150c8672..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/eraYear/calendar-returns-infinity.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-esid: sec-get-temporal.zoneddatetime.prototype.erayear
-description: Getter throws if the calendar returns ±∞ from its eraYear method
-features: [Temporal]
----*/
-
-class InfinityCalendar extends Temporal.Calendar {
- constructor(positive) {
- super("iso8601");
- this.positive = positive;
- }
-
- eraYear() {
- return this.positive ? Infinity : -Infinity;
- }
-}
-
-const pos = new InfinityCalendar(true);
-const instance1 = new Temporal.ZonedDateTime(0n, "UTC", pos);
-assert.throws(RangeError, () => instance1.eraYear);
-
-const neg = new InfinityCalendar(false);
-const instance2 = new Temporal.ZonedDateTime(0n, "UTC", neg);
-assert.throws(RangeError, () => instance2.eraYear);
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js
deleted file mode 100644
index 26e0b483e9..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/since/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.since
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, timeZone: "UTC", calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.since({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js
deleted file mode 100644
index 0e4c9b45ab..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/until/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.until
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", "gregory");
-const base = { era: "ad", month: 5, day: 2, hour: 15, timeZone: "UTC", calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.until({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});
diff --git a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js b/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
deleted file mode 100644
index 8e305dfe85..0000000000
--- a/polyfill/test/intl402/Temporal/ZonedDateTime/prototype/withPlainDate/infinity-throws-rangeerror.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// Copyright (C) 2021 Igalia, S.L. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-
-/*---
-description: Throws if eraYear in the property bag is Infinity or -Infinity
-esid: sec-temporal.zoneddatetime.prototype.withplaindate
-includes: [compareArray.js, temporalHelpers.js]
-features: [Temporal]
----*/
-
-const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", "gregory");
-const base = { era: "ad", month: 5, day: 2, calendar: "gregory" };
-
-[Infinity, -Infinity].forEach((inf) => {
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, eraYear: inf }), `eraYear property cannot be ${inf}`);
-
- const calls = [];
- const obj = TemporalHelpers.toPrimitiveObserver(calls, inf, "eraYear");
- assert.throws(RangeError, () => instance.withPlainDate({ ...base, eraYear: obj }));
- assert.compareArray(calls, ["get eraYear.valueOf", "call eraYear.valueOf"], "it fails after fetching the primitive value");
-});