blob: ffcad5fee3b413773fcc32ddfab23c7c1e58c0f4 [file] [log] [blame]
function shouldNotThrow(script) {
eval(script);
}
function shouldThrow(script, errorType) {
let error;
try {
eval(script);
} catch (e) {
error = e;
}
if (!(error instanceof errorType))
throw new Error(`Expected ${errorType.name}!`);
}
shouldNotThrow('1_1_1');
shouldNotThrow('0x1_1_1');
shouldNotThrow('0b1_1_1');
shouldNotThrow('0o1_1_1');
shouldNotThrow('10000000000_0');
shouldNotThrow('0x100000000_0');
shouldNotThrow('0b100000000000000000000000000000000_0');
shouldNotThrow('0o10000000000_0');
shouldNotThrow('1_1_1n');
shouldNotThrow('0x1_1_1n');
shouldNotThrow('0b1_1_1n');
shouldNotThrow('0o1_1_1n');
shouldNotThrow('10000000000_0n');
shouldNotThrow('0x100000000_0n');
shouldNotThrow('0b100000000000000000000000000000000_0n');
shouldNotThrow('0o10000000000_0n');
shouldNotThrow('.1_1_1');
shouldNotThrow('1_1_1.2_2_2');
shouldNotThrow('1_1_1.2_2_2e3_3_3');
shouldNotThrow('1_1_1.2_2_2e+3_3_3');
shouldNotThrow('1_1_1.2_2_2e-3_3_3');
shouldNotThrow('1_1_1e2_2_2');
shouldNotThrow('1_1_1e+2_2_2');
shouldNotThrow('1_1_1e-2_2_2');
shouldNotThrow('1_1_1.e2_2_2');
shouldNotThrow('1_1_1.e+2_2_2');
shouldNotThrow('1_1_1.e-2_2_2');
shouldThrow('_1', ReferenceError);
shouldThrow('1_', SyntaxError);
shouldThrow('1__1', SyntaxError);
shouldThrow('0x_1', SyntaxError);
shouldThrow('0x1_', SyntaxError);
shouldThrow('0x1__1', SyntaxError);
shouldThrow('0b_1', SyntaxError);
shouldThrow('0b1_', SyntaxError);
shouldThrow('0b1__1', SyntaxError);
shouldThrow('0o_1', SyntaxError);
shouldThrow('0o1_', SyntaxError);
shouldThrow('0o1__1', SyntaxError);
shouldThrow('0_1', SyntaxError);
shouldThrow('10000000000_', SyntaxError);
shouldThrow('10000000000__0', SyntaxError);
shouldThrow('0x100000000_', SyntaxError);
shouldThrow('0x100000000__0', SyntaxError);
shouldThrow('0b100000000000000000000000000000000_', SyntaxError);
shouldThrow('0b100000000000000000000000000000000__0', SyntaxError);
shouldThrow('0o10000000000_', SyntaxError);
shouldThrow('0o10000000000__0', SyntaxError);
shouldThrow('1_n', SyntaxError);
shouldThrow('0x1_n', SyntaxError);
shouldThrow('0b1_n', SyntaxError);
shouldThrow('0o1_n', SyntaxError);
shouldThrow('10000000000_n', SyntaxError);
shouldThrow('0x100000000_n', SyntaxError);
shouldThrow('0b100000000000000000000000000000000_n', SyntaxError);
shouldThrow('0o10000000000_n', SyntaxError);
shouldThrow('._1', SyntaxError);
shouldThrow('.1_', SyntaxError);
shouldThrow('.1__1', SyntaxError);
shouldThrow('1_.2', SyntaxError);
shouldThrow('1._2', SyntaxError);
shouldThrow('1.2_', SyntaxError);
shouldThrow('1.2__2', SyntaxError);
shouldThrow('1_e2', SyntaxError);
shouldThrow('1e_2', SyntaxError);
shouldThrow('1e2_', SyntaxError);
shouldThrow('1e2__2', SyntaxError);
shouldThrow('1e+_2', SyntaxError);
shouldThrow('1e+2_', SyntaxError);
shouldThrow('1e+2__2', SyntaxError);
shouldThrow('1e-_2', SyntaxError);
shouldThrow('1e-2_', SyntaxError);
shouldThrow('1e-2__2', SyntaxError);
shouldThrow('01_1', SyntaxError);
shouldThrow('01_9', SyntaxError);
shouldThrow('09_1', SyntaxError);
shouldThrow('0100_001', SyntaxError);
shouldThrow('0100_009', SyntaxError);
shouldThrow('0900_001', SyntaxError);
shouldThrow('010000000000_1', SyntaxError);
shouldThrow('010000000000_9', SyntaxError);
shouldThrow('090000000000_1', SyntaxError);