michael@0: // yield without an operand causes a warning. See bug 885463. michael@0: michael@0: load(libdir + "asserts.js"); michael@0: michael@0: assertWarning(() => Function("yield"), SyntaxError, michael@0: "yield followed by EOF should cause a warning"); michael@0: assertWarning(() => Function("yield;"), SyntaxError, michael@0: "yield followed by semicolon should cause a warning"); michael@0: assertWarning(() => Function("yield\n print('ok');"), SyntaxError, michael@0: "yield followed by newline should cause a warning"); michael@0: michael@0: assertWarning(() => eval("(function () { yield; })"), SyntaxError, michael@0: "yield followed by semicolon in eval code should cause a warning"); michael@0: assertWarning(() => eval("(function () { yield })"), SyntaxError, michael@0: "yield followed by } in eval code should cause a warning"); michael@0: michael@0: assertNoWarning(() => Function("yield 0;"), michael@0: "yield with an operand should be fine"); michael@0: assertNoWarning(() => Function("yield 0"), michael@0: "yield with an operand should be fine, even without a semicolon"); michael@0: michael@0: print("\npassed - all those warnings are normal and there's no real way to suppress them");