convert `break $;` to `return;`

pull/11334/head
Simon Holthausen 2 years ago
parent 1d17ad0eec
commit 3e2cd3609a

@ -305,11 +305,22 @@ const instance_script = {
state.str.update(start, end, '');
}
},
LabeledStatement(node, { path, state }) {
BreakStatement(node, { state, path }) {
if (path[1].type !== 'LabeledStatement') return;
if (node.label?.name !== '$') return;
state.str.update(
/** @type {number} */ (node.start),
/** @type {number} */ (node.end),
'return;'
);
},
LabeledStatement(node, { path, state, next }) {
if (state.analysis.runes) return;
if (path.length > 1) return;
if (node.label.name !== '$') return;
next();
if (
node.body.type === 'ExpressionStatement' &&
node.body.expression.type === 'AssignmentExpression'

@ -6,6 +6,8 @@
}
$: {
console.log('foo');
if (x) break $;
console.log('bar');
}
$: $count = 1;
</script>

@ -12,6 +12,8 @@
});
run(() => {
console.log('foo');
if (x) return;
console.log('bar');
});
run(() => {
$count = 1;

Loading…
Cancel
Save