prevent malformed code when injecting invalidate statements

pull/3158/head
Richard Harris 6 years ago
parent f341befacb
commit 8e368d86a3

@ -459,7 +459,7 @@ export default class Expression {
if (/^(Break|Continue|Return)Statement/.test(node.type)) {
if (node.argument) {
code.overwrite(node.start, node.argument.start, `var $$result = `);
code.appendLeft(node.argument.end, `${insert}; return $$result`);
code.appendLeft(node.end, `${insert}; return $$result`);
} else {
code.prependRight(node.start, `${insert}; `);
}

@ -0,0 +1,22 @@
export default {
html: `
<button>click me</button>
<p>1</p>
<p>2</p>
<p>3</p>
`,
async test({ assert, component, target, window }) {
const button = target.querySelector('button');
const click = new window.MouseEvent('click');
await button.dispatchEvent(click);
assert.htmlEqual(target.innerHTML, `
<button>click me</button>
<p>2</p>
<p>4</p>
<p>6</p>
`);
}
}

@ -0,0 +1,13 @@
<script>
let list = [1, 2, 3];
</script>
<button on:click={event => {
list = list.map(item => {
return item * 2;
});
}}>click me</button>
{#each list as number}
<p>{number}</p>
{/each}
Loading…
Cancel
Save