prevent infinite set loops

pull/31/head
Rich-Harris 8 years ago
parent bbdb87adac
commit 8e96699044

@ -254,9 +254,13 @@ export default function generate ( parsed, source, options ) {
}
setStatements.push( deindent`
if ( setting ) return;
setting = true;
dispatchObservers( observers.immediate, newState, oldState );
if ( mainFragment ) mainFragment.update( state );
dispatchObservers( observers.deferred, newState, oldState );
setting = false;
` );
const topLevelStatements = [];
@ -325,6 +329,8 @@ export default function generate ( parsed, source, options ) {
return state[ key ];
};
let setting = false;
this.set = function set ( newState ) {
${setStatements.join( '\n\n' )}
};

@ -0,0 +1,20 @@
{{#if visible}}
<Foo bind:answer/>
{{else}}
<Foo bind:answer/>
{{/if}}
<script>
import Foo from './Foo.html';
export default {
data: () => ({
visible: true,
answer: 42
}),
components: {
Foo
}
};
</script>
Loading…
Cancel
Save