|
1 // yield without an operand causes a warning. See bug 885463. |
|
2 |
|
3 load(libdir + "asserts.js"); |
|
4 |
|
5 assertWarning(() => Function("yield"), SyntaxError, |
|
6 "yield followed by EOF should cause a warning"); |
|
7 assertWarning(() => Function("yield;"), SyntaxError, |
|
8 "yield followed by semicolon should cause a warning"); |
|
9 assertWarning(() => Function("yield\n print('ok');"), SyntaxError, |
|
10 "yield followed by newline should cause a warning"); |
|
11 |
|
12 assertWarning(() => eval("(function () { yield; })"), SyntaxError, |
|
13 "yield followed by semicolon in eval code should cause a warning"); |
|
14 assertWarning(() => eval("(function () { yield })"), SyntaxError, |
|
15 "yield followed by } in eval code should cause a warning"); |
|
16 |
|
17 assertNoWarning(() => Function("yield 0;"), |
|
18 "yield with an operand should be fine"); |
|
19 assertNoWarning(() => Function("yield 0"), |
|
20 "yield with an operand should be fine, even without a semicolon"); |
|
21 |
|
22 print("\npassed - all those warnings are normal and there's no real way to suppress them"); |