blob: 85b34563ec2a21ad8c2879235c05f0ab2cd6ee12 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// |reftest| skip-if(!xulRuntime.shell)
assertThrowsInstanceOf(() => eval(`class A { #x; #x; }`), SyntaxError);
// No computed private fields
assertThrowsInstanceOf(
() => eval(`var x = "foo"; class A { #[x] = 20; }`), SyntaxError);
function assertThrowsWithMessage(f, msg) {
var fullmsg;
try {
f();
} catch (exc) {
if (exc.message.normalize() === msg.normalize())
return;
fullmsg = `Assertion failed: expected message '${msg}', got '${exc.message}'`;
}
if (fullmsg === undefined)
fullmsg = `Assertion failed: expected exception, no exception thrown`;
throw new Error(fullmsg);
}
assertThrowsWithMessage(() => eval(`class A { #x; h(o) { return !#x; }}`),
"invalid use of private name in unary expression without object reference");
assertThrowsWithMessage(() => eval(`class A { #x; h(o) { return 1 + #x in o; }}`),
"invalid use of private name due to operator precedence");
if (typeof reportCompare === 'function') reportCompare(0, 0);
|