Bug 1892041 - Part 2: Update test262. r=spidermonkey-reviewers,dminor
[gecko.git] / js / src / tests / test262 / built-ins / Temporal / ZonedDateTime / prototype / weekOfYear / validate-calendar-value.js
blobb2b83c1d413b5cc25ba4913101c03d938ed40151
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally
2 // Copyright (C) 2022 Igalia, S.L. All rights reserved.
3 // This code is governed by the BSD license found in the LICENSE file.
5 /*---
6 esid: sec-get-temporal.zoneddatetime.prototype.weekofyear
7 description: Validate result returned from calendar weekOfYear() method
8 features: [Temporal]
9 ---*/
11 const badResults = [
12   [null, TypeError],
13   [false, TypeError],
14   [Infinity, RangeError],
15   [-Infinity, RangeError],
16   [NaN, RangeError],
17   [-7, RangeError],
18   [-0.1, RangeError],
19   ["string", TypeError],
20   [Symbol("foo"), TypeError],
21   [7n, TypeError],
22   [{}, TypeError],
23   [true, TypeError],
24   [7.1, RangeError],
25   ["7", TypeError],
26   ["7.5", TypeError],
27   [{valueOf() { return 7; }}, TypeError],
30 badResults.forEach(([result, error]) => {
31   const calendar = new class extends Temporal.Calendar {
32     weekOfYear() {
33       return result;
34     }
35   }("iso8601");
36   const instance = new Temporal.ZonedDateTime(1_000_000_000_000_000_000n, "UTC", calendar);
37   assert.throws(error, () => instance.weekOfYear, `${typeof result} ${String(result)} not converted to positive integer`);
38 });
40 reportCompare(0, 0);