mirror of
https://github.com/tc39/test262.git
synced 2025-07-25 06:55:06 +02:00
bitwise-not tests for BigInt (#1277)
This commit is contained in:
parent
d36a1777b4
commit
5b721a23b5
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
description: Bitwise NOT for BigInt object wrappers
|
||||||
|
esid: sec-bitwise-not-operator-runtime-semantics-evaluation
|
||||||
|
info: |
|
||||||
|
Runtime Semantics: Evaluation
|
||||||
|
UnaryExpression : ~ UnaryExpression
|
||||||
|
|
||||||
|
1. Let expr be the result of evaluating UnaryExpression.
|
||||||
|
2. Let oldValue be ? ToNumeric(? GetValue(expr)).
|
||||||
|
3. Let T be Type(oldValue).
|
||||||
|
4. Return ? T::bitwiseNOT(oldValue).
|
||||||
|
|
||||||
|
features: [BigInt, Symbol.toPrimitive]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(~Object(1n), -2n, "~Object(1n) === -2n");
|
||||||
|
|
||||||
|
function err() {
|
||||||
|
throw new Test262Error();
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
~{[Symbol.toPrimitive]: function() { return 1n; }, valueOf: err, toString: err}, -2n,
|
||||||
|
"primitive from @@toPrimitive");
|
||||||
|
assert.sameValue(
|
||||||
|
~{valueOf: function() { return 1n; }, toString: err}, -2n,
|
||||||
|
"primitive from {}.valueOf");
|
||||||
|
assert.sameValue(
|
||||||
|
~{toString: function() { return 1n; }}, -2n,
|
||||||
|
"primitive from {}.toString");
|
37
test/language/expressions/bitwise-not/bigint.js
Normal file
37
test/language/expressions/bitwise-not/bigint.js
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (C) 2017 Josh Wolfe. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
description: Bitwise NOT for BigInt values
|
||||||
|
esid: sec-numeric-types-bigint-bitwiseNOT
|
||||||
|
info: |
|
||||||
|
BigInt::bitwiseNOT (x)
|
||||||
|
|
||||||
|
The abstract operation BigInt::bitwiseNOT with an argument x of BigInt type returns the one's complement of x; that is, -x - 1.
|
||||||
|
|
||||||
|
features: [BigInt]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
assert.sameValue(~0n, -1n, "~0n === -1n");
|
||||||
|
assert.sameValue(~(0n), -1n, "~(0n) === -1n");
|
||||||
|
assert.sameValue(~1n, -2n, "~1n === -2n");
|
||||||
|
assert.sameValue(~-1n, 0n, "~-1n === 0n");
|
||||||
|
assert.sameValue(~(-1n), 0n, "~(-1n) === 0n");
|
||||||
|
assert.sameValue(~~1n, 1n, "~~1n === 1n");
|
||||||
|
assert.sameValue(~0x5an, -0x5bn, "~0x5an === -0x5bn");
|
||||||
|
assert.sameValue(~-0x5an, 0x59n, "~-0x5an === 0x59n");
|
||||||
|
assert.sameValue(~0xffn, -0x100n, "~0xffn === -0x100n");
|
||||||
|
assert.sameValue(~-0xffn, 0xfen, "~-0xffn === 0xfen");
|
||||||
|
assert.sameValue(~0xffffn, -0x10000n, "~0xffffn === -0x10000n");
|
||||||
|
assert.sameValue(~-0xffffn, 0xfffen, "~-0xffffn === 0xfffen");
|
||||||
|
assert.sameValue(~0xffffffffn, -0x100000000n, "~0xffffffffn === -0x100000000n");
|
||||||
|
assert.sameValue(~-0xffffffffn, 0xfffffffen, "~-0xffffffffn === 0xfffffffen");
|
||||||
|
assert.sameValue(
|
||||||
|
~0xffffffffffffffffn, -0x10000000000000000n,
|
||||||
|
"~0xffffffffffffffffn === -0x10000000000000000n");
|
||||||
|
assert.sameValue(
|
||||||
|
~-0xffffffffffffffffn, 0xfffffffffffffffen,
|
||||||
|
"~-0xffffffffffffffffn === 0xfffffffffffffffen");
|
||||||
|
assert.sameValue(
|
||||||
|
~0x123456789abcdef0fedcba9876543210n, -0x123456789abcdef0fedcba9876543211n,
|
||||||
|
"~0x123456789abcdef0fedcba9876543210n === -0x123456789abcdef0fedcba9876543211n");
|
Loading…
x
Reference in New Issue
Block a user