Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
for (const i of s.sub()) {
if (
i.enter &&
i.value.stmt &&
!i.value.eff &&
i.value.savedLabs &&
i.value.savedLabs.length
) {
const lab = s.label();
let pos = i.pos;
for (const j of i.value.savedLabs) {
yield s.enter(pos, Tag.LabeledStatement);
yield s.tok(Tag.label, Tag.Identifier, { node: { name: j } });
pos = Tag.body;
}
yield s.peel(Kit.setPos(i, Tag.body));
yield* _restoreLabeledStatements();
yield* lab();
continue;
}
yield i;
}
}
}
function* _restoreLabeledStatements() {
for (const i of s.sub()) {
if (
i.enter &&
i.value.stmt &&
!i.value.eff &&
i.value.savedLabs &&
i.value.savedLabs.length
) {
const lab = s.label();
let pos = i.pos;
for (const j of i.value.savedLabs) {
yield s.enter(pos, Tag.LabeledStatement);
yield s.tok(Tag.label, Tag.Identifier, { node: { name: j } });
pos = Tag.body;
}
yield s.peel(Kit.setPos(i, Tag.body));
yield* _restoreLabeledStatements();
yield* lab();
continue;
}
yield i;
}
}
}
function* toExpr(pos) {
const lab = sl.label();
const b = sl.take();
if (b.value.stmt) {
yield hl(
"expr",
sl.enter(pos, Tag.CallExpression, { node: { arguments: [] } })
);
yield sl.enter(Tag.callee, Tag.FunctionExpression, {
node: { parameters: [] }
});
if (b.type === Tag.BlockStatement) yield sl.peel(Kit.setPos(b, Tag.body));
else {
yield sl.enter(Tag.body, Tag.BlockStatement);
yield sl.enter(Tag.body, Tag.Array);
yield sl.peel(Kit.setPos(b, Tag.push));
}
} else {
yield sl.peel(Kit.setPos(b, pos));
}
yield* walk();
yield* lab();
}
function* toBlock(pos) {
yield* b.leave();
}
break;
case "forPar":
if (i.enter) {
yield D.copyComment(
i,
D.setComment(
b.enter(i.pos, Tag.ArrowFunctionExpression, {
node: { params: [] }
}),
`PAR`,
"color:blue;font-size:large"
)
);
yield b.enter(Tag.body, Tag.ForStatement);
yield* walk();
yield* b.leave();
yield* b.leave();
}
break;
case "effExpr":
if (i.enter) {
yield b.enter(i.pos, Kit.Subst);
yield* walk();
yield* b.leave();
}
break;
case "chain":
if (i.enter) {
yield D.copyComment(
i,