don't add event to expectedProperties - fixes #972

pull/1004/head
Rich Harris 7 years ago committed by GitHub
parent 797165b5a8
commit d10f7fbdbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -645,7 +645,11 @@ export default class Generator {
} = this; } = this;
const { html } = this.parsed; const { html } = this.parsed;
const contextualise = (node: Node, contextDependencies: Map<string, string[]>, indexes: Set<string>) => { const contextualise = (
node: Node, contextDependencies: Map<string, string[]>,
indexes: Set<string>,
isEventHandler: boolean
) => {
this.addSourcemapLocations(node); // TODO this involves an additional walk — can we roll it in somewhere else? this.addSourcemapLocations(node); // TODO this involves an additional walk — can we roll it in somewhere else?
let scope = annotateWithScopes(node); let scope = annotateWithScopes(node);
@ -663,7 +667,7 @@ export default class Generator {
if (isReference(node, parent)) { if (isReference(node, parent)) {
const { name } = flattenReference(node); const { name } = flattenReference(node);
if (scope && scope.has(name) || helpers.has(name)) return; if (scope && scope.has(name) || helpers.has(name) || (name === 'event' && isEventHandler)) return;
if (contextDependencies.has(name)) { if (contextDependencies.has(name)) {
contextDependencies.get(name).forEach(dependency => { contextDependencies.get(name).forEach(dependency => {
@ -728,7 +732,7 @@ export default class Generator {
} }
if (node.type === 'EachBlock') { if (node.type === 'EachBlock') {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
contextDependencies = new Map(contextDependencies); contextDependencies = new Map(contextDependencies);
contextDependencies.set(node.context, node.metadata.dependencies); contextDependencies.set(node.context, node.metadata.dependencies);
@ -752,7 +756,7 @@ export default class Generator {
} }
if (node.type === 'AwaitBlock') { if (node.type === 'AwaitBlock') {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
contextDependencies = new Map(contextDependencies); contextDependencies = new Map(contextDependencies);
contextDependencies.set(node.value, node.metadata.dependencies); contextDependencies.set(node.value, node.metadata.dependencies);
@ -762,33 +766,33 @@ export default class Generator {
} }
if (node.type === 'IfBlock') { if (node.type === 'IfBlock') {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
} }
if (node.type === 'MustacheTag' || node.type === 'RawMustacheTag' || node.type === 'AttributeShorthand') { if (node.type === 'MustacheTag' || node.type === 'RawMustacheTag' || node.type === 'AttributeShorthand') {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
this.skip(); this.skip();
} }
if (node.type === 'Binding') { if (node.type === 'Binding') {
node.metadata = contextualise(node.value, contextDependencies, indexes); node.metadata = contextualise(node.value, contextDependencies, indexes, false);
this.skip(); this.skip();
} }
if (node.type === 'EventHandler' && node.expression) { if (node.type === 'EventHandler' && node.expression) {
node.expression.arguments.forEach((arg: Node) => { node.expression.arguments.forEach((arg: Node) => {
arg.metadata = contextualise(arg, contextDependencies, indexes); arg.metadata = contextualise(arg, contextDependencies, indexes, true);
}); });
this.skip(); this.skip();
} }
if (node.type === 'Transition' && node.expression) { if (node.type === 'Transition' && node.expression) {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
this.skip(); this.skip();
} }
if (node.type === 'Component' && node.name === ':Component') { if (node.type === 'Component' && node.name === ':Component') {
node.metadata = contextualise(node.expression, contextDependencies, indexes); node.metadata = contextualise(node.expression, contextDependencies, indexes, false);
} }
}, },

@ -0,0 +1,5 @@
export default {
dev: true,
warnings: []
};

@ -0,0 +1 @@
<button on:click='console.log(event)'>click me</button>
Loading…
Cancel
Save