mirror of https://github.com/tc39/test262.git
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
|
// Copyright (C) 2022 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: Getters are not called when converting a ZonedDateTime to a PlainDate.
|
||
|
includes: [compareArray.js]
|
||
|
features: [Temporal]
|
||
|
---*/
|
||
|
|
||
|
const actual = [];
|
||
|
const prototypeDescrs = Object.getOwnPropertyDescriptors(Temporal.ZonedDateTime.prototype);
|
||
|
const getters = ["year", "month", "monthCode", "day", "hour", "minute", "second", "millisecond", "microsecond", "nanosecond", "calendar"];
|
||
|
|
||
|
for (const property of getters) {
|
||
|
Object.defineProperty(Temporal.ZonedDateTime.prototype, 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;
|
||
|
},
|
||
|
};
|
||
|
},
|
||
|
});
|
||
|
}
|
||
|
|
||
|
const arg = new Temporal.ZonedDateTime(0n, "UTC");
|
||
|
Temporal.PlainDate.compare(arg, new Temporal.PlainDate(1976, 11, 18));
|
||
|
Temporal.PlainDate.compare(new Temporal.PlainDate(1976, 11, 18), arg);
|
||
|
assert.compareArray(actual, []);
|