mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 14:30:27 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
114 lines
1.8 KiB
JavaScript
114 lines
1.8 KiB
JavaScript
//@ runBigIntEnabled
|
|
|
|
function assert(a) {
|
|
if (!a)
|
|
throw new Error("Bad assertion");
|
|
}
|
|
|
|
function assertThrowSyntaxError(input) {
|
|
try {
|
|
eval(input);
|
|
assert(false);
|
|
} catch (e) {
|
|
assert(e instanceof SyntaxError);
|
|
}
|
|
}
|
|
|
|
// Test 0 conversions
|
|
let n = 0n;
|
|
assert(n === 0n);
|
|
|
|
n = 00n;
|
|
assert(n === 0n);
|
|
|
|
// Binary representation
|
|
|
|
n = 0b1111n;
|
|
assert(n === 15n);
|
|
|
|
n = 0b10n;
|
|
assert(n === 2n);
|
|
|
|
n = 0b010n;
|
|
assert(n === 2n);
|
|
|
|
let binaryString = "0b1";
|
|
for (let i = 0; i < 128; i++)
|
|
binaryString += "0";
|
|
|
|
n = eval(binaryString + "n");
|
|
assert(n === 340282366920938463463374607431768211456n);
|
|
|
|
n = 0B1111n;
|
|
assert(n === 15n);
|
|
|
|
n = 0B10n;
|
|
assert(n === 2n);
|
|
|
|
binaryString = "0B1";
|
|
for (let i = 0; i < 128; i++)
|
|
binaryString += "0";
|
|
|
|
n = eval(binaryString + "n");
|
|
assert(n === 340282366920938463463374607431768211456n);
|
|
|
|
// Octal representation
|
|
|
|
n = 0o7n;
|
|
assert(n === 7n);
|
|
|
|
n = 0o10n;
|
|
assert(n === 8n);
|
|
|
|
n = 0o20n;
|
|
assert(n === 16n);
|
|
|
|
n = 0o00020n;
|
|
assert(n === 16n);
|
|
|
|
n = 0O7n;
|
|
assert(n === 7n);
|
|
|
|
n = 0O10n;
|
|
assert(n === 8n);
|
|
|
|
n = 0O20n;
|
|
assert(n === 16n);
|
|
|
|
n = 0O20n;
|
|
assert(n === 16n);
|
|
|
|
// Hexadecimal representation
|
|
|
|
n = 0xan;
|
|
assert(n === 10n);
|
|
|
|
n = 0xffn;
|
|
assert(n === 255n);
|
|
|
|
n = 0x000ffn;
|
|
assert(n === 255n);
|
|
|
|
n = 0xfabcn;
|
|
assert(n === 64188n);
|
|
|
|
assertThrowSyntaxError("0b2n");
|
|
assertThrowSyntaxError("0b02n");
|
|
assertThrowSyntaxError("0b1nn");
|
|
assertThrowSyntaxError("0o89n");
|
|
assertThrowSyntaxError("0o08n");
|
|
assertThrowSyntaxError("0o7nn");
|
|
assertThrowSyntaxError("0xgn");
|
|
assertThrowSyntaxError("0x0gn");
|
|
assertThrowSyntaxError("0xfnn");
|
|
assertThrowSyntaxError("100nn");
|
|
assertThrowSyntaxError("1a0nn");
|
|
assertThrowSyntaxError("10E20n");
|
|
|
|
try {
|
|
eval("--10n");
|
|
assert(false);
|
|
} catch(e) {
|
|
assert(e instanceof ReferenceError);
|
|
}
|