support tagged template literals - closes #16

This commit is contained in:
Sebastian McKenzie 2014-10-09 14:35:46 +11:00
parent 21f039e775
commit b59168832c
3 changed files with 18 additions and 0 deletions

View File

@ -5,6 +5,22 @@ var buildBinaryExpression = function (left, right) {
return b.binaryExpression("+", left, right);
};
exports.TaggedTemplateExpression = function (node) {
var args = [];
var quasi = node.quasi;
var strings = quasi.quasis.map(function (elem) {
return b.literal(elem.value.raw);
});
args.push(b.arrayExpression(strings));
_.each(quasi.expressions, function (expr) {
args.push(expr);
});
return b.callExpression(node.tag, args);
};
exports.TemplateLiteral = function (node) {
var nodes = [];

View File

@ -0,0 +1 @@
var foo = bar`a${ 42 }b ${_.foobar()}`;

View File

@ -0,0 +1 @@
var foo = bar(["a", "b ", ""], 42, _.foobar());