From 010408b3db80d3c4a5e0666cc3faaf7d49a655b5 Mon Sep 17 00:00:00 2001 From: dpiercey Date: Wed, 4 Feb 2026 16:12:59 -0700 Subject: [PATCH] fix: unecessary const native tag codegen --- .changeset/lucky-fans-fry.md | 8 ++++++++ .../__snapshots__/el-ref-hoist.expected/index.ts | 2 +- .../__snapshots__/empty-tagname.expected/index.ts | 2 +- .../native-tag-var-multi-level-hoisting.expected/index.ts | 4 +--- .../__snapshots__/simple-hoist.expected/index.ts | 4 +--- packages/language-tools/src/extractors/script/index.ts | 4 +++- 6 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 .changeset/lucky-fans-fry.md diff --git a/.changeset/lucky-fans-fry.md b/.changeset/lucky-fans-fry.md new file mode 100644 index 00000000..d34ae80f --- /dev/null +++ b/.changeset/lucky-fans-fry.md @@ -0,0 +1,8 @@ +--- +"@marko/language-server": patch +"@marko/language-tools": patch +"@marko/type-check": patch +"marko-vscode": patch +--- + +Fix issue with outputting unnecessary const for native tag codegen. diff --git a/packages/language-server/src/__tests__/fixtures/script/el-ref-hoist/__snapshots__/el-ref-hoist.expected/index.ts b/packages/language-server/src/__tests__/fixtures/script/el-ref-hoist/__snapshots__/el-ref-hoist.expected/index.ts index 052536b9..9bf9a29d 100644 --- a/packages/language-server/src/__tests__/fixtures/script/el-ref-hoist/__snapshots__/el-ref-hoist.expected/index.ts +++ b/packages/language-server/src/__tests__/fixtures/script/el-ref-hoist/__snapshots__/el-ref-hoist.expected/index.ts @@ -20,7 +20,7 @@ export interface Input {} }); { const $el = Marko._.el("div"); - const __marko_internal_rendered_2 = Marko._.renderNativeTag("div")()()({ + Marko._.renderNativeTag("div")()()({ /*div*/ }); const __marko_internal_tag_3 = Marko._.resolveTemplate( diff --git a/packages/language-server/src/__tests__/fixtures/script/empty-tagname/__snapshots__/empty-tagname.expected/index.ts b/packages/language-server/src/__tests__/fixtures/script/empty-tagname/__snapshots__/empty-tagname.expected/index.ts index a8bb49d7..57a3d2f1 100644 --- a/packages/language-server/src/__tests__/fixtures/script/empty-tagname/__snapshots__/empty-tagname.expected/index.ts +++ b/packages/language-server/src/__tests__/fixtures/script/empty-tagname/__snapshots__/empty-tagname.expected/index.ts @@ -9,7 +9,7 @@ export interface Input {} const $el = Marko._.hoist(() => __marko_internal_hoist__$el); { const $el = Marko._.el("div"); - const __marko_internal_rendered_1 = Marko._.renderNativeTag("div")()()({ + Marko._.renderNativeTag("div")()()({ class: Marko._.interpolated`hello`, }); const __marko_internal_tag_2 = Marko._.resolveTemplate( diff --git a/packages/language-server/src/__tests__/fixtures/script/native-tag-var-multi-level-hoisting/__snapshots__/native-tag-var-multi-level-hoisting.expected/index.ts b/packages/language-server/src/__tests__/fixtures/script/native-tag-var-multi-level-hoisting/__snapshots__/native-tag-var-multi-level-hoisting.expected/index.ts index 6cc3f95e..a8795577 100644 --- a/packages/language-server/src/__tests__/fixtures/script/native-tag-var-multi-level-hoisting/__snapshots__/native-tag-var-multi-level-hoisting.expected/index.ts +++ b/packages/language-server/src/__tests__/fixtures/script/native-tag-var-multi-level-hoisting/__snapshots__/native-tag-var-multi-level-hoisting.expected/index.ts @@ -17,9 +17,7 @@ export interface Input {} [Marko._.content /*div*/]: (() => { { const searchInput = Marko._.el("input"); - const __marko_internal_rendered_3 = Marko._.renderNativeTag( - "input", - )()()({ + Marko._.renderNativeTag("input")()()({ type: "search", }); return () => { diff --git a/packages/language-server/src/__tests__/fixtures/script/simple-hoist/__snapshots__/simple-hoist.expected/index.ts b/packages/language-server/src/__tests__/fixtures/script/simple-hoist/__snapshots__/simple-hoist.expected/index.ts index 4a79f3f5..fb4f4a80 100644 --- a/packages/language-server/src/__tests__/fixtures/script/simple-hoist/__snapshots__/simple-hoist.expected/index.ts +++ b/packages/language-server/src/__tests__/fixtures/script/simple-hoist/__snapshots__/simple-hoist.expected/index.ts @@ -28,9 +28,7 @@ export interface Input {} x; { const el = Marko._.el("button"); - const __marko_internal_rendered_3 = Marko._.renderNativeTag( - "button", - )()()({ + Marko._.renderNativeTag("button")()()({ onClick() { __marko_internal_change__x.x = 2; __marko_internal_change__x.x++; diff --git a/packages/language-tools/src/extractors/script/index.ts b/packages/language-tools/src/extractors/script/index.ts index b0bbb67a..8fdd4421 100644 --- a/packages/language-tools/src/extractors/script/index.ts +++ b/packages/language-tools/src/extractors/script/index.ts @@ -783,7 +783,9 @@ constructor(_?: Return) {} } } - this.#extractor.write(`const ${renderVar} = `); + if (needsHoist || !isHTML) { + this.#extractor.write(`const ${renderVar} = `); + } } if (isHTML) {