allow local data to override globals

pull/186/head
Rich Harris 8 years ago
parent 6444e8da29
commit bdba7531df

@ -131,22 +131,31 @@ export default function createGenerator ( parsed, source, names ) {
if ( parent && parent.type === 'CallExpression' && node === parent.callee && generator.helpers[ name ] ) {
generator.code.prependRight( node.start, `template.helpers.` );
return;
}
if ( name === 'event' && isEventHandler ) {
return;
else if ( name === 'event' && isEventHandler ) {
// noop
}
if ( contexts[ name ] ) {
else if ( contexts[ name ] ) {
dependencies.push( ...contextDependencies[ name ] );
if ( !~usedContexts.indexOf( name ) ) usedContexts.push( name );
} else if ( indexes[ name ] ) {
}
else if ( indexes[ name ] ) {
const context = indexes[ name ];
if ( !~usedContexts.indexOf( context ) ) usedContexts.push( context );
} else if ( !globalWhitelist[ name ] ) {
}
else {
if ( globalWhitelist[ name ] ) {
generator.code.prependRight( node.start, `( '${name}' in root ? root.` );
generator.code.appendLeft( node.object.end, ` : ${name} )` );
} else {
generator.code.prependRight( node.start, `root.` );
}
dependencies.push( name );
generator.code.prependRight( node.start, `root.` );
if ( !~usedContexts.indexOf( 'root' ) ) usedContexts.push( 'root' );
}

@ -0,0 +1,12 @@
export default {
data: {
x: 10
},
html: 'potato',
test ( assert, component, target ) {
component.set({ x: 3 });
assert.htmlEqual( target.innerHTML, 'potato' );
}
};

@ -0,0 +1,15 @@
{{Math.min(x, 5)}}
<script>
export default {
data () {
return {
Math: {
min ( a, b ) {
return 'potato';
}
}
};
}
};
</script>

@ -0,0 +1,12 @@
export default {
data: {
x: 10
},
html: 'potato',
test ( assert, component, target ) {
component.set({ x: 3 });
assert.htmlEqual( target.innerHTML, 'potato' );
}
};

@ -0,0 +1,13 @@
{{Math.min(x, 5)}}
<script>
export default {
helpers: {
Math: {
min ( a, b ) {
return 'potato';
}
}
}
};
</script>
Loading…
Cancel
Save