diff --git a/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js b/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js index 5beaa79ee9..3f30596d1e 100644 --- a/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js +++ b/test/built-ins/Temporal/Duration/compare/calendar-fields-iterable.js @@ -17,8 +17,14 @@ features: [Temporal] const expected = [ "day", + "hour", + "microsecond", + "millisecond", + "minute", "month", "monthCode", + "nanosecond", + "second", "year", ]; diff --git a/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js b/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js index 91309aa2a1..edb6e594c0 100644 --- a/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js +++ b/test/built-ins/Temporal/Duration/prototype/add/calendar-fields-iterable.js @@ -17,8 +17,14 @@ features: [Temporal] const expected = [ "day", + "hour", + "microsecond", + "millisecond", + "minute", "month", "monthCode", + "nanosecond", + "second", "year", ]; diff --git a/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js b/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js new file mode 100644 index 0000000000..7a0899dabe --- /dev/null +++ b/test/built-ins/Temporal/Duration/prototype/add/relativeto-propertybag-no-time-units.js @@ -0,0 +1,15 @@ +// Copyright (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: Missing time units in relativeTo property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.Duration(1, 0, 0, 1); + +let relativeTo = { year: 2000, month: 1, day: 1 }; +const result = instance.add(new Temporal.Duration(0, 0, 0, 0, -24), { relativeTo }); +TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js b/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js index 3703596d71..5210c821fe 100644 --- a/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js +++ b/test/built-ins/Temporal/Duration/prototype/round/calendar-fields-iterable.js @@ -17,8 +17,14 @@ features: [Temporal] const expected = [ "day", + "hour", + "microsecond", + "millisecond", + "minute", "month", "monthCode", + "nanosecond", + "second", "year", ]; diff --git a/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js b/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js new file mode 100644 index 0000000000..101648f44d --- /dev/null +++ b/test/built-ins/Temporal/Duration/prototype/round/relativeto-propertybag-no-time-units.js @@ -0,0 +1,15 @@ +// Copyright (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: Missing time units in relativeTo property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.Duration(1, 0, 0, 0, 24); + +let relativeTo = { year: 2000, month: 1, day: 1 }; +const result = instance.round({ largestUnit: "years", relativeTo }); +TemporalHelpers.assertDuration(result, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js b/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js index b9d887416f..07e590723b 100644 --- a/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js +++ b/test/built-ins/Temporal/Duration/prototype/subtract/calendar-fields-iterable.js @@ -17,8 +17,14 @@ features: [Temporal] const expected = [ "day", + "hour", + "microsecond", + "millisecond", + "minute", "month", "monthCode", + "nanosecond", + "second", "year", ]; diff --git a/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js b/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js new file mode 100644 index 0000000000..1e6f55be77 --- /dev/null +++ b/test/built-ins/Temporal/Duration/prototype/subtract/relativeto-propertybag-no-time-units.js @@ -0,0 +1,15 @@ +// Copyright (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: Missing time units in relativeTo property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.Duration(1, 0, 0, 1); + +let relativeTo = { year: 2000, month: 1, day: 1 }; +const result = instance.subtract(new Temporal.Duration(0, 0, 0, 0, 24), { relativeTo }); +TemporalHelpers.assertDuration(result, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js b/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js index 0bd730fca5..99754046d3 100644 --- a/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js +++ b/test/built-ins/Temporal/Duration/prototype/total/calendar-fields-iterable.js @@ -17,8 +17,14 @@ features: [Temporal] const expected = [ "day", + "hour", + "microsecond", + "millisecond", + "minute", "month", "monthCode", + "nanosecond", + "second", "year", ]; diff --git a/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js b/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js new file mode 100644 index 0000000000..25573ddc02 --- /dev/null +++ b/test/built-ins/Temporal/Duration/prototype/total/relativeto-propertybag-no-time-units.js @@ -0,0 +1,14 @@ +// Copyright (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: Missing time units in relativeTo property bag default to 0 +features: [Temporal] +---*/ + +const instance = new Temporal.Duration(1, 0, 0, 0, 24); + +let relativeTo = { year: 2000, month: 1, day: 1 }; +const result = instance.total({ unit: "days", relativeTo }); +assert.sameValue(result, 367, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..0998479018 --- /dev/null +++ b/test/built-ins/Temporal/PlainDate/prototype/toPlainDateTime/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (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: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainDate(2000, 1, 1); + +const props = {}; +assert.throws(TypeError, () => instance.toPlainDateTime(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.toPlainDateTime(props); +TemporalHelpers.assertPlainDateTime(result, 2000, 1, "M01", 1, 0, 30, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..8b87a02254 --- /dev/null +++ b/test/built-ins/Temporal/PlainDate/prototype/toZonedDateTime/plaintime-propertybag-no-time-units.js @@ -0,0 +1,17 @@ +// Copyright (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: Missing time units in property bag default to 0 +features: [Temporal] +---*/ + +const instance = new Temporal.PlainDate(2000, 1, 1); + +const props = {}; +assert.throws(TypeError, () => instance.toZonedDateTime({ plainTime: props, timeZone: "UTC" }), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.toZonedDateTime({ plainTime: props, timeZone: "UTC" }); +assert.sameValue(result.epochNanoseconds, 946686600_000_000_000n, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..df9181a483 --- /dev/null +++ b/test/built-ins/Temporal/PlainDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (C) 2021 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: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainDateTime(2000, 1, 1, 12, 30, 45, 123, 456, 789); + +const props = {}; +assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.withPlainTime(props); +TemporalHelpers.assertPlainDateTime(result, 2000, 1, "M01", 1, 0, 30, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..9b0d146d55 --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/compare/plaintime-propertybag-no-time-units.js @@ -0,0 +1,15 @@ +// Copyright (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: Missing time units in property bag default to 0 +features: [Temporal] +---*/ + +const props = {}; +assert.throws(TypeError, () => Temporal.PlainTime.compare(props, new Temporal.PlainTime(0, 30)), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = Temporal.PlainTime.compare(props, new Temporal.PlainTime(0, 30)); +assert.sameValue(result, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..05ee48a108 --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/from/plaintime-propertybag-no-time-units.js @@ -0,0 +1,16 @@ +// Copyright (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: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const props = {}; +assert.throws(TypeError, () => Temporal.PlainTime.from(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = Temporal.PlainTime.from(props); +TemporalHelpers.assertPlainTime(result, 0, 30, 0, 0, 0, 0, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..1b4edfa6a2 --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/prototype/equals/plaintime-propertybag-no-time-units.js @@ -0,0 +1,17 @@ +// Copyright (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: Missing time units in property bag default to 0 +features: [Temporal] +---*/ + +const instance = new Temporal.PlainTime(0, 30, 0, 0, 0, 0); + +const props = {}; +assert.throws(TypeError, () => instance.equals(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.equals(props); +assert.sameValue(result, true, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..51be13a45d --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/prototype/since/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (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: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainTime(1, 0, 0, 0, 0, 1); + +const props = {}; +assert.throws(TypeError, () => instance.since(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.since(props); +TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, 30, 0, 0, 0, 1, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..12b344b753 --- /dev/null +++ b/test/built-ins/Temporal/PlainTime/prototype/until/plaintime-propertybag-no-time-units.js @@ -0,0 +1,18 @@ +// Copyright (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: Missing time units in property bag default to 0 +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +const instance = new Temporal.PlainTime(1, 0, 0, 0, 0, 1); + +const props = {}; +assert.throws(TypeError, () => instance.until(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.until(props); +TemporalHelpers.assertDuration(result, 0, 0, 0, 0, 0, -30, 0, 0, 0, -1, "missing time units default to 0"); diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js new file mode 100644 index 0000000000..5ecf3e3374 --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/withPlainTime/plaintime-propertybag-no-time-units.js @@ -0,0 +1,17 @@ +// Copyright (C) 2021 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: Missing time units in property bag default to 0 +features: [Temporal] +---*/ + +const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC"); + +const props = {}; +assert.throws(TypeError, () => instance.withPlainTime(props), "TypeError if at least one property is not present"); + +props.minute = 30; +const result = instance.withPlainTime(props); +assert.sameValue(result.epochNanoseconds, 999995400_000_000_000n, "missing time units default to 0");