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