mirror of https://github.com/tc39/test262.git
Add tests for BigInt.prototype.valueOf (#1234)
* BigInt valueOf tests * add features from typeCoercion.js
This commit is contained in:
parent
2889100f21
commit
5f338a30a1
|
@ -407,3 +407,19 @@ function testNotCoercibleToBigInt(test) {
|
|||
testStringValue("0xg");
|
||||
testStringValue("1n");
|
||||
}
|
||||
|
||||
function testCoercibleToBigIntThisValue(value, test) {
|
||||
test(value);
|
||||
test(Object(value));
|
||||
}
|
||||
|
||||
function testNotCoercibleToBigIntThisValue(test) {
|
||||
test(undefined);
|
||||
test(null);
|
||||
test(true);
|
||||
test(false);
|
||||
test("");
|
||||
test(Symbol(""));
|
||||
test(0);
|
||||
test({});
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-bigint.prototype.valueof
|
||||
description: BigInt.prototype.valueOf.length property descriptor
|
||||
info: >
|
||||
BigInt.prototype.valueOf ( )
|
||||
|
||||
17 ECMAScript Standard Built-in Objects
|
||||
includes: [propertyHelper.js]
|
||||
features: [BigInt]
|
||||
---*/
|
||||
|
||||
verifyProperty(BigInt.prototype.valueOf, "length", {
|
||||
value: 0,
|
||||
writable: false,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
|
@ -0,0 +1,20 @@
|
|||
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-bigint.prototype.valueof
|
||||
description: BigInt.prototype.valueOf.name property descriptor
|
||||
info: >
|
||||
BigInt.prototype.valueOf ( )
|
||||
|
||||
17 ECMAScript Standard Built-in Objects
|
||||
includes: [propertyHelper.js]
|
||||
features: [BigInt]
|
||||
---*/
|
||||
|
||||
verifyProperty(BigInt.prototype.valueOf, "name", {
|
||||
value: "valueOf",
|
||||
writable: false,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
|
@ -0,0 +1,19 @@
|
|||
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-bigint.prototype.valueof
|
||||
description: BigInt.prototype.valueOf property descriptor
|
||||
info: >
|
||||
BigInt.prototype.valueOf ( )
|
||||
|
||||
17 ECMAScript Standard Built-in Objects
|
||||
includes: [propertyHelper.js]
|
||||
features: [BigInt]
|
||||
---*/
|
||||
|
||||
verifyProperty(BigInt.prototype, "valueOf", {
|
||||
writable: true,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
|
@ -0,0 +1,17 @@
|
|||
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-bigint.prototype.valueof
|
||||
description: BigInt.prototype.valueOf this value coercion
|
||||
info: >
|
||||
BigInt.prototype.valueOf ( )
|
||||
|
||||
Return ? thisBigIntValue(this value).
|
||||
includes: [typeCoercion.js]
|
||||
features: [BigInt, arrow-function, Symbol, Symbol.toPrimitive]
|
||||
---*/
|
||||
|
||||
testNotCoercibleToBigIntThisValue(
|
||||
(x) => assert.throws(TypeError, () => BigInt.prototype.valueOf.call(x))
|
||||
);
|
|
@ -0,0 +1,18 @@
|
|||
// Copyright (C) 2017 Robin Templeton. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-bigint.prototype.valueof
|
||||
description: BigInt.prototype.valueOf this value coercion
|
||||
info: >
|
||||
BigInt.prototype.valueOf ( )
|
||||
|
||||
Return ? thisBigIntValue(this value).
|
||||
includes: [typeCoercion.js]
|
||||
features: [BigInt, arrow-function, Symbol, Symbol.toPrimitive]
|
||||
---*/
|
||||
|
||||
testCoercibleToBigIntThisValue(
|
||||
0n,
|
||||
(x) => assert.sameValue(0n, BigInt.prototype.valueOf.call(x))
|
||||
);
|
Loading…
Reference in New Issue