From ac34d5aa439447a017d7ee1c81d65ae1d59cff9d Mon Sep 17 00:00:00 2001 From: daszgfz Date: Tue, 10 Sep 2019 23:22:54 -0400 Subject: [PATCH] finish inlining $$invalidate --- src/compiler/compile/render_dom/index.ts | 6 +++--- src/compiler/compile/render_dom/wrappers/Window.ts | 4 ++-- test/js/samples/bind-online/expected.js | 2 +- test/js/samples/window-binding-scroll/expected.js | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/compiler/compile/render_dom/index.ts b/src/compiler/compile/render_dom/index.ts index 504b5ffe05..3e4eb7c59f 100644 --- a/src/compiler/compile/render_dom/index.ts +++ b/src/compiler/compile/render_dom/index.ts @@ -208,7 +208,7 @@ export default function dom( component.rewrite_props(({ name, reassigned }) => { const value = `$${name}`; - const callback = `$value => { ${value} = $$value; $$invalidate('${value}', ${value}) }`; + const callback = `$value => $$invalidate('${value}', ${value} = $$value)`; if (reassigned) { return `$$subscribe_${name}()`; @@ -290,7 +290,7 @@ export default function dom( }) .map(({ name }) => deindent` ${component.compile_options.dev && `@validate_store(${name.slice(1)}, '${name.slice(1)}');`} - @component_subscribe($$self, ${name.slice(1)}, $$value => { ${name} = $$value; $$invalidate('${name}', ${name}); }); + @component_subscribe($$self, ${name.slice(1)}, $$value => $$invalidate('${name}', ${name} = $$value)); `); const resubscribable_reactive_store_unsubscribers = reactive_stores @@ -337,7 +337,7 @@ export default function dom( const store = component.var_lookup.get(name); if (store && store.reassigned) { - return `${$name}, $$unsubscribe_${name} = @noop, $$subscribe_${name} = () => ($$unsubscribe_${name}(), $$unsubscribe_${name} = @subscribe(${name}, $$value => { ${$name} = $$value; $$invalidate('${$name}', ${$name}); }), ${name})`; + return `${$name}, $$unsubscribe_${name} = @noop, $$subscribe_${name} = () => ($$unsubscribe_${name}(), $$unsubscribe_${name} = @subscribe(${name}, $$value => $$invalidate('${$name}', ${$name} = $$value)), ${name})`; } return $name; diff --git a/src/compiler/compile/render_dom/wrappers/Window.ts b/src/compiler/compile/render_dom/wrappers/Window.ts index c47f12593c..7d7dd4a071 100644 --- a/src/compiler/compile/render_dom/wrappers/Window.ts +++ b/src/compiler/compile/render_dom/wrappers/Window.ts @@ -126,7 +126,7 @@ export default class WindowWrapper extends Wrapper { component.partly_hoisted.push(deindent` function ${handler_name}() { - ${props.map(prop => `${prop.name} = @_window.${prop.value}; $$invalidate('${prop.name}', ${prop.name});`)} + ${props.map(prop => `$$invalidate('${prop.name}', ${prop.name} = @_window.${prop.value});`)} } `); @@ -170,7 +170,7 @@ export default class WindowWrapper extends Wrapper { component.partly_hoisted.push(deindent` function ${handler_name}() { - ${name} = @_navigator.onLine; $$invalidate('${name}', ${name}); + $$invalidate('${name}', ${name} = @_navigator.onLine); } `); diff --git a/test/js/samples/bind-online/expected.js b/test/js/samples/bind-online/expected.js index 0c9faa3ef6..96271a1faf 100644 --- a/test/js/samples/bind-online/expected.js +++ b/test/js/samples/bind-online/expected.js @@ -37,7 +37,7 @@ function instance($$self, $$props, $$invalidate) { let online; function onlinestatuschanged() { - online = navigator.onLine; $$invalidate('online', online); + $$invalidate('online', online = navigator.onLine); } return { online, onlinestatuschanged }; diff --git a/test/js/samples/window-binding-scroll/expected.js b/test/js/samples/window-binding-scroll/expected.js index fbe4596e2b..275a69b0f2 100644 --- a/test/js/samples/window-binding-scroll/expected.js +++ b/test/js/samples/window-binding-scroll/expected.js @@ -68,7 +68,7 @@ function instance($$self, $$props, $$invalidate) { let { y } = $$props; function onwindowscroll() { - y = window.pageYOffset; $$invalidate('y', y); + $$invalidate('y', y = window.pageYOffset); } $$self.$set = $$props => {