From 1a38d043b1b4ff03444ccaf135f3f7b0b4a36629 Mon Sep 17 00:00:00 2001 From: Conduitry Date: Wed, 19 Feb 2020 09:17:31 -0500 Subject: [PATCH] simplify handling of noop $capture_state/$inject_state --- src/compiler/compile/render_dom/index.ts | 8 +++----- src/runtime/internal/dev.ts | 4 ++++ test/js/samples/debug-no-dependencies/expected.js | 8 +------- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index fb2d529e82..17e5eaf750 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -169,9 +169,9 @@ export default function dom( const capturable_vars = component.vars.filter(v => !v.internal && !v.name.startsWith('$$')); - capture_state = capturable_vars.length > 0 - ? x`() => ({ ${capturable_vars.map(prop => p`${prop.name}`)} })` - : x`@noop`; + if (capturable_vars.length > 0) { + capture_state = x`() => ({ ${capturable_vars.map(prop => p`${prop.name}`)} })`; + } const injectable_vars = capturable_vars.filter(v => !v.module && v.writable && v.name[0] !== '$'); @@ -190,8 +190,6 @@ export default function dom( $$self.$inject_state($$props.$$inject); } `; - } else { - inject_state = x`@noop`; } } diff --git a/src/runtime/internal/dev.ts b/src/runtime/internal/dev.ts index 7f4b52eb3b..2d60ffb985 100644 --- a/src/runtime/internal/dev.ts +++ b/src/runtime/internal/dev.ts @@ -120,6 +120,10 @@ export class SvelteComponentDev extends SvelteComponent { console.warn(`Component was already destroyed`); // eslint-disable-line no-console }; } + + $capture_state() {} + + $inject_state() {} } export function loop_guard(timeout) { diff --git a/test/js/samples/debug-no-dependencies/expected.js b/test/js/samples/debug-no-dependencies/expected.js index 9a5cfa3226..9985c814a2 100644 --- a/test/js/samples/debug-no-dependencies/expected.js +++ b/test/js/samples/debug-no-dependencies/expected.js @@ -134,16 +134,10 @@ function create_fragment(ctx) { return block; } -function instance($$self, $$props, $$invalidate) { - $$self.$capture_state = noop; - $$self.$inject_state = noop; - return []; -} - class Component extends SvelteComponentDev { constructor(options) { super(options); - init(this, options, instance, create_fragment, safe_not_equal, {}); + init(this, options, null, create_fragment, safe_not_equal, {}); dispatch_dev("SvelteRegisterComponent", { component: this,