test262/test/built-ins/Temporal/TimeZone/from/argument-primitive.js

46 lines
918 B
JavaScript

// Copyright (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",
"-00:00[UTC]",
"+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));
}