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