blob: 49a09468ecd4bedd9d6e41083ba4bd983942487e (
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
// Field syntax doesn't crash the engine when fields are disabled.
// Are fields enabled?
let fieldsEnabled = false;
try {
Function("class C { x; }");
fieldsEnabled = true;
} catch (exc) {
assertEq(exc instanceof SyntaxError, true);
}
// If not, run these tests. (Many other tests cover actual behavior of the
// feature when enabled.)
if (!fieldsEnabled) {
let source = `class C {
x
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
x = 0;
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
0 = 0;
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
[0] = 0;
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
"hi" = 0;
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
"hi" = 0;
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
d = function(){};
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
source = `class C {
d = class D { x = 0; };
}`;
assertThrowsInstanceOf(() => Function(source), SyntaxError);
}
if (typeof reportCompare === "function")
reportCompare(true, true);
|