From 28cdbc45777afcd2626b13b77d4d588d1b5d11b1 Mon Sep 17 00:00:00 2001 From: Tan Li Hau Date: Wed, 1 Jan 2020 12:09:21 +0800 Subject: [PATCH] fix duplicate get store value --- src/compiler/compile/render_ssr/index.ts | 12 ++---------- test/js/samples/ssr-get-store-value/_config.js | 5 +++++ test/js/samples/ssr-get-store-value/expected.js | 13 +++++++++++++ test/js/samples/ssr-get-store-value/input.svelte | 6 ++++++ 4 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 test/js/samples/ssr-get-store-value/_config.js create mode 100644 test/js/samples/ssr-get-store-value/expected.js create mode 100644 test/js/samples/ssr-get-store-value/input.svelte diff --git a/src/compiler/compile/render_ssr/index.ts b/src/compiler/compile/render_ssr/index.ts index ad22869d32..54e5e70935 100644 --- a/src/compiler/compile/render_ssr/index.ts +++ b/src/compiler/compile/render_ssr/index.ts @@ -46,16 +46,8 @@ export default function ssr( }) .filter(Boolean); - component.rewrite_props(({ name }) => { - const value = `$${name}`; - - let insert = b`${value} = @get_store_value(${name})`; - if (component.compile_options.dev) { - insert = b`@validate_store(${name}, '${name}'); ${insert}`; - } - - return insert; - }); + // handled by `reactive_store_values` + component.rewrite_props(() => b``); const instance_javascript = component.extract_javascript(component.ast.instance); diff --git a/test/js/samples/ssr-get-store-value/_config.js b/test/js/samples/ssr-get-store-value/_config.js new file mode 100644 index 0000000000..803712adec --- /dev/null +++ b/test/js/samples/ssr-get-store-value/_config.js @@ -0,0 +1,5 @@ +export default { + options: { + generate: 'ssr' + } +}; \ No newline at end of file diff --git a/test/js/samples/ssr-get-store-value/expected.js b/test/js/samples/ssr-get-store-value/expected.js new file mode 100644 index 0000000000..f157bdac93 --- /dev/null +++ b/test/js/samples/ssr-get-store-value/expected.js @@ -0,0 +1,13 @@ +/* generated by Svelte vX.Y.Z */ +import { create_ssr_component, escape, get_store_value } from "svelte/internal"; + +import { readable } from "svelte/store"; + +const Component = create_ssr_component(($$result, $$props, $$bindings, $$slots) => { + let $style; + let style = readable("foo"); + $style = get_store_value(style); + return `${escape($style)}`; +}); + +export default Component; \ No newline at end of file diff --git a/test/js/samples/ssr-get-store-value/input.svelte b/test/js/samples/ssr-get-store-value/input.svelte new file mode 100644 index 0000000000..30013b987c --- /dev/null +++ b/test/js/samples/ssr-get-store-value/input.svelte @@ -0,0 +1,6 @@ + + +{$style} \ No newline at end of file