@effectful/transducers-loose
Version:
@effectful/transducers built with faster generators
960 lines (956 loc) • 28.3 kB
JavaScript
"use strict";
exports.__esModule = true;
exports.ccg = ccg;
exports.cg = cg;
exports.cleanComments = cleanComments;
exports.color = void 0;
exports.copyComment = copyComment;
exports.dumpToConsole = exports.dumpDoc = void 0;
exports.dumpToStr = dumpToStr;
exports.fin = void 0;
exports.markNodeType = markNodeType;
exports.setComment = setComment;
exports.setEndComment = setEndComment;
exports.tempNames = tempNames;
exports.tempNamesRange = tempNamesRange;
exports.traceLazy = exports.traceDoc = exports.traceAll = void 0;
exports.verify = verify;
var _generator = require("@babel/generator");
var T = require("@babel/types");
var _config = require("./config");
var _types2 = require("./types");
var _combinators = require("./combinators");
var _core = require("./core");
var M = require("@effectful/es-rt/opts/loose");
const MAX_TRACE_CODE_LEN = 40;
const enterStyles = "background: #222; color: #bada55;font-size:1.5em";
const leaveStyles = "color: #ee5757; background: black";
const newTagStyle = "color:purple;font-size:large";
const positionStyle = "color:gray;text-decoration:underline";
const dirStyle = "font-size:x-large;font-weight:bolder";
function defaultReplacer(n, v) {
return n === "leadingComments" || n === "trailingComments" ? void 0 : v;
}
/**
* outputs short description of AST node
*/
function cg(ast, opts = {}) {
var res;
if (ast == null) {
// console.error("<NULL>")
return "<NULL>";
}
try {
if (Array.isArray(ast)) {
ast = ast.length > 0 && T.isExpression(ast[0]) ? T.sequenceExpression(ast) : T.blockStatement(ast);
}
res = (0, _generator.default)(ast, opts, "").code;
} catch (e) {
if (ast.type != null) console.log("ERROR:", e.stack);
}
if (res != null) {
return res;
}
return "!!" + opts.compact ? JSON.stringify(ast, defaultReplacer) : JSON.stringify(ast, defaultReplacer, 2);
}
/**
* same as `cg` but using compact syntax
*/
function ccg(ast) {
return cg(ast, {
compact: true
});
}
if (_config.default.debug) {
global.cg = cg;
global.ccg = ccg;
}
function verify(s) {
var stack,
start,
i,
ti,
ctrlPos,
f,
keys,
k,
_keys,
_f,
verify = M.generator(),
loop,
r,
p;
verify.step = verify_1;
verify.$step = 3;
return verify;
function verify_1(p) {
for (;;) {
switch (verify.$cur = verify.$step) {
case 3:
stack = [];
loop = M.iterator((0, _core.hier)((0, _core.dft)((0, _core.resetFieldInfo)((0, _core.fromIterable)(s)))));
verify.$step = 4;
verify.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
({
start,
value: i
} = loop.value);
ti = (0, _types2.typeInfo)(i);
ctrlPos = (0, _types2.symInfo)(i.pos).kind === "ctrl";
if (start) {
if (stack.length) {
[f, keys] = stack[stack.length - 1];
if (f.type === _types2.Tag.Array) {
if (!ctrlPos) {}
} else {
if (keys != null && !ctrlPos) {
k = void 0;
while ((k = keys.shift()) != null) {
if (_types2.Tag[k] === i.pos) {
break;
}
}
}
}
}
if (i.fieldInfo != null) {
if (i.type === _types2.Tag.Array) {}
}
_keys = T.VISITOR_KEYS[(0, _types2.symName)(i.type)];
stack.push([i, _keys && [..._keys]]);
verify.$step = 4;
verify.value = i;
return verify;
} else {
[_f] = stack.pop();
if (ti.kind !== "ctrl") {}
verify.$step = 4;
verify.$step = 4;
continue;
}
} else {
verify.$step = 0;
verify.value = void 0;
verify.done = true;
return verify;
}
case 0:
verify.$step = 0;
verify.value = p;
verify.done = true;
return verify;
case 1:
verify.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
function pad(s) {
if (s.length % 2) s += " ";
const sps = Array(Math.max(20 - s.length / 2, 2)).join(" ");
return sps + s + sps;
}
const traceImpl = _config.default.color ? browserTraceImpl : traceNodeImpl;
function traceDocImpl(prefix, root) {
(0, _core.skip)(traceImpl(prefix, (0, _core.dft)(root)));
return root;
}
function traceNodeImpl(prefix, s) {
var x,
chalk,
start,
i,
dir,
clevel,
descr,
n,
node,
comments,
commentsTxt,
t,
loc,
f,
_s,
e,
traceNodeImpl = M.generator(),
loop,
r,
p;
traceNodeImpl.step = traceNodeImpl_1;
traceNodeImpl.$step = 3;
return traceNodeImpl;
function traceNodeImpl_1(p) {
for (;;) {
switch (traceNodeImpl.$cur = traceNodeImpl.$step) {
case 3:
x = 0;
chalk = require("chalk");
loop = M.iterator((0, _core.hier)(s));
traceNodeImpl.$step = 4;
traceNodeImpl.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
({
start,
value: i
} = loop.value);
dir = chalk.bold(start ? "\\" : "/");
clevel = `${i.level}`;
descr = `${chalk.green((0, _types2.symName)(i.pos))}:${i.type.ctrl ? chalk.green((0, _types2.symName)(i.type)) : chalk.green.bold((0, _types2.symName)(i.type))}[${clevel}]`;
n = "";
({
node
} = i);
comments = [];
commentsTxt = "";
t = [].concat(i.comments || [], i.tcomments || []);
if (t.length) {
if (comments.length) {
commentsTxt = chalk.bold("[") + comments.join(" ") + chalk.bold("]");
}
}
if (node != null && i.type !== _types2.Tag.Array && (0, _types2.symKind)(i.type) !== "ctrl") {
n = ccg(node);
if (n.length > MAX_TRACE_CODE_LEN) {
n = n.substr(0, MAX_TRACE_CODE_LEN) + "...";
}
n = chalk.yellow(n);
({
loc
} = node);
if (loc != null) {
({
source: f,
start: _s,
end: e
} = loc);
n += chalk.blue(` @${f || "?"}-${_s.line}:${_s.column}..${e.line}:${e.column}`);
} else {
n += chalk.bold(" @new");
}
}
console.log(prefix, Array(i.level).join(" "), dir, `${descr}@${x}`, commentsTxt, n);
if (start) {
traceNodeImpl.$step = 5;
traceNodeImpl.value = i;
return traceNodeImpl;
} else {
traceNodeImpl.$step = 5;
traceNodeImpl.$step = 5;
continue;
}
} else {
console.log(prefix, "len:", x);
traceNodeImpl.$step = 0;
traceNodeImpl.value = void 0;
traceNodeImpl.done = true;
return traceNodeImpl;
}
case 5:
x++;
traceNodeImpl.$step = 4;
traceNodeImpl.$step = 4;
continue;
case 0:
traceNodeImpl.$step = 0;
traceNodeImpl.value = p;
traceNodeImpl.done = true;
return traceNodeImpl;
case 1:
traceNodeImpl.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
function browserTraceImpl(prefix, s) {
var x,
first,
start,
i,
name,
styles,
dir,
clevel,
tp,
descr,
idtxt,
ldescr,
n,
node,
comments,
commentsTxt,
t,
pstyle,
j,
mod,
_s,
loc,
f,
s1,
e,
browserTraceImpl = M.generator(),
loop,
_loop,
r,
p;
browserTraceImpl.step = browserTraceImpl_1;
browserTraceImpl.$step = 3;
return browserTraceImpl;
function browserTraceImpl_1(p) {
for (;;) {
switch (browserTraceImpl.$cur = browserTraceImpl.$step) {
case 3:
x = 0;
first = true;
loop = M.iterator((0, _core.hier)(s));
browserTraceImpl.$step = 4;
browserTraceImpl.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
({
start,
value: i
} = loop.value);
if (first) {
first = false;
name = (0, _types2.symName)(i.type);
if (i.funcId) {
name += ":" + i.funcId.id;
}
console.log(`%c${pad(prefix + " " + name.match(/[A-Z]/g).join(""))}%c`, `background:#2B81AF;color:#fff;font-size:xx-large;
text-shadow:rgba(0, 0, 0, 0.5) 2px 2px 1px`, "");
if (i.parent) {
console.log("ROOT", i.parent);
}
console.log("SCOPE", i);
}
styles = [];
dir = start ? "\u2192" : "\u2190";
clevel = `${i.level}`;
tp = i.pos === i.type ? (0, _types2.symName)(i.type) : `${(0, _types2.symName)(i.pos)}:${(0, _types2.symName)(i.type)}`;
descr = `${prefix}${tp}[${clevel}]`;
idtxt = i.id ? `-${i.id}` : "";
ldescr = void 0;
if (i.pos === i.type) {
ldescr = `${prefix}%c${(0, _types2.symName)(i.type)}%c[${clevel}]`;
styles.push((0, _types2.symKind)(i.type) === "ctrl" ? "color:navy;font-size:large" : "color:steelblue", "");
} else {
ldescr = `${prefix}%c${(0, _types2.symName)(i.pos)}:%c${(0, _types2.symName)(i.type)}%c[${clevel}]`;
styles.push((0, _types2.symKind)(i.pos) === "ctrl" ? "color:olive;font-size:large" : "color:green");
styles.push((0, _types2.symKind)(i.type) === "ctrl" ? "color:navy;font-size:large" : "color:steelblue", "");
}
if (start && console.group != null) {
if (x === 0 && i.collapsed !== false || i.collapsed) {
console.groupCollapsed(descr);
} else {
console.group(descr);
}
}
n = "";
({
node
} = i);
comments = [];
commentsTxt = "";
t = [].concat(i.comments || [], i.tcomments || []);
if (t.length) {
pstyle = "color:green;font-size:large";
styles.push(pstyle);
_loop = M.iterator(t);
for (; !(_loop = _loop.step()).done;) {
j = _loop.value;
comments.push(`%c${j.txt}%c`);
mod = !i.enter ? "font-size:small;font-style:italic" : "font-weight:bolder;font-size:large";
_s = `${j.style || ""}${mod}`;
styles.push(_s, "");
}
if (comments.length) {
commentsTxt = "%c[" + comments.join(" ") + "%c]%c";
styles.push(pstyle, "");
}
}
if (node != null && i.type !== _types2.Tag.Array && (0, _types2.symKind)(i.type) !== "ctrl") {
n = ccg(node);
if (n.length > MAX_TRACE_CODE_LEN) {
n = n.substr(0, MAX_TRACE_CODE_LEN) + "...";
}
n = `%c ${n} %c`;
styles.push(i.enter ? enterStyles : leaveStyles, "");
({
loc
} = node);
if (loc != null) {
({
source: f,
start: s1,
end: e
} = loc);
n += ` %c@${f || "?"}-${s1.line}:${s1.column}..${e.line}:${e.column}%c`;
styles.push(positionStyle, "");
} else {
n += " %c@new%c";
styles.push(newTagStyle, "");
}
}
console.log(`%c${dir}%c ${ldescr}@${x}${idtxt}${commentsTxt} ${n}`, dirStyle, "", ...styles, i);
if (start) {
browserTraceImpl.$step = 5;
browserTraceImpl.value = i;
return browserTraceImpl;
} else {
console.groupEnd();
browserTraceImpl.$step = 5;
browserTraceImpl.$step = 5;
continue;
}
} else {
console.log(`${prefix}len: ${x}`);
browserTraceImpl.$step = 0;
browserTraceImpl.value = void 0;
browserTraceImpl.done = true;
return browserTraceImpl;
}
case 5:
x++;
browserTraceImpl.$step = 4;
browserTraceImpl.$step = 4;
continue;
case 0:
browserTraceImpl.$step = 0;
browserTraceImpl.value = p;
browserTraceImpl.done = true;
return browserTraceImpl;
case 1:
browserTraceImpl.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
function traceAllImpl(prefix, s) {
return [...(prefix[0] === "!" ? traceImpl(prefix, s) : verify(traceImpl(prefix, s)))];
}
function traceArgs(impl) {
return function traceImpl(prefix, s) {
if (prefix == null || prefix.substr == null) {
if (s == null) s = prefix;
prefix = "";
}
if (prefix.length) prefix += ":";
if (s == null) return s => impl(prefix, s);
return impl(prefix, s);
};
}
function cleanComments(s) {
var i,
cleanComments = M.generator(),
loop,
r,
p;
cleanComments.step = cleanComments_1;
cleanComments.$step = 3;
return cleanComments;
function cleanComments_1(p) {
for (;;) {
switch (cleanComments.$cur = cleanComments.$step) {
case 3:
loop = M.iterator(s);
cleanComments.$step = 4;
cleanComments.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
if (i.enter) {
i.comments = null;
i.tcomments = null;
if (i.node) {
i.node.leadingComments = null;
i.node.trailingComments = null;
}
}
cleanComments.$step = 4;
cleanComments.value = i;
return cleanComments;
} else {
cleanComments.$step = 0;
cleanComments.value = void 0;
cleanComments.done = true;
return cleanComments;
}
case 0:
cleanComments.$step = 0;
cleanComments.value = p;
cleanComments.done = true;
return cleanComments;
case 1:
cleanComments.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
const traceLazy = exports.traceLazy = traceArgs(traceImpl);
const traceAll = exports.traceAll = traceArgs(traceAllImpl);
const traceDoc = exports.traceDoc = traceArgs(traceDocImpl);
function markNodeType(s) {
var i,
ti,
markNodeType = M.generator(),
loop,
r,
p;
markNodeType.step = markNodeType_1;
markNodeType.$step = 3;
return markNodeType;
function markNodeType_1(p) {
for (;;) {
switch (markNodeType.$cur = markNodeType.$step) {
case 3:
loop = M.iterator(s);
markNodeType.$step = 4;
markNodeType.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
ti = (0, _types2.typeInfo)(i);
if (ti.kind === "ctrl") {
(i.comments || (i.comments = [])).unshift({
txt: (0, _types2.symName)(i.type),
style: styles.nodetype
});
} else {
if (i.comments != null && i.comments.length) {
(i.comments || (i.comments = [])).unshift({
txt: (0, _types2.symName)(i.type).match(/[A-Z]/g).join(""),
style: styles.nodetype
});
}
}
markNodeType.$step = 4;
markNodeType.value = i;
return markNodeType;
} else {
markNodeType.$step = 0;
markNodeType.value = void 0;
markNodeType.done = true;
return markNodeType;
}
case 0:
markNodeType.$step = 0;
markNodeType.value = p;
markNodeType.done = true;
return markNodeType;
case 1:
markNodeType.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
const color = exports.color = _config.default.browserDebug ? function color(s) {
var i,
j,
_j,
_color = M.generator(),
loop,
_loop,
loop1,
r,
p;
_color.step = color_1;
_color.$step = 3;
return _color;
function color_1(p) {
var a;
for (;;) {
switch (_color.$cur = _color.$step) {
case 3:
if (!_config.default.color) {
_color.$step = 5;
return _color.$delegate(s);
} else {
loop = M.iterator((0, _core.hier)(s));
_color.$step = 4;
_color.$step = 4;
continue;
}
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
if (i.start && i.value.comments) {
_loop = M.iterator(i.value.comments);
for (; !(_loop = _loop.step()).done;) {
j = _loop.value;
if (j.style != null && (0, _types2.typeInfo)(i).kind === "node") {
j.txt = `%c${j.txt}%c`;
j.args = [j.style, ""];
}
}
}
if (!i.start && i.value.tcomments) {
loop1 = M.iterator(i.value.tcomments);
for (; !(loop1 = loop1.step()).done;) {
_j = loop1.value;
if (_j.style != null && (0, _types2.typeInfo)(i).kind === "node") {
_j.txt = `%c${_j.txt}%c`;
_j.args = [_j.style, ""];
}
}
}
if (i.start) {
a = i.value;
_color.$step = 4;
_color.value = a;
return _color;
} else {
_color.$step = 4;
_color.$step = 4;
continue;
}
} else {
_color.$step = 0;
_color.value = void 0;
_color.done = true;
return _color;
}
case 0:
_color.$step = 0;
_color.value = p;
_color.done = true;
return _color;
case 1:
_color.$step = 0;
throw p;
case 5:
_color.$step = 0;
_color.$step = 0;
p = r;
continue;
case 2:
return _color.$redir(p);
default:
throw new Error("invalid state");
}
}
}
} : s => s;
function getArgs(s) {
var i,
j,
k,
_j,
_k,
getArgs = M.generator(),
loop,
_loop,
loop1,
loop2,
loop3,
r,
p;
getArgs.step = getArgs_1;
getArgs.$step = 3;
return getArgs;
function getArgs_1(p) {
for (;;) {
switch (getArgs.$cur = getArgs.$step) {
case 3:
loop = M.iterator((0, _core.hier)(s));
getArgs.$step = 4;
getArgs.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
if (i.start && i.value.comments) {
_loop = M.iterator(i.value.comments);
getArgs.$step = 5;
getArgs.$step = 5;
continue;
} else {
getArgs.$step = 7;
getArgs.$step = 7;
continue;
}
} else {
getArgs.$step = 0;
getArgs.value = void 0;
getArgs.done = true;
return getArgs;
}
case 5:
if (!(_loop = _loop.step()).done) {
j = _loop.value;
if (j.args) {
loop1 = M.iterator(j.args);
getArgs.$step = 6;
getArgs.$step = 6;
continue;
} else {
getArgs.$step = 5;
getArgs.$step = 5;
continue;
}
} else {
getArgs.$step = 7;
getArgs.$step = 7;
continue;
}
case 6:
if (!(loop1 = loop1.step()).done) {
k = loop1.value;
getArgs.$step = 6;
getArgs.value = k;
return getArgs;
} else {
getArgs.$step = 5;
getArgs.$step = 5;
continue;
}
case 7:
if (!i.start && i.value.tcomments) {
loop2 = M.iterator(i.value.tcomments);
getArgs.$step = 8;
getArgs.$step = 8;
continue;
} else {
getArgs.$step = 4;
getArgs.$step = 4;
continue;
}
case 8:
if (!(loop2 = loop2.step()).done) {
_j = loop2.value;
if (_j.args) {
loop3 = M.iterator(_j.args);
getArgs.$step = 9;
getArgs.$step = 9;
continue;
} else {
getArgs.$step = 8;
getArgs.$step = 8;
continue;
}
} else {
getArgs.$step = 4;
getArgs.$step = 4;
continue;
}
case 9:
if (!(loop3 = loop3.step()).done) {
_k = loop3.value;
getArgs.$step = 9;
getArgs.value = _k;
return getArgs;
} else {
getArgs.$step = 8;
getArgs.$step = 8;
continue;
}
case 0:
getArgs.$step = 0;
getArgs.value = p;
getArgs.done = true;
return getArgs;
case 1:
getArgs.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
function applyComments(s) {
var i,
node,
applyComments = M.generator(),
loop,
r,
p;
applyComments.step = applyComments_1;
applyComments.$step = 3;
return applyComments;
function applyComments_1(p) {
var a;
for (;;) {
switch (applyComments.$cur = applyComments.$step) {
case 3:
loop = M.iterator((0, _core.hier)(s));
applyComments.$step = 4;
applyComments.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
node = i.value.node;
if (i.start && node != null) {
if (i.value.comments != null && i.value.comments.length) {
(node.leadingComments || (node.leadingComments = [])).push({
type: "CommentBlock",
value: i.value.comments.map(v => v.txt).join("|")
});
}
if (!i.start && i.value.tcomments != null && i.value.tcomments.length) {
(node.trailingComments || (node.trailingComments = [])).push({
type: "CommentBlock",
value: i.value.tcomments.map(v => v.txt).join("|")
});
}
}
if (i.start) {
a = i.value;
applyComments.$step = 4;
applyComments.value = a;
return applyComments;
} else {
applyComments.$step = 4;
applyComments.$step = 4;
continue;
}
} else {
applyComments.$step = 0;
applyComments.value = void 0;
applyComments.done = true;
return applyComments;
}
case 0:
applyComments.$step = 0;
applyComments.value = p;
applyComments.done = true;
return applyComments;
case 1:
applyComments.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
const dumpToConsole = exports.dumpToConsole = (0, _combinators.curry)(function toConsole(tag, s) {
var root, name, col, args;
s = (0, _core.lookahead)(s);
root = s.buf;
name = (0, _types2.symName)(root.type).match(/[A-Z]/g).join("");
if (root.funcId) name += ":" + root.funcId.id;
if (_config.default.browserDebug) (tag[0] === "+" ? console.group : console.groupCollapsed)(`dump %c${tag} %c${name}`, "color:orange;font-size:large", "color:coral");else console.log(`dump ${tag}`);
col = (0, _combinators.pipe)(color, tempNames, _core.toArray, applyComments, _core.toArray)(s);
args = Array.from(getArgs(col));
(0, _core.consume)((0, _core.fromIterable)(verify(col)));
console.log((0, _generator.default)(col[0].node).code, ...args);
if (_config.default.browserDebug) console.groupEnd();
});
const dumpDoc = exports.dumpDoc = (0, _combinators.curry)(function (tag, root) {
dumpToConsole(tag, (0, _core.dft)(root));
return root;
});
const fin = exports.fin = (0, _combinators.pipe)(tempNames, applyComments, _core.toArray);
function dumpToStr(s, opts = {}) {
return (0, _generator.default)((0, _core.consume)(s), opts).code;
}
function setComment(i, txt, style = "none") {
style = style.substr && styles[style] || style;
(i.comments || (i.comments = [])).push({
txt,
style
});
return i;
}
function setEndComment(i, txt, style = "none") {
style = style.substr && styles[style] || style;
(i.tcomments || (i.tcomments = [])).push({
txt,
style
});
return i;
}
function copyComment(f, t) {
if (f.comments != null) (t.comments || (t.comments = [])).push(...f.comments);
if (f.tcomments != null) (t.tcomments || (t.tcomments = [])).push(...f.tcomments);
return t;
}
const styles = {
large: "font-size:xx-large;color:orange",
hl: "font-size:large;color:navy;",
small: "font-size:large;color:navy;",
smallH: "font-size:large;color:orange;font-weight:bolder",
nodetype: "font-size:xx-small;color:green;font-weight:bolder",
none: ""
};
/**
* sets temporal `node.name` for each Identifier for debug dumps outputs
*/
function tempNames(s) {
var i,
tempNames = M.generator(),
loop,
r,
p;
tempNames.step = tempNames_1;
tempNames.$step = 3;
return tempNames;
function tempNames_1(p) {
for (;;) {
switch (tempNames.$cur = tempNames.$step) {
case 3:
loop = M.iterator(s);
tempNames.$step = 4;
tempNames.$step = 4;
continue;
case 4:
if (!(loop = loop.step()).done) {
i = loop.value;
if (i.type === _types2.Tag.Identifier && i.sym != null && (!i.node.name || i.node.name !== i.sym.orig)) {
i.node.name = i.sym.strict ? i.sym.name : i.sym.id;
}
tempNames.$step = 4;
tempNames.value = i;
return tempNames;
} else {
tempNames.$step = 0;
tempNames.value = void 0;
tempNames.done = true;
return tempNames;
}
case 0:
tempNames.$step = 0;
tempNames.value = p;
tempNames.done = true;
return tempNames;
case 1:
tempNames.$step = 0;
throw p;
default:
throw new Error("invalid state");
}
}
}
}
function tempNamesRange(from, to) {
var i;
var loop = M.iterator((0, _core.dft)(from, to));
for (; !(loop = loop.step()).done;) {
i = loop.value;
if (i.type === _types2.Tag.Identifier && i.sym != null && (!i.node.name || i.node.name !== i.sym.orig)) i.node.name = i.sym.strict ? i.sym.name : i.sym.id;
}
}