// 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.now.plaindatetime description: Rejects non-numeric nanosecond values reported by TimeZone-like object features: [BigInt, Symbol, Temporal, arrow-function] ---*/ const invalidValues = [ undefined, null, true, '2020-01-01T12:45:36', Symbol(), 2n, {}, Temporal.PlainDateTime, Temporal.PlainDateTime.prototype ]; for (const dateTime of invalidValues) { let callCount = 0; const timeZone = { getOffsetNanosecondsFor(instant, calendar) { callCount += 1; return dateTime; } }; assert.throws( TypeError, () => Temporal.Now.plainDateTime('iso8601', timeZone), 'Temporal.Now.plainDateTime("iso8601", timeZone) throws a TypeError exception' ); assert.sameValue(callCount, 1, 'The value of callCount is expected to be 1'); }