From e5c9c8f40ffad3105d09005f71ba880d814b7171 Mon Sep 17 00:00:00 2001 From: Tan Li Hau Date: Tue, 19 May 2020 14:41:45 +0800 Subject: [PATCH] runtime error when get_current_component in on_mount --- src/runtime/internal/scheduler.ts | 2 ++ .../samples/onmount-get-current-component/_config.js | 7 +++++++ .../samples/onmount-get-current-component/main.svelte | 7 +++++++ 3 files changed, 16 insertions(+) create mode 100644 test/runtime/samples/onmount-get-current-component/_config.js create mode 100644 test/runtime/samples/onmount-get-current-component/main.svelte diff --git a/src/runtime/internal/scheduler.ts b/src/runtime/internal/scheduler.ts index b0db71035a98..0148e196a795 100644 --- a/src/runtime/internal/scheduler.ts +++ b/src/runtime/internal/scheduler.ts @@ -46,6 +46,8 @@ export function flush() { update(component.$$); } + set_current_component(null); + dirty_components.length = 0; while (binding_callbacks.length) binding_callbacks.pop()(); diff --git a/test/runtime/samples/onmount-get-current-component/_config.js b/test/runtime/samples/onmount-get-current-component/_config.js new file mode 100644 index 000000000000..ddbe6c4918d4 --- /dev/null +++ b/test/runtime/samples/onmount-get-current-component/_config.js @@ -0,0 +1,7 @@ +export default { + error: `Function called outside component initialization`, + after_test() { + // clear cache for `svelte/internal` + delete require.cache[require.resolve(process.cwd() + '/internal')]; + }, +}; \ No newline at end of file diff --git a/test/runtime/samples/onmount-get-current-component/main.svelte b/test/runtime/samples/onmount-get-current-component/main.svelte new file mode 100644 index 000000000000..1c5b04a58740 --- /dev/null +++ b/test/runtime/samples/onmount-get-current-component/main.svelte @@ -0,0 +1,7 @@ + \ No newline at end of file