fix simple if blocks with top-level or conditions (#532)

pull/533/head
Conduitry 8 years ago
parent 8e87c688ae
commit f74941b293

@ -68,7 +68,7 @@ export default function visitIfBlock ( generator, block, state, node ) {
function simple ( generator, block, state, node, branch, dynamic, { name, anchor, params } ) { function simple ( generator, block, state, node, branch, dynamic, { name, anchor, params } ) {
block.builders.create.addBlock( deindent` block.builders.create.addBlock( deindent`
var ${name} = ${branch.condition} && ${branch.block}( ${params}, ${block.component} ); var ${name} = (${branch.condition}) && ${branch.block}( ${params}, ${block.component} );
` ); ` );
const isToplevel = !state.parentNode; const isToplevel = !state.parentNode;
@ -154,4 +154,4 @@ function compound ( generator, block, state, node, branches, dynamic, { name, an
} }
` ); ` );
} }
} }

@ -3,7 +3,7 @@ import { appendNode, assign, createComment, createElement, createText, detachNod
function create_main_fragment ( state, component ) { function create_main_fragment ( state, component ) {
var if_block_anchor = createComment(); var if_block_anchor = createComment();
var if_block = state.foo && create_if_block( state, component ); var if_block = (state.foo) && create_if_block( state, component );
return { return {
mount: function ( target, anchor ) { mount: function ( target, anchor ) {
@ -90,4 +90,4 @@ SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = functio
this._torndown = true; this._torndown = true;
}; };
export default SvelteComponent; export default SvelteComponent;

@ -3,7 +3,7 @@ import { appendNode, assign, createComment, createElement, createText, detachNod
function create_main_fragment ( state, component ) { function create_main_fragment ( state, component ) {
var div = createElement( 'div' ); var div = createElement( 'div' );
var if_block = state.a && create_if_block( state, component ); var if_block = (state.a) && create_if_block( state, component );
if ( if_block ) if_block.mount( div, null ); if ( if_block ) if_block.mount( div, null );
var text = createText( "\n\n\t" ); var text = createText( "\n\n\t" );
@ -13,13 +13,13 @@ function create_main_fragment ( state, component ) {
appendNode( createText( "this can be used as an anchor" ), p ); appendNode( createText( "this can be used as an anchor" ), p );
appendNode( createText( "\n\n\t" ), div ); appendNode( createText( "\n\n\t" ), div );
var if_block_1 = state.b && create_if_block_1( state, component ); var if_block_1 = (state.b) && create_if_block_1( state, component );
if ( if_block_1 ) if_block_1.mount( div, null ); if ( if_block_1 ) if_block_1.mount( div, null );
var text_3 = createText( "\n\n\t" ); var text_3 = createText( "\n\n\t" );
appendNode( text_3, div ); appendNode( text_3, div );
var if_block_2 = state.c && create_if_block_2( state, component ); var if_block_2 = (state.c) && create_if_block_2( state, component );
if ( if_block_2 ) if_block_2.mount( div, null ); if ( if_block_2 ) if_block_2.mount( div, null );
var text_4 = createText( "\n\n\t" ); var text_4 = createText( "\n\n\t" );
@ -29,7 +29,7 @@ function create_main_fragment ( state, component ) {
appendNode( createText( "so can this" ), p_1 ); appendNode( createText( "so can this" ), p_1 );
appendNode( createText( "\n\n\t" ), div ); appendNode( createText( "\n\n\t" ), div );
var if_block_3 = state.d && create_if_block_3( state, component ); var if_block_3 = (state.d) && create_if_block_3( state, component );
if ( if_block_3 ) if_block_3.mount( div, null ); if ( if_block_3 ) if_block_3.mount( div, null );
var text_7 = createText( "\n\n\t" ); var text_7 = createText( "\n\n\t" );
@ -37,7 +37,7 @@ function create_main_fragment ( state, component ) {
var text_8 = createText( "\n\n" ); var text_8 = createText( "\n\n" );
var if_block_4_anchor = createComment(); var if_block_4_anchor = createComment();
var if_block_4 = state.e && create_if_block_4( state, component ); var if_block_4 = (state.e) && create_if_block_4( state, component );
return { return {
mount: function ( target, anchor ) { mount: function ( target, anchor ) {
@ -240,4 +240,4 @@ SvelteComponent.prototype.teardown = SvelteComponent.prototype.destroy = functio
this._torndown = true; this._torndown = true;
}; };
export default SvelteComponent; export default SvelteComponent;

@ -0,0 +1,15 @@
export default {
data: {
a: true,
b: false
},
html: '<p>i am visible</p>',
test ( assert, component, target ) {
component.set({ a: false });
assert.htmlEqual( target.innerHTML, '' );
component.set({ b: true });
assert.htmlEqual( target.innerHTML, '<p>i am visible</p>' );
}
};

@ -0,0 +1,3 @@
{{#if a || b}}
<p>i am visible</p>
{{/if}}
Loading…
Cancel
Save