diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 8478e47115..f426b97be4 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -33,10 +33,6 @@ "types": "./types/index.d.ts", "default": "./src/animate/index.js" }, - "./attachments": { - "types": "./types/index.d.ts", - "default": "./src/attachments/index.js" - }, "./compiler": { "types": "./types/index.d.ts", "require": "./compiler/index.js", diff --git a/packages/svelte/scripts/generate-types.js b/packages/svelte/scripts/generate-types.js index 27422272ca..d44afe8205 100644 --- a/packages/svelte/scripts/generate-types.js +++ b/packages/svelte/scripts/generate-types.js @@ -30,7 +30,6 @@ await createBundle({ [pkg.name]: `${dir}/src/index.d.ts`, [`${pkg.name}/action`]: `${dir}/src/action/public.d.ts`, [`${pkg.name}/animate`]: `${dir}/src/animate/public.d.ts`, - [`${pkg.name}/attachments`]: `${dir}/src/attachments/index.js`, [`${pkg.name}/compiler`]: `${dir}/src/compiler/public.d.ts`, [`${pkg.name}/easing`]: `${dir}/src/easing/index.js`, [`${pkg.name}/legacy`]: `${dir}/src/legacy/legacy-client.js`, diff --git a/packages/svelte/src/attachments/index.js b/packages/svelte/src/attachments/index.js deleted file mode 100644 index 6a66024c86..0000000000 --- a/packages/svelte/src/attachments/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export { - create_attachment_key as createAttachmentKey, - is_attachment_key as isAttachmentKey -} from '../internal/client/dom/elements/attachments.js'; diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js index d97cbe0235..2882da7d2f 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/component.js @@ -266,7 +266,7 @@ export function build_component(node, component_name, context, anchor = context. push_prop( b.prop( 'get', - b.call('$.create_attachment_key'), + b.call('Symbol'), /** @type {Expression} */ (context.visit(attribute.expression)), true ) diff --git a/packages/svelte/src/internal/client/dom/elements/attachments.js b/packages/svelte/src/internal/client/dom/elements/attachments.js index 7376a4d4e6..e0bfc5b1d1 100644 --- a/packages/svelte/src/internal/client/dom/elements/attachments.js +++ b/packages/svelte/src/internal/client/dom/elements/attachments.js @@ -1,24 +1,5 @@ import { effect } from '../../reactivity/effects.js'; -const key = `@attach-${/*@__PURE__*/ Math.random().toString(36).slice(2)}`; -const name = `Symbol(${key})`; - -// TODO this feels a bit belt-and-braces to me, tbh — are we sure we need it? -/** - * Creates a `Symbol` that Svelte recognises as an attachment key - */ -export function create_attachment_key() { - return Symbol(key); -} - -/** - * Returns `true` if the symbol was created with `createAttachmentKey` - * @param {string | symbol} key - */ -export function is_attachment_key(key) { - return typeof key === 'symbol' && key.toString() === name; -} - /** * @param {Element} node * @param {() => (node: Element) => void} get_fn diff --git a/packages/svelte/src/internal/client/dom/elements/attributes.js b/packages/svelte/src/internal/client/dom/elements/attributes.js index 27ae3c990b..17362cedea 100644 --- a/packages/svelte/src/internal/client/dom/elements/attributes.js +++ b/packages/svelte/src/internal/client/dom/elements/attributes.js @@ -13,7 +13,7 @@ import { set_active_effect, set_active_reaction } from '../../runtime.js'; -import { attach, is_attachment_key } from './attachments.js'; +import { attach } from './attachments.js'; import { clsx } from '../../../shared/attributes.js'; /** @@ -417,9 +417,7 @@ export function set_attributes( } for (let symbol of Object.getOwnPropertySymbols(next)) { - if (is_attachment_key(symbol)) { - attach(element, () => next[symbol]); - } + attach(element, () => next[symbol]); } return current; diff --git a/packages/svelte/src/internal/client/index.js b/packages/svelte/src/internal/client/index.js index 447a67304c..d0ad116b67 100644 --- a/packages/svelte/src/internal/client/index.js +++ b/packages/svelte/src/internal/client/index.js @@ -27,7 +27,7 @@ export { element } from './dom/blocks/svelte-element.js'; export { head } from './dom/blocks/svelte-head.js'; export { append_styles } from './dom/css.js'; export { action } from './dom/elements/actions.js'; -export { attach, create_attachment_key, is_attachment_key } from './dom/elements/attachments.js'; +export { attach } from './dom/elements/attachments.js'; export { remove_input_defaults, set_attribute, diff --git a/packages/svelte/tests/runtime-runes/samples/attachment-spread/main.svelte b/packages/svelte/tests/runtime-runes/samples/attachment-spread/main.svelte index dbd8c47ada..804c9cfede 100644 --- a/packages/svelte/tests/runtime-runes/samples/attachment-spread/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/attachment-spread/main.svelte @@ -1,8 +1,6 @@ diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 90e928fb7e..7b3a77ae6f 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -621,19 +621,6 @@ declare module 'svelte/animate' { export {}; } -declare module 'svelte/attachments' { - /** - * Creates a `Symbol` that Svelte recognises as an attachment key - */ - export function createAttachmentKey(): symbol; - /** - * Returns `true` if the symbol was created with `createAttachmentKey` - * */ - export function isAttachmentKey(key: string | symbol): boolean; - - export {}; -} - declare module 'svelte/compiler' { import type { Expression, Identifier, ArrayExpression, ArrowFunctionExpression, VariableDeclaration, VariableDeclarator, MemberExpression, Node, ObjectExpression, Pattern, Program, ChainExpression, SimpleCallExpression, SequenceExpression } from 'estree'; import type { SourceMap } from 'magic-string';