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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
load(libdir + "asserts.js");
var cases = [
"{",
"{ ;",
"var",
"var x,",
"var x =",
"let x,",
"let x =",
"const",
"const x =",
"const x = 1,",
"if",
"if (",
"if (0) ; else",
"do",
"do ;",
"do ; while",
"do ; while (",
"do ; while (1",
"while",
"while (",
"while (1",
"while (1)",
"for",
"for (",
"for (;",
"for (;;",
"for (;;)",
"for (var",
"for (x",
"for (x in",
"for (x in y",
"for (x in y)",
"for (x of",
"for (x of y",
"for (x of y)",
"switch",
"switch (",
"switch (x",
"switch (x)",
"with",
"with (",
"with (x",
"with (x)",
"a:",
"throw",
"try",
"try {",
"try {} catch",
"try {} catch (",
"try {} catch (exc",
"try {} catch (exc if",
"try {} catch (exc if 1",
"try {} finally",
"try {} finally {",
"function",
"function f",
"function f(",
"function f()",
"function f() {",
"(function",
"(function f",
"(function f(",
"(function f()",
];
for (var s of cases)
assertThrowsInstanceOf(() => Function(s), SyntaxError);
|