From 65b0b6a571a0a2e0b23d6f3bc32c2aea44ca8cc8 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 1 Jul 2019 11:18:56 -0400 Subject: [PATCH] on second thoughts --- src/compiler/compile/nodes/Action.ts | 2 +- src/compiler/compile/nodes/shared/Expression.ts | 4 ++-- test/js/samples/action-custom-event-handler/expected.js | 7 ++++++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/compiler/compile/nodes/Action.ts b/src/compiler/compile/nodes/Action.ts index 9f1df86c18..77b9e3c846 100644 --- a/src/compiler/compile/nodes/Action.ts +++ b/src/compiler/compile/nodes/Action.ts @@ -17,7 +17,7 @@ export default class Action extends Node { component.qualify(info.name); this.expression = info.expression - ? new Expression(component, this, scope, info.expression, true) + ? new Expression(component, this, scope, info.expression) : null; this.uses_context = this.expression && this.expression.uses_context; diff --git a/src/compiler/compile/nodes/shared/Expression.ts b/src/compiler/compile/nodes/shared/Expression.ts index 96dbdb226d..e85c1de5e5 100644 --- a/src/compiler/compile/nodes/shared/Expression.ts +++ b/src/compiler/compile/nodes/shared/Expression.ts @@ -146,11 +146,11 @@ export default class Expression { contextual_dependencies.add(name); - if (!function_expression || !lazy) { + if (!lazy) { template_scope.dependencies_for_name.get(name).forEach(name => dependencies.add(name)); } } else { - if (!function_expression || !lazy) { + if (!lazy) { dependencies.add(name); } diff --git a/test/js/samples/action-custom-event-handler/expected.js b/test/js/samples/action-custom-event-handler/expected.js index 4b758da030..ea55f1629b 100644 --- a/test/js/samples/action-custom-event-handler/expected.js +++ b/test/js/samples/action-custom-event-handler/expected.js @@ -23,7 +23,12 @@ function create_fragment(ctx) { foo_action = foo.call(null, button, ctx.foo_function) || {}; }, - p: noop, + p(changed, ctx) { + if (typeof foo_action.update === 'function' && changed.bar) { + foo_action.update.call(null, ctx.foo_function); + } + }, + i: noop, o: noop,