var caught = false; try { new Function("throw;"); } catch (e) { assertEq(e instanceof SyntaxError, true); assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); caught = true; } assertEq(caught, true); caught = false; try { new Function("throw\n1;"); } catch (e) { assertEq(e instanceof SyntaxError, true); assertEq(e.message.startsWith("no line break is allowed between 'throw' and its expression") == -1, false); caught = true; } assertEq(caught, true); caught = false; try { new Function("throw}"); } catch (e) { assertEq(e instanceof SyntaxError, true); assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); caught = true; } assertEq(caught, true); caught = false; try { new Function("throw"); } catch (e) { assertEq(e instanceof SyntaxError, true); assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); caught = true; } assertEq(caught, true);