diff --git a/src/runtime/index.ts b/src/runtime/index.ts index 8e12f9f0ee..9ad40d1792 100644 --- a/src/runtime/index.ts +++ b/src/runtime/index.ts @@ -9,6 +9,7 @@ export { getContext, getAllContexts, hasContext, + deleteContext, tick, createEventDispatcher, SvelteComponentDev as SvelteComponent, diff --git a/src/runtime/internal/lifecycle.ts b/src/runtime/internal/lifecycle.ts index bb3df3d295..8656b2bd4f 100644 --- a/src/runtime/internal/lifecycle.ts +++ b/src/runtime/internal/lifecycle.ts @@ -59,7 +59,11 @@ export function getAllContexts = Map>(): T { } export function hasContext(key): boolean { - return get_current_component().$$.context.has(key); + return get_current_component().$$.context.has(key); +} + +export function deleteContext(key): boolean { + return get_current_component().$$.context.delete(key); } // TODO figure out if we still want to support diff --git a/test/runtime/samples/context-api-e/Delete.svelte b/test/runtime/samples/context-api-e/Delete.svelte new file mode 100644 index 0000000000..3282282ba0 --- /dev/null +++ b/test/runtime/samples/context-api-e/Delete.svelte @@ -0,0 +1,7 @@ + + +
{deleted}
+ diff --git a/test/runtime/samples/context-api-e/Leaf.svelte b/test/runtime/samples/context-api-e/Leaf.svelte new file mode 100644 index 0000000000..cf46f6e0ea --- /dev/null +++ b/test/runtime/samples/context-api-e/Leaf.svelte @@ -0,0 +1,7 @@ + + +
{has}
+ diff --git a/test/runtime/samples/context-api-e/Nested.svelte b/test/runtime/samples/context-api-e/Nested.svelte new file mode 100644 index 0000000000..35a181eb26 --- /dev/null +++ b/test/runtime/samples/context-api-e/Nested.svelte @@ -0,0 +1,6 @@ + + + diff --git a/test/runtime/samples/context-api-e/_config.js b/test/runtime/samples/context-api-e/_config.js new file mode 100644 index 0000000000..5dff100eed --- /dev/null +++ b/test/runtime/samples/context-api-e/_config.js @@ -0,0 +1,7 @@ +export default { + html: ` +
true
+
false
+
false
+ ` +}; diff --git a/test/runtime/samples/context-api-e/main.svelte b/test/runtime/samples/context-api-e/main.svelte new file mode 100644 index 0000000000..be6fda607e --- /dev/null +++ b/test/runtime/samples/context-api-e/main.svelte @@ -0,0 +1,13 @@ + + + + + + + + +