update
This commit is contained in:
Generated
Vendored
+1
-1
@@ -26,7 +26,7 @@ var _default = ({
|
||||
const id = t.cloneNode(path.parent.id);
|
||||
const binding = path.scope.getBinding(id.name); // if the binding gets reassigned anywhere, rename it
|
||||
|
||||
if (binding.constantViolations.length) {
|
||||
if (binding == null ? void 0 : binding.constantViolations.length) {
|
||||
path.scope.rename(id.name);
|
||||
}
|
||||
|
||||
|
||||
Generated
Vendored
+4
-4
@@ -31,7 +31,7 @@ var _default = ({
|
||||
let processed = state.get("processed");
|
||||
|
||||
if (!processed) {
|
||||
processed = new Map();
|
||||
processed = new WeakSet();
|
||||
state.set("processed", processed);
|
||||
}
|
||||
|
||||
@@ -54,13 +54,13 @@ var _default = ({
|
||||
// identity`a${0}`
|
||||
|
||||
|
||||
const template = t.taggedTemplateExpression(identity, t.templateLiteral(path.node.quasi.quasis, expressions.map(() => t.numericLiteral(0))));
|
||||
processed.set(template, true); // Install an inline cache at the callsite using the global variable:
|
||||
const template = t.taggedTemplateExpression(t.cloneNode(identity), t.templateLiteral(path.node.quasi.quasis, expressions.map(() => t.numericLiteral(0))));
|
||||
processed.add(template); // Install an inline cache at the callsite using the global variable:
|
||||
// _t || (_t = identity`a${0}`)
|
||||
|
||||
const ident = path.scope.getProgramParent().generateDeclaredUidIdentifier("t");
|
||||
path.scope.getBinding(ident.name).path.parent.kind = "let";
|
||||
const inlineCache = t.logicalExpression("||", ident, t.assignmentExpression("=", ident, template)); // The original tag function becomes a plain function call.
|
||||
const inlineCache = t.logicalExpression("||", ident, t.assignmentExpression("=", t.cloneNode(ident), template)); // The original tag function becomes a plain function call.
|
||||
// The expressions omitted from the cached Strings tag are directly applied as arguments.
|
||||
// tag(_t || (_t = Object`a${0}`), 'hello')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user