mirror of https://github.com/tc39/test262.git
Change Temporal.TimeZone.prototype.toJSON not to call toString
Normative PR: https://github.com/tc39/proposal-temporal/pull/2482
This commit is contained in:
parent
8c37094e1f
commit
0178aa2114
|
@ -3,25 +3,21 @@
|
||||||
|
|
||||||
/*---
|
/*---
|
||||||
esid: sec-temporal.timezone.prototype.tojson
|
esid: sec-temporal.timezone.prototype.tojson
|
||||||
description: toJSON() calls toString() and returns its value
|
description: toJSON() returns the internal slot value
|
||||||
includes: [compareArray.js, temporalHelpers.js]
|
includes: [compareArray.js, temporalHelpers.js]
|
||||||
features: [Temporal]
|
features: [Temporal]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
const actual = [];
|
const actual = [];
|
||||||
const expected = [
|
|
||||||
'get [Symbol.toPrimitive]',
|
|
||||||
'get toString',
|
|
||||||
'call timeZone.toString',
|
|
||||||
];
|
|
||||||
|
|
||||||
const timeZone = new Temporal.TimeZone("UTC");
|
const timeZone = new Temporal.TimeZone("UTC");
|
||||||
TemporalHelpers.observeProperty(actual, timeZone, Symbol.toPrimitive, undefined);
|
TemporalHelpers.observeProperty(actual, timeZone, Symbol.toPrimitive, undefined);
|
||||||
|
TemporalHelpers.observeProperty(actual, timeZone, "id", "Etc/Bogus");
|
||||||
TemporalHelpers.observeProperty(actual, timeZone, "toString", function () {
|
TemporalHelpers.observeProperty(actual, timeZone, "toString", function () {
|
||||||
actual.push("call timeZone.toString");
|
actual.push("call timeZone.toString");
|
||||||
return "Etc/TAI";
|
return "Etc/TAI";
|
||||||
});
|
});
|
||||||
|
|
||||||
const result = timeZone.toJSON();
|
const result = timeZone.toJSON();
|
||||||
assert.sameValue(result, 'Etc/TAI', 'toString');
|
assert.sameValue(result, "UTC", "toJSON gets the internal slot value");
|
||||||
assert.compareArray(actual, expected);
|
assert.compareArray(actual, [], "should not invoke any observable operations");
|
|
@ -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.timezone.prototype.tojson
|
|
||||||
description: TypeError thrown when toString property not present
|
|
||||||
includes: [compareArray.js, temporalHelpers.js]
|
|
||||||
features: [Temporal]
|
|
||||||
---*/
|
|
||||||
|
|
||||||
const actual = [];
|
|
||||||
const expected = [
|
|
||||||
'get [Symbol.toPrimitive]',
|
|
||||||
'get toString',
|
|
||||||
'get valueOf',
|
|
||||||
];
|
|
||||||
|
|
||||||
const timeZone = new Temporal.TimeZone("UTC");
|
|
||||||
TemporalHelpers.observeProperty(actual, timeZone, Symbol.toPrimitive, undefined);
|
|
||||||
TemporalHelpers.observeProperty(actual, timeZone, "toString", undefined);
|
|
||||||
TemporalHelpers.observeProperty(actual, timeZone, "valueOf", Object.prototype.valueOf);
|
|
||||||
|
|
||||||
assert.throws(TypeError, () => timeZone.toJSON());
|
|
||||||
assert.compareArray(actual, expected);
|
|
|
@ -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());
|
|
Loading…
Reference in New Issue