syntax-error-throw.js (988B)
1 var caught = false; 2 try { 3 new Function("throw;"); 4 } catch (e) { 5 assertEq(e instanceof SyntaxError, true); 6 assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); 7 caught = true; 8 } 9 assertEq(caught, true); 10 11 caught = false; 12 try { 13 new Function("throw\n1;"); 14 } catch (e) { 15 assertEq(e instanceof SyntaxError, true); 16 assertEq(e.message.startsWith("no line break is allowed between 'throw' and its expression") == -1, false); 17 caught = true; 18 } 19 assertEq(caught, true); 20 21 caught = false; 22 try { 23 new Function("throw}"); 24 } catch (e) { 25 assertEq(e instanceof SyntaxError, true); 26 assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); 27 caught = true; 28 } 29 assertEq(caught, true); 30 31 caught = false; 32 try { 33 new Function("throw"); 34 } catch (e) { 35 assertEq(e instanceof SyntaxError, true); 36 assertEq(e.message.startsWith("throw statement is missing an expression") == -1, false); 37 caught = true; 38 } 39 assertEq(caught, true);