parent
5c44c13465
commit
d36c70bbbf
1
acorn.js
1
acorn.js
@ -1233,6 +1233,7 @@
|
||||
var kind = tokType.isLoop ? "loop" : tokType === _switch ? "switch" : null;
|
||||
labels.push({name: maybeName, kind: kind});
|
||||
node.body = parseStatement();
|
||||
labels.pop();
|
||||
node.label = expr;
|
||||
return finishNode(node, "LabeledStatement");
|
||||
} else {
|
||||
|
||||
@ -902,6 +902,7 @@ Identifier node, we switch to interpreting it as a label.</p> </td>
|
||||
<span class="kd">var</span> <span class="nx">kind</span> <span class="o">=</span> <span class="nx">tokType</span><span class="p">.</span><span class="nx">isLoop</span> <span class="o">?</span> <span class="s2">"loop"</span> <span class="o">:</span> <span class="nx">tokType</span> <span class="o">===</span> <span class="nx">_switch</span> <span class="o">?</span> <span class="s2">"switch"</span> <span class="o">:</span> <span class="kc">null</span><span class="p">;</span>
|
||||
<span class="nx">labels</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="nx">name</span><span class="o">:</span> <span class="nx">maybeName</span><span class="p">,</span> <span class="nx">kind</span><span class="o">:</span> <span class="nx">kind</span><span class="p">});</span>
|
||||
<span class="nx">node</span><span class="p">.</span><span class="nx">body</span> <span class="o">=</span> <span class="nx">parseStatement</span><span class="p">();</span>
|
||||
<span class="nx">labels</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span>
|
||||
<span class="nx">node</span><span class="p">.</span><span class="nx">label</span> <span class="o">=</span> <span class="nx">expr</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">"LabeledStatement"</span><span class="p">);</span>
|
||||
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||||
|
||||
@ -26029,6 +26029,42 @@ test("'a\\u0026b'", {
|
||||
]
|
||||
});
|
||||
|
||||
test("foo: 10; foo: 20;", {
|
||||
type: "Program",
|
||||
body: [
|
||||
{
|
||||
type: "LabeledStatement",
|
||||
body: {
|
||||
type: "ExpressionStatement",
|
||||
expression: {
|
||||
type: "Literal",
|
||||
value: 10,
|
||||
raw: "10"
|
||||
}
|
||||
},
|
||||
label: {
|
||||
type: "Identifier",
|
||||
name: "foo"
|
||||
}
|
||||
},
|
||||
{
|
||||
type: "LabeledStatement",
|
||||
body: {
|
||||
type: "ExpressionStatement",
|
||||
expression: {
|
||||
type: "Literal",
|
||||
value: 20,
|
||||
raw: "20"
|
||||
}
|
||||
},
|
||||
label: {
|
||||
type: "Identifier",
|
||||
name: "foo"
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
// Failure tests
|
||||
|
||||
testFail("{",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user