2018-04-16 03:28:34 +02:00
|
|
|
// Copyright (C) 2018 Igalia, S.L. All rights reserved.
|
|
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
|
|
|
|
/*---
|
|
|
|
description: BigInt constructor called with integer argument
|
2018-04-18 22:56:06 +02:00
|
|
|
esid: sec-bigint-constructor-number-value
|
2018-04-16 03:28:34 +02:00
|
|
|
info: |
|
|
|
|
BigInt ( value )
|
|
|
|
|
|
|
|
...
|
|
|
|
3. If Type(prim) is Number, return ? NumberToBigInt(prim).
|
|
|
|
|
|
|
|
NumberToBigInt ( number )
|
|
|
|
|
|
|
|
...
|
|
|
|
3. Return a BigInt representing the mathematical value of number.
|
|
|
|
features: [BigInt]
|
|
|
|
---*/
|
|
|
|
|
2018-04-18 22:56:06 +02:00
|
|
|
assert.sameValue(
|
|
|
|
BigInt(Number.MAX_SAFE_INTEGER), 9007199254740991n,
|
|
|
|
"BigInt(Number.MAX_SAFE_INTEGER) === 9007199254740991n"
|
|
|
|
);
|
2018-04-16 03:28:34 +02:00
|
|
|
|
2018-04-18 22:56:06 +02:00
|
|
|
assert.sameValue(
|
|
|
|
BigInt(-Number.MAX_SAFE_INTEGER), -9007199254740991n,
|
|
|
|
"BigInt(-Number.MAX_SAFE_INTEGER) === -9007199254740991n"
|
|
|
|
);
|
2018-04-16 03:28:34 +02:00
|
|
|
|
2018-04-18 22:56:06 +02:00
|
|
|
assert.throws(RangeError, function() {
|
|
|
|
BigInt(Number.MAX_SAFE_INTEGER + 1);
|
|
|
|
}, "BigInt(Number.MAX_SAFE_INTEGER + 1) throws RangeError");
|
2018-04-16 03:28:34 +02:00
|
|
|
|
2018-04-18 22:56:06 +02:00
|
|
|
assert.throws(RangeError, function() {
|
|
|
|
BigInt(-Number.MAX_SAFE_INTEGER - 1);
|
|
|
|
}, "BigInt(-Number.MAX_SAFE_INTEGER - 1) throws RangeError");
|