From 6448e07521a76bccaa387feb8291cc11ec248ca3 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 16 Aug 2024 06:41:52 -0400 Subject: [PATCH] breaking: remove foreign namespace (#12869) * breaking: remove foreign namespace * regenerate --- .changeset/gorgeous-coats-jog.md | 5 ++ .../compiler/phases/1-parse/read/options.js | 12 +---- .../2-analyze/visitors/BindDirective.js | 4 -- .../2-analyze/visitors/RegularElement.js | 14 ++---- .../phases/2-analyze/visitors/shared/a11y.js | 3 -- .../2-analyze/visitors/shared/element.js | 2 +- .../client/visitors/RegularElement.js | 44 ++--------------- .../client/visitors/SvelteElement.js | 2 +- .../client/visitors/shared/element.js | 6 +-- .../server/visitors/RegularElement.js | 5 +- .../server/visitors/shared/element.js | 2 +- .../src/compiler/phases/3-transform/utils.js | 48 ++++++++----------- packages/svelte/src/compiler/types/index.d.ts | 2 +- .../svelte/src/compiler/types/template.d.ts | 5 +- .../svelte/src/compiler/validate-options.js | 2 +- .../_config.js | 26 ---------- .../main.svelte | 4 -- .../_config.js | 20 -------- .../main.svelte | 4 -- .../a11y-in-foreign-namespace/input.svelte | 7 --- .../a11y-in-foreign-namespace/warnings.json | 1 - .../errors.json | 14 ------ .../input.svelte | 6 --- .../samples/namespace-invalid/errors.json | 2 +- .../samples/namespace-non-literal/errors.json | 2 +- packages/svelte/tests/validator/test.ts | 18 +------ packages/svelte/types/index.d.ts | 14 ++---- 27 files changed, 52 insertions(+), 222 deletions(-) create mode 100644 .changeset/gorgeous-coats-jog.md delete mode 100644 packages/svelte/tests/runtime-legacy/samples/attribute-casing-foreign-namespace-compiler-option/_config.js delete mode 100644 packages/svelte/tests/runtime-legacy/samples/attribute-casing-foreign-namespace-compiler-option/main.svelte delete mode 100644 packages/svelte/tests/runtime-legacy/samples/attribute-casing-foreign-namespace/_config.js delete mode 100644 packages/svelte/tests/runtime-legacy/samples/attribute-casing-foreign-namespace/main.svelte delete mode 100644 packages/svelte/tests/validator/samples/a11y-in-foreign-namespace/input.svelte delete mode 100644 packages/svelte/tests/validator/samples/a11y-in-foreign-namespace/warnings.json delete mode 100644 packages/svelte/tests/validator/samples/binding-invalid-foreign-namespace/errors.json delete mode 100644 packages/svelte/tests/validator/samples/binding-invalid-foreign-namespace/input.svelte diff --git a/.changeset/gorgeous-coats-jog.md b/.changeset/gorgeous-coats-jog.md new file mode 100644 index 0000000000..0b69c9a966 --- /dev/null +++ b/.changeset/gorgeous-coats-jog.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +breaking: remove foreign namespace diff --git a/packages/svelte/src/compiler/phases/1-parse/read/options.js b/packages/svelte/src/compiler/phases/1-parse/read/options.js index a8ba7e216c..cd3673aa57 100644 --- a/packages/svelte/src/compiler/phases/1-parse/read/options.js +++ b/packages/svelte/src/compiler/phases/1-parse/read/options.js @@ -157,18 +157,10 @@ export default function read_options(node) { component_options.namespace = 'svg'; } else if (value === NAMESPACE_MATHML) { component_options.namespace = 'mathml'; - } else if ( - value === 'html' || - value === 'mathml' || - value === 'svg' || - value === 'foreign' - ) { + } else if (value === 'html' || value === 'mathml' || value === 'svg') { component_options.namespace = value; } else { - e.svelte_options_invalid_attribute_value( - attribute, - `"html", "mathml", "svg" or "foreign"` - ); + e.svelte_options_invalid_attribute_value(attribute, `"html", "mathml" or "svg"`); } break; diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/BindDirective.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/BindDirective.js index 573616b815..43d1a3d468 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/BindDirective.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/BindDirective.js @@ -126,10 +126,6 @@ export function BindDirective(node, context) { parent?.type === 'SvelteDocument' || parent?.type === 'SvelteBody' ) { - if (context.state.options.namespace === 'foreign' && node.name !== 'this') { - e.bind_invalid_name(node, node.name, 'Foreign elements only support `bind:this`'); - } - if (node.name in binding_properties) { const property = binding_properties[node.name]; if (property.valid_elements && !property.valid_elements.includes(parent.name)) { diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js index 5c15f70ba2..16be82ed2c 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/RegularElement.js @@ -24,11 +24,7 @@ export function RegularElement(node, context) { context.state.analysis.elements.push(node); // Special case: Move the children of