function assert(cond, msg = "") { if (!cond) throw new Error(msg); } noInline(assert); function shouldThrowSyntaxError(str) { var hadError = false; try { eval(str); } catch (e) { if (e instanceof SyntaxError) hadError = true; } assert(hadError, "Did not throw syntax error"); } noInline(shouldThrowSyntaxError); shouldThrowSyntaxError("var f = new Function('}{')"); shouldThrowSyntaxError("var f = new Function('}}{{')"); var GeneratorFunction = function*(){}.constructor; shouldThrowSyntaxError("var f = new GeneratorFunction('}{')"); shouldThrowSyntaxError("var f = new GeneratorFunction('}}{{')");