Skip to content

Commit 44fbf8d

Browse files
committed
fix: hoisted element reference production mode
1 parent b581e44 commit 44fbf8d

File tree

9 files changed

+21
-15
lines changed

9 files changed

+21
-15
lines changed

.changeset/angry-banks-punch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@marko/runtime-tags": patch
3+
---
4+
5+
Fix hoisted element reference variable name in production builds.

packages/runtime-tags/src/__tests__/fixtures/hoist-custom-tag-var-attr-tag/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ const $what_content__setHtml = _._var_resume("c2", _._const(2));
2020
"a1",
2121
),
2222
_._script("c3", ({ 1: $hoisted_setHtml }) => {
23-
for (const fn of 1) fn("Hoist from custom tag");
23+
for (const fn of $hoisted_setHtml) fn("Hoist from custom tag");
2424
}),
2525
init());

packages/runtime-tags/src/__tests__/fixtures/hoist-custom-tag-var-from-dynamic/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// size: 774 (min) 336 (brotli)
1+
// size: 774 (min) 337 (brotli)
22
const $dynamicTag = _._dynamic_tag(0),
33
$dynamicTag2 = _._dynamic_tag(1),
44
$input_content = _._const(4, ($scope, input_content) => {
@@ -52,7 +52,7 @@ const $get$hoisted_setHtml2 = _._hoist(2, "a3", "a2"),
5252
_._resume("c6", _._hoist(2, "a1")),
5353
_._var_resume("c7", _._const(2)),
5454
_._script("c8", ({ 6: $hoisted_setHtml }) => {
55-
for (const fn of 6) fn("Hoist from custom tag");
55+
for (const fn of $hoisted_setHtml) fn("Hoist from custom tag");
5656
}),
5757
_._script("c9", ($scope) => {
5858
($get$hoisted_setHtml2($scope)("Hoist from dynamic tag"),

packages/runtime-tags/src/__tests__/fixtures/hoist-custom-tag-var-many/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// size: 385 (min) 187 (brotli)
1+
// size: 385 (min) 189 (brotli)
22
(_._resume("a0", function ($scope) {
33
return function (html) {
44
$scope[0].innerHTML = html;
@@ -13,7 +13,7 @@ const $get$hoisted_setHtml3 = _._hoist(2, "m0");
1313
_._script("b4", ({ 4: $hoisted_setHtml3 }) => {
1414
{
1515
let i = 0;
16-
for (const fn of 4) fn(`All (${i++})`);
16+
for (const fn of $hoisted_setHtml3) fn(`All (${i++})`);
1717
}
1818
}),
1919
_._script("b5", ($scope) => {

packages/runtime-tags/src/__tests__/fixtures/hoist-dynamic-tag-var-from-dynamic/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// size: 832 (min) 363 (brotli)
1+
// size: 832 (min) 370 (brotli)
22
function $setup$1($scope) {
33
_._return($scope, $_return($scope));
44
}
@@ -62,7 +62,7 @@ const $get$hoisted_setHtml2 = _._hoist(2, "a3", "a2"),
6262
_._resume("c6", _._hoist(2, "a1")),
6363
_._var_resume("c7", _._const(2)),
6464
_._script("c8", ({ 6: $hoisted_setHtml }) => {
65-
for (const fn of 6) fn("Hoist from custom tag");
65+
for (const fn of $hoisted_setHtml) fn("Hoist from custom tag");
6666
}),
6767
_._script("c9", ($scope) => {
6868
($get$hoisted_setHtml2($scope)("Hoist from dynamic tag"),

packages/runtime-tags/src/__tests__/fixtures/hoist-dynamic-tag-var-many/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// size: 385 (min) 187 (brotli)
1+
// size: 385 (min) 189 (brotli)
22
(_._resume("a0", function ($scope) {
33
return function (html) {
44
$scope[0].innerHTML = html;
@@ -13,7 +13,7 @@ const $get$hoisted_setHtml3 = _._hoist(2, "m0");
1313
_._script("b4", ({ 4: $hoisted_setHtml3 }) => {
1414
{
1515
let i = 0;
16-
for (const fn of 4) fn(`All (${i++})`);
16+
for (const fn of $hoisted_setHtml3) fn(`All (${i++})`);
1717
}
1818
}),
1919
_._script("b5", ($scope) => {

packages/runtime-tags/src/__tests__/fixtures/hoist-native-tag-var-from-dynamic/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// size: 751 (min) 332 (brotli)
1+
// size: 751 (min) 330 (brotli)
22
const $dynamicTag = _._dynamic_tag(0),
33
$dynamicTag2 = _._dynamic_tag(1),
44
$input_content = _._const(4, ($scope, input_content) => {
@@ -12,7 +12,7 @@ const $child_content2 = _._content("b1", "<div></div>", " b", 0, 0, "a3"),
1212
$inputshowChildnull_content__$hoisted_el__script = _._script(
1313
"b5",
1414
({ 1: $hoisted_el2 }) => {
15-
for (const element of 1) element().classList.add("inner");
15+
for (const element of $hoisted_el2) element().classList.add("inner");
1616
},
1717
),
1818
$inputshowChildnull_content__$hoisted_el = _._const(
@@ -36,10 +36,11 @@ const $child_content2 = _._content("b1", "<div></div>", " b", 0, 0, "a3"),
3636
),
3737
_._resume("b7", _._hoist("j0", "a1")),
3838
_._script("b8", ({ 7: $hoisted_el3 }) => {
39-
for (const element of 7) element().classList.add("outer");
39+
for (const element of $hoisted_el3) element().classList.add("outer");
4040
}),
4141
_._script("b9", ({ 6: $hoisted_el }) => {
42-
for (const element of 6) element().innerHTML = "Hoist from custom tag";
42+
for (const element of $hoisted_el)
43+
element().innerHTML = "Hoist from custom tag";
4344
}),
4445
_._script("b10", ($scope) => {
4546
{

packages/runtime-tags/src/__tests__/fixtures/hoist-native-tag-var-many/__snapshots__/dom.expected/template.hydrate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const $get$hoisted_el2 = _._hoist("j0", "m1"),
55
(_._script("a1", ({ 4: $hoisted_el3 }) => {
66
{
77
let i = 0;
8-
for (const el of 4) el().innerHTML = `All (${i++})`;
8+
for (const el of $hoisted_el3) el().innerHTML = `All (${i++})`;
99
}
1010
}),
1111
_._script("a2", ($scope) => {

packages/runtime-tags/src/translator/util/references.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1432,7 +1432,7 @@ export function getReadReplacement(node: t.Identifier | t.MemberExpression) {
14321432
? t.callExpression(getHoistFunctionIdentifier(binding), [
14331433
getScopeExpression(node.extra.section!, binding.section),
14341434
])
1435-
: t.identifier(getScopeAccessor(binding)!);
1435+
: t.identifier(binding.name);
14361436
} else if (binding.name !== node.name) {
14371437
node.name = binding.name;
14381438
}

0 commit comments

Comments
 (0)