diff --git a/packages/svelte/src/compiler/phases/1-parse/state/element.js b/packages/svelte/src/compiler/phases/1-parse/state/element.js index a79ff5f206..99ebf870fa 100644 --- a/packages/svelte/src/compiler/phases/1-parse/state/element.js +++ b/packages/svelte/src/compiler/phases/1-parse/state/element.js @@ -480,7 +480,7 @@ function read_static_attribute(parser) { /** * @param {Parser} parser - * @returns {AST.Attribute | AST.SpreadAttribute | AST.Directive | AST.UseTag | null} + * @returns {AST.Attribute | AST.SpreadAttribute | AST.Directive | AST.AttachTag | null} */ function read_attribute(parser) { const start = parser.index; @@ -488,16 +488,16 @@ function read_attribute(parser) { if (parser.eat('{')) { parser.allow_whitespace(); - if (parser.eat('@use')) { + if (parser.eat('@attach')) { parser.require_whitespace(); const expression = read_expression(parser); parser.allow_whitespace(); parser.eat('}', true); - /** @type {AST.UseTag} */ + /** @type {AST.AttachTag} */ const use = { - type: 'UseTag', + type: 'AttachTag', start, end: parser.index, expression diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/component.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/component.js index 4f54606b7f..88f59c0e5b 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/component.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/shared/component.js @@ -75,7 +75,7 @@ export function visit_component(node, context) { attribute.type !== 'LetDirective' && attribute.type !== 'OnDirective' && attribute.type !== 'BindDirective' && - attribute.type !== 'UseTag' + attribute.type !== 'AttachTag' ) { e.component_invalid_directive(attribute); } diff --git a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js index d6398d7605..40792c3d5e 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/transform-client.js @@ -56,7 +56,7 @@ import { TitleElement } from './visitors/TitleElement.js'; import { TransitionDirective } from './visitors/TransitionDirective.js'; import { UpdateExpression } from './visitors/UpdateExpression.js'; import { UseDirective } from './visitors/UseDirective.js'; -import { UseTag } from './visitors/UseTag.js'; +import { AttachTag } from './visitors/AttachTag.js'; import { VariableDeclaration } from './visitors/VariableDeclaration.js'; /** @type {Visitors} */ @@ -132,7 +132,7 @@ const visitors = { TransitionDirective, UpdateExpression, UseDirective, - UseTag, + AttachTag, VariableDeclaration }; diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/UseTag.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AttachTag.js similarity index 85% rename from packages/svelte/src/compiler/phases/3-transform/client/visitors/UseTag.js rename to packages/svelte/src/compiler/phases/3-transform/client/visitors/AttachTag.js index 76bc83279e..062604cacc 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/UseTag.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/AttachTag.js @@ -4,10 +4,10 @@ import * as b from '../../../../utils/builders.js'; /** - * @param {AST.UseTag} node + * @param {AST.AttachTag} node * @param {ComponentContext} context */ -export function UseTag(node, context) { +export function AttachTag(node, context) { context.state.init.push( b.stmt( b.call( diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js index 0983aeb7e7..9ceaebc8d3 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js @@ -82,7 +82,7 @@ export function RegularElement(node, context) { /** @type {AST.StyleDirective[]} */ const style_directives = []; - /** @type {Array} */ + /** @type {Array} */ const other_directives = []; /** @type {ExpressionStatement[]} */ @@ -153,7 +153,7 @@ export function RegularElement(node, context) { other_directives.push(attribute); break; - case 'UseTag': + case 'AttachTag': other_directives.push(attribute); break; } 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 ef21123082..5596ccf70d 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 @@ -252,11 +252,11 @@ export function build_component(node, component_name, context, anchor = context. ); } } - } else if (attribute.type === 'UseTag') { + } else if (attribute.type === 'AttachTag') { push_prop( b.prop( 'init', - b.call('Symbol', b.literal('@use')), + b.call('Symbol', b.literal('@attach')), b.thunk(/** @type {Expression} */ (context.visit(attribute.expression))), true ) diff --git a/packages/svelte/src/compiler/types/template.d.ts b/packages/svelte/src/compiler/types/template.d.ts index a8e32b402a..78827886f8 100644 --- a/packages/svelte/src/compiler/types/template.d.ts +++ b/packages/svelte/src/compiler/types/template.d.ts @@ -174,9 +174,9 @@ export namespace AST { }; } - /** A `{@use foo(...)} tag */ - export interface UseTag extends BaseNode { - type: 'UseTag'; + /** A `{@attach foo(...)} tag */ + export interface AttachTag extends BaseNode { + type: 'AttachTag'; expression: Expression; } @@ -279,7 +279,7 @@ export namespace AST { interface BaseElement extends BaseNode { name: string; - attributes: Array; + attributes: Array; fragment: Fragment; } @@ -553,7 +553,7 @@ export namespace AST { | AST.Attribute | AST.SpreadAttribute | Directive - | AST.UseTag + | AST.AttachTag | AST.Comment | Block; diff --git a/packages/svelte/tests/parser-modern/samples/attachments/input.svelte b/packages/svelte/tests/parser-modern/samples/attachments/input.svelte index 042bcbb98b..9faae8d1bf 100644 --- a/packages/svelte/tests/parser-modern/samples/attachments/input.svelte +++ b/packages/svelte/tests/parser-modern/samples/attachments/input.svelte @@ -1 +1 @@ -
{}} {@use (node) => {}}>
+
{}} {@attach (node) => {}}>
diff --git a/packages/svelte/tests/parser-modern/samples/attachments/output.json b/packages/svelte/tests/parser-modern/samples/attachments/output.json index 68ee771072..42e9880fcc 100644 --- a/packages/svelte/tests/parser-modern/samples/attachments/output.json +++ b/packages/svelte/tests/parser-modern/samples/attachments/output.json @@ -2,7 +2,7 @@ "css": null, "js": [], "start": 0, - "end": 51, + "end": 57, "type": "Root", "fragment": { "type": "Fragment", @@ -10,25 +10,25 @@ { "type": "RegularElement", "start": 0, - "end": 51, + "end": 57, "name": "div", "attributes": [ { - "type": "UseTag", + "type": "AttachTag", "start": 5, - "end": 24, + "end": 27, "expression": { "type": "ArrowFunctionExpression", - "start": 11, - "end": 23, + "start": 14, + "end": 26, "loc": { "start": { "line": 1, - "column": 11 + "column": 14 }, "end": { "line": 1, - "column": 23 + "column": 26 } }, "id": null, @@ -38,16 +38,16 @@ "params": [ { "type": "Identifier", - "start": 12, - "end": 16, + "start": 15, + "end": 19, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, - "column": 16 + "column": 19 } }, "name": "node" @@ -55,16 +55,16 @@ ], "body": { "type": "BlockStatement", - "start": 21, - "end": 23, + "start": 24, + "end": 26, "loc": { "start": { "line": 1, - "column": 21 + "column": 24 }, "end": { "line": 1, - "column": 23 + "column": 26 } }, "body": [] @@ -72,21 +72,21 @@ } }, { - "type": "UseTag", - "start": 25, - "end": 44, + "type": "AttachTag", + "start": 28, + "end": 50, "expression": { "type": "ArrowFunctionExpression", - "start": 31, - "end": 43, + "start": 37, + "end": 49, "loc": { "start": { "line": 1, - "column": 31 + "column": 37 }, "end": { "line": 1, - "column": 43 + "column": 49 } }, "id": null, @@ -96,16 +96,16 @@ "params": [ { "type": "Identifier", - "start": 32, - "end": 36, + "start": 38, + "end": 42, "loc": { "start": { "line": 1, - "column": 32 + "column": 38 }, "end": { "line": 1, - "column": 36 + "column": 42 } }, "name": "node" @@ -113,16 +113,16 @@ ], "body": { "type": "BlockStatement", - "start": 41, - "end": 43, + "start": 47, + "end": 49, "loc": { "start": { "line": 1, - "column": 41 + "column": 47 }, "end": { "line": 1, - "column": 43 + "column": 49 } }, "body": [] @@ -138,4 +138,4 @@ ] }, "options": null -} \ No newline at end of file +} diff --git a/packages/svelte/tests/runtime-runes/samples/attachment-basic/main.svelte b/packages/svelte/tests/runtime-runes/samples/attachment-basic/main.svelte index 593065e876..1a1f74e4a9 100644 --- a/packages/svelte/tests/runtime-runes/samples/attachment-basic/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/attachment-basic/main.svelte @@ -1 +1 @@ -
node.textContent = node.nodeName}>
+
node.textContent = node.nodeName}>
diff --git a/packages/svelte/tests/runtime-runes/samples/attachment-component/main.svelte b/packages/svelte/tests/runtime-runes/samples/attachment-component/main.svelte index c8b918fa6f..3468ee50a2 100644 --- a/packages/svelte/tests/runtime-runes/samples/attachment-component/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/attachment-component/main.svelte @@ -2,4 +2,4 @@ import Child from './Child.svelte'; - node.textContent = 'set from component'} /> + node.textContent = 'set from component'} /> diff --git a/packages/svelte/tests/runtime-runes/samples/attachment-reactive/main.svelte b/packages/svelte/tests/runtime-runes/samples/attachment-reactive/main.svelte index b66560ff7d..9fa3cfdb67 100644 --- a/packages/svelte/tests/runtime-runes/samples/attachment-reactive/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/attachment-reactive/main.svelte @@ -2,5 +2,5 @@ let value = $state(1); -
node.textContent = value}>
+
node.textContent = value}>
diff --git a/packages/svelte/tests/runtime-runes/samples/attachment-svelte-element/main.svelte b/packages/svelte/tests/runtime-runes/samples/attachment-svelte-element/main.svelte index 0b615883f9..bd4b52342f 100644 --- a/packages/svelte/tests/runtime-runes/samples/attachment-svelte-element/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/attachment-svelte-element/main.svelte @@ -1 +1 @@ - node.textContent = node.nodeName}> + node.textContent = node.nodeName}>