From 59b886fcbf6d028cbb10bf8b25bbe8ec89e0aca6 Mon Sep 17 00:00:00 2001 From: Tan Li Hau Date: Tue, 26 Nov 2019 22:22:43 +0800 Subject: [PATCH] fix handle marking global variable as dependency --- src/compiler/compile/nodes/Binding.ts | 4 +++- .../samples/bindings-global-dependency/_config.js | 3 +++ .../samples/bindings-global-dependency/main.svelte | 9 +++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 test/runtime/samples/bindings-global-dependency/_config.js create mode 100644 test/runtime/samples/bindings-global-dependency/main.svelte diff --git a/src/compiler/compile/nodes/Binding.ts b/src/compiler/compile/nodes/Binding.ts index b298a9d183..28e6af5aa1 100644 --- a/src/compiler/compile/nodes/Binding.ts +++ b/src/compiler/compile/nodes/Binding.ts @@ -52,7 +52,9 @@ export default class Binding extends Node { } else if (this.is_contextual) { scope.dependencies_for_name.get(name).forEach(name => { const variable = component.var_lookup.get(name); - variable[this.expression.node.type === 'MemberExpression' ? 'mutated' : 'reassigned'] = true; + if (variable) { + variable[this.expression.node.type === 'MemberExpression' ? 'mutated' : 'reassigned'] = true; + } }); } else { const variable = component.var_lookup.get(name); diff --git a/test/runtime/samples/bindings-global-dependency/_config.js b/test/runtime/samples/bindings-global-dependency/_config.js new file mode 100644 index 0000000000..f5ab04de78 --- /dev/null +++ b/test/runtime/samples/bindings-global-dependency/_config.js @@ -0,0 +1,3 @@ +export default { + html: '' +}; \ No newline at end of file diff --git a/test/runtime/samples/bindings-global-dependency/main.svelte b/test/runtime/samples/bindings-global-dependency/main.svelte new file mode 100644 index 0000000000..15a4381a06 --- /dev/null +++ b/test/runtime/samples/bindings-global-dependency/main.svelte @@ -0,0 +1,9 @@ + + +{#each Object.values(data) as object} + +{/each} \ No newline at end of file