From 5d8f809abc1eb19676d9f2e80c073c2b19c99fc3 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Tue, 3 Dec 2019 06:23:16 -0800 Subject: [PATCH] Fixes #4041 --- src/compiler/compile/render_dom/index.ts | 10 ++++++++++ test/js/samples/debug-empty/expected.js | 1 + test/js/samples/debug-foo-bar-baz-things/expected.js | 1 + test/js/samples/debug-foo/expected.js | 1 + test/js/samples/debug-hoisted/expected.js | 1 + .../dev-warning-missing-data-computed/expected.js | 1 + test/js/samples/loop-protect/expected.js | 1 + 7 files changed, 16 insertions(+) diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 3d966f8765..348949a44b 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -372,6 +372,14 @@ export default function dom( }) as Expression) }; + const ctx_names = component.compile_options.dev && { + type: 'ArrayExpression', + elements: initial_context.map(member => ({ + type: 'Literal', + value: member.name + }) as Expression) + }; + body.push(b` function ${definition}(${args}) { ${reactive_store_declarations} @@ -408,6 +416,8 @@ export default function dom( ${uses_props && b`$$props = @exclude_internal_props($$props);`} + ${ctx_names && x`$$self.ctx_names = ${ctx_names};`} + return ${return_value}; } `); diff --git a/test/js/samples/debug-empty/expected.js b/test/js/samples/debug-empty/expected.js index 5821faadf1..537f223324 100644 --- a/test/js/samples/debug-empty/expected.js +++ b/test/js/samples/debug-empty/expected.js @@ -87,6 +87,7 @@ function instance($$self, $$props, $$invalidate) { if ("name" in $$props) $$invalidate(0, name = $$props.name); }; + $$self.ctx_names = ["name"]; return [name]; } diff --git a/test/js/samples/debug-foo-bar-baz-things/expected.js b/test/js/samples/debug-foo-bar-baz-things/expected.js index a1d6dba3b3..2d7c0b8be6 100644 --- a/test/js/samples/debug-foo-bar-baz-things/expected.js +++ b/test/js/samples/debug-foo-bar-baz-things/expected.js @@ -194,6 +194,7 @@ function instance($$self, $$props, $$invalidate) { if ("baz" in $$props) $$invalidate(3, baz = $$props.baz); }; + $$self.ctx_names = ["things", "foo", "bar", "baz"]; return [things, foo, bar, baz]; } diff --git a/test/js/samples/debug-foo/expected.js b/test/js/samples/debug-foo/expected.js index af79667cc2..d034a2a689 100644 --- a/test/js/samples/debug-foo/expected.js +++ b/test/js/samples/debug-foo/expected.js @@ -182,6 +182,7 @@ function instance($$self, $$props, $$invalidate) { if ("foo" in $$props) $$invalidate(1, foo = $$props.foo); }; + $$self.ctx_names = ["things", "foo"]; return [things, foo]; } diff --git a/test/js/samples/debug-hoisted/expected.js b/test/js/samples/debug-hoisted/expected.js index eeb9465499..04ffab368a 100644 --- a/test/js/samples/debug-hoisted/expected.js +++ b/test/js/samples/debug-hoisted/expected.js @@ -60,6 +60,7 @@ function instance($$self) { if ("kobzol" in $$props) $$invalidate(1, kobzol = $$props.kobzol); }; + $$self.ctx_names = ["obj", "kobzol"]; return [obj, kobzol]; } diff --git a/test/js/samples/dev-warning-missing-data-computed/expected.js b/test/js/samples/dev-warning-missing-data-computed/expected.js index beb794a50c..9f407cdf00 100644 --- a/test/js/samples/dev-warning-missing-data-computed/expected.js +++ b/test/js/samples/dev-warning-missing-data-computed/expected.js @@ -91,6 +91,7 @@ function instance($$self, $$props, $$invalidate) { } }; + $$self.ctx_names = ["foo", "bar"]; return [foo, bar]; } diff --git a/test/js/samples/loop-protect/expected.js b/test/js/samples/loop-protect/expected.js index 093cccf63c..3c97b8aaa9 100644 --- a/test/js/samples/loop-protect/expected.js +++ b/test/js/samples/loop-protect/expected.js @@ -89,6 +89,7 @@ function instance($$self) { } while (true); } + $$self.ctx_names = []; return []; }