Disallow newline after throw

Closes #11
This commit is contained in:
Marijn Haverbeke 2012-10-18 15:50:07 +02:00
parent daefc220da
commit 6b52dc8a84
3 changed files with 6 additions and 3 deletions

View File

@ -1104,6 +1104,8 @@
case _throw:
next();
if (newline.test(input.slice(lastEnd, tokStart)))
raise(lastEnd, "Illegal newline after throw");
node.argument = parseExpression();
return finishNode(node, "ThrowStatement");

View File

@ -776,6 +776,8 @@ adding statements to.</p> </td> <td class="code">
<span class="k">case</span> <span class="nx">_throw</span><span class="o">:</span>
<span class="nx">next</span><span class="p">();</span>
<span class="k">if</span> <span class="p">(</span><span class="nx">newline</span><span class="p">.</span><span class="nx">test</span><span class="p">(</span><span class="nx">input</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="nx">lastEnd</span><span class="p">,</span> <span class="nx">tokStart</span><span class="p">)))</span>
<span class="nx">raise</span><span class="p">(</span><span class="nx">lastEnd</span><span class="p">,</span> <span class="s2">&quot;Illegal newline after throw&quot;</span><span class="p">);</span>
<span class="nx">node</span><span class="p">.</span><span class="nx">argument</span> <span class="o">=</span> <span class="nx">parseExpression</span><span class="p">();</span>
<span class="k">return</span> <span class="nx">finishNode</span><span class="p">(</span><span class="nx">node</span><span class="p">,</span> <span class="s2">&quot;ThrowStatement&quot;</span><span class="p">);</span>

View File

@ -26269,9 +26269,6 @@ testFail("throw",
testFail("throw;",
"Unexpected token (1:5)");
testFail("throw\n",
"Unexpected token (2:0)");
testFail("for (var i, i2 in {});",
"Unexpected token (1:15)");
@ -26603,3 +26600,5 @@ testFail("(function a(package) { \"use strict\"; })",
"Defining 'package' in strict mode (1:12)");
testFail("var this = 10;", "Unexpected token (1:4)");
testFail("throw\n10;", "Illegal newline after throw (1:5)");