add es6.spec.templateLiterals transformer and rename es6.symbols to es6.spec.symbols
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"selfContained": "runtime",
|
||||
"unicode-regex": "regex.unicode",
|
||||
"spec.typeofSymbol": "es6.symbols",
|
||||
"spec.typeofSymbol": "es6.spec.symbols",
|
||||
"es6.symbols": "es6.spec.symbols",
|
||||
|
||||
"minification.deadCodeElimination": "utility.deadCodeElimination",
|
||||
"minification.removeConsoleCalls": "utility.removeConsole",
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
import * as t from "../../../types";
|
||||
|
||||
export var metadata = {
|
||||
optional: true
|
||||
};
|
||||
|
||||
export function TemplateLiteral(node, parent, scope, file) {
|
||||
for (var i = 0; i < node.expressions.length; i++) {
|
||||
node.expressions[i] = t.callExpression(t.identifier("String"), [node.expressions[i]]);
|
||||
}
|
||||
}
|
||||
@@ -1,17 +1,9 @@
|
||||
import * as t from "../../../types";
|
||||
|
||||
var buildBinaryExpression = function (left, right, file) {
|
||||
return t.binaryExpression("+", left, coerce(right, file));
|
||||
var buildBinaryExpression = function (left, right) {
|
||||
return t.binaryExpression("+", left, right);
|
||||
};
|
||||
|
||||
function coerce(node, file) {
|
||||
if (file.isLoose("es7.templateLiterals") || (t.isLiteral(node) && typeof node.value === "string")) {
|
||||
return node;
|
||||
} else {
|
||||
return t.callExpression(t.identifier("String"), [node]);
|
||||
}
|
||||
}
|
||||
|
||||
export function check(node) {
|
||||
return t.isTemplateLiteral(node) || t.isTaggedTemplateExpression(node);
|
||||
}
|
||||
@@ -59,10 +51,10 @@ export function TemplateLiteral(node, parent, scope, file) {
|
||||
var last = nodes[nodes.length - 1];
|
||||
if (t.isLiteral(last, { value: "" })) nodes.pop();
|
||||
|
||||
var root = buildBinaryExpression(nodes.shift(), nodes.shift(), file);
|
||||
var root = buildBinaryExpression(nodes.shift(), nodes.shift());
|
||||
|
||||
for (i = 0; i < nodes.length; i++) {
|
||||
root = buildBinaryExpression(root, nodes[i], file);
|
||||
root = buildBinaryExpression(root, nodes[i]);
|
||||
}
|
||||
|
||||
return root;
|
||||
|
||||
@@ -37,6 +37,8 @@ export default {
|
||||
"es6.objectSuper": require("./es6/object-super"),
|
||||
"es7.objectRestSpread": require("./es7/object-rest-spread"),
|
||||
"es7.exponentiationOperator": require("./es7/exponentiation-operator"),
|
||||
|
||||
"es6.spec.templateLiterals": require("./es6/spec.template-literals"),
|
||||
"es6.templateLiterals": require("./es6/template-literals"),
|
||||
|
||||
"es5.properties.mutators": require("./es5/properties.mutators"),
|
||||
@@ -97,7 +99,7 @@ export default {
|
||||
|
||||
"es7.doExpressions": require("./es7/do-expressions"),
|
||||
|
||||
"es6.symbols": require("./es6/symbols"),
|
||||
"es6.spec.symbols": require("./es6/spec.symbols"),
|
||||
"spec.undefinedToVoid": require("./spec/undefined-to-void"),
|
||||
|
||||
_strict: require("./internal/strict"),
|
||||
|
||||
Reference in New Issue
Block a user