This commit is contained in:
Ingvar Stepanyan 2014-12-07 19:55:31 +02:00
parent e98176d5e9
commit 96bc831306
2 changed files with 44 additions and 8 deletions

View File

@ -803,12 +803,6 @@
return finishToken(_dollarBraceL);
}
}
if (code === 125) { // '}'
++tokPos;
return finishToken(_braceR, undefined, false);
}
// anything else is considered string literal
return readTmplString();
}
@ -2153,10 +2147,11 @@
// Parse template expression.
function parseTemplate() {
var oldInTemplate = inTemplate;
inTemplate = true;
var node = startNode();
node.expressions = [];
node.quasis = [];
inTemplate = true;
next();
for (;;) {
var elem = startNode();
@ -2176,7 +2171,7 @@
tokPos = tokEnd;
expect(_braceR);
}
inTemplate = false;
inTemplate = oldInTemplate;
next();
return finishNode(node, "TemplateLiteral");
}

View File

@ -14191,3 +14191,44 @@ test("import foo, * as bar from 'baz';", {
}
}]
}, {ecmaVersion: 6});
// https://github.com/marijnh/acorn/issues/173
test("`{${x}}`, `}`", {
type: "Program",
body: [{
type: "ExpressionStatement",
expression: {
type: "SequenceExpression",
expressions: [
{
type: "TemplateLiteral",
expressions: [{
type: "Identifier",
name: "x"
}],
quasis: [
{
type: "TemplateElement",
value: {cooked: "{", raw: "{"},
tail: false
},
{
type: "TemplateElement",
value: {cooked: "}", raw: "}"},
tail: true
}
]
},
{
type: "TemplateLiteral",
expressions: [],
quasis: [{
type: "TemplateElement",
value: {cooked: "}", raw: "}"},
tail: true
}]
}
]
}
}]
}, {ecmaVersion: 6});