marko 6.0.9 → 6.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/debug/dom.js +97 -84
- package/dist/debug/dom.mjs +97 -84
- package/dist/debug/html.js +98 -70
- package/dist/debug/html.mjs +98 -70
- package/dist/dom/resume.d.ts +0 -1
- package/dist/dom.js +95 -104
- package/dist/dom.mjs +95 -104
- package/dist/html/writer.d.ts +8 -8
- package/dist/html.js +64 -28
- package/dist/html.mjs +64 -28
- package/dist/translator/index.js +41 -62
- package/dist/translator/util/is-only-child-in-parent.d.ts +2 -2
- package/dist/translator/visitors/tag/native-tag.d.ts +2 -2
- package/package.json +1 -1
package/dist/html.mjs
CHANGED
@@ -1090,7 +1090,7 @@ var branchIdKey = Symbol();
|
|
1090
1090
|
function withBranchId(branchId, cb) {
|
1091
1091
|
return withContext(branchIdKey, branchId, cb);
|
1092
1092
|
}
|
1093
|
-
function resumeForOf(list, cb, by, scopeId, accessor, serializeBranch, serializeMarker) {
|
1093
|
+
function resumeForOf(list, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1094
1094
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0;
|
1095
1095
|
if (resumeBranch) {
|
1096
1096
|
let loopScopes = /* @__PURE__ */ new Map();
|
@@ -1109,14 +1109,18 @@ function resumeForOf(list, cb, by, scopeId, accessor, serializeBranch, serialize
|
|
1109
1109
|
});
|
1110
1110
|
} else
|
1111
1111
|
forOf(list, cb);
|
1112
|
-
|
1113
|
-
|
1112
|
+
writeBranchEnd(
|
1113
|
+
scopeId,
|
1114
|
+
accessor,
|
1115
|
+
resumeMarker,
|
1116
|
+
parentEndTag,
|
1117
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1114
1118
|
"]" /* BranchEnd */,
|
1115
1119
|
scopeId + " " + accessor
|
1116
1120
|
)
|
1117
1121
|
);
|
1118
1122
|
}
|
1119
|
-
function resumeSingleNodeForOf(list, cb, by, scopeId, accessor, serializeBranch, serializeMarker,
|
1123
|
+
function resumeSingleNodeForOf(list, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1120
1124
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0, branchIds = "";
|
1121
1125
|
if (resumeBranch) {
|
1122
1126
|
let loopScopes = /* @__PURE__ */ new Map();
|
@@ -1130,14 +1134,18 @@ function resumeSingleNodeForOf(list, cb, by, scopeId, accessor, serializeBranch,
|
|
1130
1134
|
});
|
1131
1135
|
} else
|
1132
1136
|
forOf(list, cb);
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1137
|
+
writeBranchEnd(
|
1138
|
+
scopeId,
|
1139
|
+
accessor,
|
1140
|
+
resumeMarker,
|
1141
|
+
parentEndTag,
|
1142
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1143
|
+
parentEndTag ? "=" /* BranchSingleNodeOnlyChildInParent */ : "|" /* BranchSingleNode */,
|
1136
1144
|
scopeId + " " + accessor + branchIds
|
1137
1145
|
)
|
1138
1146
|
);
|
1139
1147
|
}
|
1140
|
-
function resumeForIn(obj, cb, by, scopeId, accessor, serializeBranch, serializeMarker) {
|
1148
|
+
function resumeForIn(obj, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1141
1149
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0;
|
1142
1150
|
if (resumeBranch) {
|
1143
1151
|
let loopScopes = /* @__PURE__ */ new Map(), sep = "";
|
@@ -1153,14 +1161,18 @@ function resumeForIn(obj, cb, by, scopeId, accessor, serializeBranch, serializeM
|
|
1153
1161
|
});
|
1154
1162
|
} else
|
1155
1163
|
forIn(obj, cb);
|
1156
|
-
|
1157
|
-
|
1164
|
+
writeBranchEnd(
|
1165
|
+
scopeId,
|
1166
|
+
accessor,
|
1167
|
+
resumeMarker,
|
1168
|
+
parentEndTag,
|
1169
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1158
1170
|
"]" /* BranchEnd */,
|
1159
1171
|
scopeId + " " + accessor
|
1160
1172
|
)
|
1161
1173
|
);
|
1162
1174
|
}
|
1163
|
-
function resumeSingleNodeForIn(obj, cb, by, scopeId, accessor, serializeBranch, serializeMarker,
|
1175
|
+
function resumeSingleNodeForIn(obj, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1164
1176
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0, branchIds = "";
|
1165
1177
|
if (resumeBranch) {
|
1166
1178
|
let loopScopes = /* @__PURE__ */ new Map();
|
@@ -1174,14 +1186,18 @@ function resumeSingleNodeForIn(obj, cb, by, scopeId, accessor, serializeBranch,
|
|
1174
1186
|
});
|
1175
1187
|
} else
|
1176
1188
|
forIn(obj, cb);
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1189
|
+
writeBranchEnd(
|
1190
|
+
scopeId,
|
1191
|
+
accessor,
|
1192
|
+
resumeMarker,
|
1193
|
+
parentEndTag,
|
1194
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1195
|
+
parentEndTag ? "=" /* BranchSingleNodeOnlyChildInParent */ : "|" /* BranchSingleNode */,
|
1180
1196
|
scopeId + " " + accessor + branchIds
|
1181
1197
|
)
|
1182
1198
|
);
|
1183
1199
|
}
|
1184
|
-
function resumeForTo(to, from, step, cb, by, scopeId, accessor, serializeBranch, serializeMarker) {
|
1200
|
+
function resumeForTo(to, from, step, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1185
1201
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0;
|
1186
1202
|
if (resumeBranch) {
|
1187
1203
|
let loopScopes = /* @__PURE__ */ new Map(), sep = "";
|
@@ -1197,14 +1213,18 @@ function resumeForTo(to, from, step, cb, by, scopeId, accessor, serializeBranch,
|
|
1197
1213
|
});
|
1198
1214
|
} else
|
1199
1215
|
forTo(to, from, step, cb);
|
1200
|
-
|
1201
|
-
|
1216
|
+
writeBranchEnd(
|
1217
|
+
scopeId,
|
1218
|
+
accessor,
|
1219
|
+
resumeMarker,
|
1220
|
+
parentEndTag,
|
1221
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1202
1222
|
"]" /* BranchEnd */,
|
1203
1223
|
scopeId + " " + accessor
|
1204
1224
|
)
|
1205
1225
|
);
|
1206
1226
|
}
|
1207
|
-
function resumeSingleNodeForTo(to, from, step, cb, by, scopeId, accessor, serializeBranch, serializeMarker,
|
1227
|
+
function resumeSingleNodeForTo(to, from, step, cb, by, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1208
1228
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0, branchIds = "";
|
1209
1229
|
if (resumeBranch) {
|
1210
1230
|
let loopScopes = /* @__PURE__ */ new Map();
|
@@ -1218,14 +1238,18 @@ function resumeSingleNodeForTo(to, from, step, cb, by, scopeId, accessor, serial
|
|
1218
1238
|
});
|
1219
1239
|
} else
|
1220
1240
|
forTo(to, from, step, cb);
|
1221
|
-
|
1222
|
-
|
1223
|
-
|
1241
|
+
writeBranchEnd(
|
1242
|
+
scopeId,
|
1243
|
+
accessor,
|
1244
|
+
resumeMarker,
|
1245
|
+
parentEndTag,
|
1246
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1247
|
+
parentEndTag ? "=" /* BranchSingleNodeOnlyChildInParent */ : "|" /* BranchSingleNode */,
|
1224
1248
|
scopeId + " " + accessor + branchIds
|
1225
1249
|
)
|
1226
1250
|
);
|
1227
1251
|
}
|
1228
|
-
function resumeConditional(cb, scopeId, accessor, serializeBranch, serializeMarker) {
|
1252
|
+
function resumeConditional(cb, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1229
1253
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0, branchId = peekNextScopeId();
|
1230
1254
|
resumeMarker && resumeBranch && $chunk.writeHTML(
|
1231
1255
|
$chunk.boundary.state.mark("[" /* BranchStart */, branchId + "")
|
@@ -1234,25 +1258,37 @@ function resumeConditional(cb, scopeId, accessor, serializeBranch, serializeMark
|
|
1234
1258
|
resumeBranch && branchIndex !== void 0 && writeScope(scopeId, {
|
1235
1259
|
["c" /* ConditionalRenderer */ + accessor]: resumeMarker ? branchIndex : void 0,
|
1236
1260
|
["d" /* ConditionalScope */ + accessor]: writeScope(branchId, {})
|
1237
|
-
}),
|
1238
|
-
|
1261
|
+
}), writeBranchEnd(
|
1262
|
+
scopeId,
|
1263
|
+
accessor,
|
1264
|
+
resumeMarker,
|
1265
|
+
parentEndTag,
|
1266
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1239
1267
|
"]" /* BranchEnd */,
|
1240
1268
|
scopeId + " " + accessor
|
1241
1269
|
)
|
1242
1270
|
);
|
1243
1271
|
}
|
1244
|
-
function resumeSingleNodeConditional(cb, scopeId, accessor, serializeBranch, serializeMarker,
|
1272
|
+
function resumeSingleNodeConditional(cb, scopeId, accessor, serializeBranch, serializeMarker, parentEndTag) {
|
1245
1273
|
let resumeBranch = serializeBranch !== 0, resumeMarker = serializeMarker !== 0, branchId = peekNextScopeId(), branchIndex = resumeBranch ? withBranchId(branchId, cb) : cb(), shouldWriteBranch = resumeBranch && branchIndex !== void 0;
|
1246
1274
|
shouldWriteBranch && writeScope(scopeId, {
|
1247
1275
|
["c" /* ConditionalRenderer */ + accessor]: resumeMarker ? branchIndex : void 0,
|
1248
1276
|
["d" /* ConditionalScope */ + accessor]: writeScope(branchId, {})
|
1249
|
-
}),
|
1250
|
-
|
1251
|
-
|
1277
|
+
}), writeBranchEnd(
|
1278
|
+
scopeId,
|
1279
|
+
accessor,
|
1280
|
+
resumeMarker,
|
1281
|
+
parentEndTag,
|
1282
|
+
resumeMarker && (!parentEndTag || resumeBranch) && $chunk.boundary.state.mark(
|
1283
|
+
parentEndTag ? "=" /* BranchSingleNodeOnlyChildInParent */ : "|" /* BranchSingleNode */,
|
1252
1284
|
scopeId + " " + accessor + (shouldWriteBranch ? " " + branchId : "")
|
1253
1285
|
)
|
1254
1286
|
);
|
1255
1287
|
}
|
1288
|
+
function writeBranchEnd(scopeId, accessor, resumeMarker, parentEndTag, mark) {
|
1289
|
+
let endTag = parentEndTag || "";
|
1290
|
+
resumeMarker ? mark ? $chunk.writeHTML(mark + endTag) : $chunk.writeHTML(endTag + markResumeNode(scopeId, accessor)) : $chunk.writeHTML(endTag);
|
1291
|
+
}
|
1256
1292
|
var writeScope = (scopeId, partialScope) => {
|
1257
1293
|
let { state } = $chunk.boundary, { scopes } = state, scope = scopes.get(scopeId);
|
1258
1294
|
return state.needsMainRuntime = !0, scope ? Object.assign(scope, partialScope) : (scope = partialScope, scope[K_SCOPE_ID] = scopeId, state.scopes.set(scopeId, scope)), state.writeScopes ? state.writeScopes[scopeId] = scope : state.writeScopes = { [scopeId]: scope }, scope;
|
package/dist/translator/index.js
CHANGED
@@ -5752,7 +5752,7 @@ var import_babel_utils24 = require("@marko/compiler/babel-utils");
|
|
5752
5752
|
var import_compiler31 = require("@marko/compiler");
|
5753
5753
|
var import_babel_utils23 = require("@marko/compiler/babel-utils");
|
5754
5754
|
var kNativeTagBinding = Symbol("native tag binding");
|
5755
|
-
var
|
5755
|
+
var kSkipEndTag = Symbol("skip native tag mark");
|
5756
5756
|
var kGetterId = Symbol("node getter id");
|
5757
5757
|
var htmlSelectArgs = /* @__PURE__ */ new WeakMap();
|
5758
5758
|
var native_tag_default = {
|
@@ -6059,7 +6059,9 @@ var native_tag_default = {
|
|
6059
6059
|
flushInto(tag);
|
6060
6060
|
}
|
6061
6061
|
if (selectArgs) {
|
6062
|
-
|
6062
|
+
if (!tagExtra[kSkipEndTag]) {
|
6063
|
+
writeTo(tag)`</${tag.node.name}>`;
|
6064
|
+
}
|
6063
6065
|
flushInto(tag);
|
6064
6066
|
tag.insertBefore(
|
6065
6067
|
import_compiler31.types.expressionStatement(
|
@@ -6079,8 +6081,8 @@ var native_tag_default = {
|
|
6079
6081
|
} else {
|
6080
6082
|
tag.insertBefore(tag.node.body.body).forEach((child) => child.skip());
|
6081
6083
|
}
|
6082
|
-
const markerSerializeReason =
|
6083
|
-
if (!openTagOnly && !selectArgs) {
|
6084
|
+
const markerSerializeReason = !tagExtra[kSkipEndTag] && nodeBinding && getBindingSerializeReason(tagSection, nodeBinding);
|
6085
|
+
if (!tagExtra[kSkipEndTag] && !openTagOnly && !selectArgs) {
|
6084
6086
|
writeTo(
|
6085
6087
|
tag,
|
6086
6088
|
!markerSerializeReason && (tagName === "html" || tagName === "body")
|
@@ -6593,19 +6595,16 @@ function buildUndefined() {
|
|
6593
6595
|
// src/translator/util/is-only-child-in-parent.ts
|
6594
6596
|
var kOnlyChildInParent = Symbol("only child in parent");
|
6595
6597
|
var kNodeRef = Symbol("potential only child node ref");
|
6596
|
-
function
|
6598
|
+
function getOnlyChildParentTagName(tag, branchSize = 1) {
|
6597
6599
|
const extra = tag.node.extra;
|
6598
6600
|
if (extra[kOnlyChildInParent] !== void 0) {
|
6599
6601
|
return extra[kOnlyChildInParent];
|
6600
6602
|
}
|
6601
6603
|
const parentTag = getParentTag(tag);
|
6602
|
-
|
6603
|
-
return extra[kOnlyChildInParent] = tag.parent.body.length === branchSize;
|
6604
|
-
}
|
6605
|
-
return extra[kOnlyChildInParent] = false;
|
6604
|
+
return extra[kOnlyChildInParent] = parentTag && (0, import_babel_utils24.getTagDef)(parentTag)?.html && parentTag.node.name.type === "StringLiteral" && tag.parent.body.length === branchSize ? parentTag.node.name.value : false;
|
6606
6605
|
}
|
6607
6606
|
function getOptimizedOnlyChildNodeBinding(tag, section, branchSize = 1) {
|
6608
|
-
if (
|
6607
|
+
if (getOnlyChildParentTagName(tag, branchSize)) {
|
6609
6608
|
const parentTag = getParentTag(tag).node;
|
6610
6609
|
const parentTagName = parentTag.name?.value;
|
6611
6610
|
return (parentTag.extra ??= {})[kNativeTagBinding] ??= createBinding(
|
@@ -6685,7 +6684,7 @@ var for_default = {
|
|
6685
6684
|
return;
|
6686
6685
|
}
|
6687
6686
|
setSectionParentIsOwner(bodySection, true);
|
6688
|
-
if (!
|
6687
|
+
if (!getOnlyChildParentTagName(tag)) {
|
6689
6688
|
visit(tag, 37 /* Replace */);
|
6690
6689
|
enterShallow(tag);
|
6691
6690
|
}
|
@@ -6697,7 +6696,7 @@ var for_default = {
|
|
6697
6696
|
const tagSection = getSection(tag);
|
6698
6697
|
const bodySection = getSectionForBody(tagBody);
|
6699
6698
|
const { node } = tag;
|
6700
|
-
const
|
6699
|
+
const onlyChildParentTagName = getOnlyChildParentTagName(tag);
|
6701
6700
|
const nodeBinding = getOptimizedOnlyChildNodeBinding(tag, tagSection);
|
6702
6701
|
const forAttrs = getKnownAttrValues(node);
|
6703
6702
|
const forType = getForType(node);
|
@@ -6721,12 +6720,10 @@ var for_default = {
|
|
6721
6720
|
import_compiler33.types.arrowFunctionExpression(params, import_compiler33.types.blockStatement(bodyStatements))
|
6722
6721
|
);
|
6723
6722
|
if (branchSerializeReason) {
|
6724
|
-
|
6725
|
-
getParentTag(tag).node.extra[kSkipMark] = true;
|
6726
|
-
}
|
6723
|
+
const skipParentEnd = onlyChildParentTagName && markerSerializeReason;
|
6727
6724
|
const markerSerializeArg = getSerializeGuard(
|
6728
6725
|
markerSerializeReason,
|
6729
|
-
!
|
6726
|
+
!skipParentEnd
|
6730
6727
|
);
|
6731
6728
|
forTagArgs.push(
|
6732
6729
|
forAttrs.by || import_compiler33.types.numericLiteral(0),
|
@@ -6735,8 +6732,9 @@ var for_default = {
|
|
6735
6732
|
getSerializeGuard(branchSerializeReason, !markerSerializeArg),
|
6736
6733
|
markerSerializeArg
|
6737
6734
|
);
|
6738
|
-
if (
|
6739
|
-
|
6735
|
+
if (skipParentEnd) {
|
6736
|
+
getParentTag(tag).node.extra[kSkipEndTag] = true;
|
6737
|
+
forTagArgs.push(import_compiler33.types.stringLiteral(`</${onlyChildParentTagName}>`));
|
6740
6738
|
}
|
6741
6739
|
}
|
6742
6740
|
statements.push(
|
@@ -6757,7 +6755,7 @@ var for_default = {
|
|
6757
6755
|
return;
|
6758
6756
|
}
|
6759
6757
|
setSectionParentIsOwner(bodySection, true);
|
6760
|
-
if (!
|
6758
|
+
if (!getOnlyChildParentTagName(tag)) {
|
6761
6759
|
visit(tag, 37 /* Replace */);
|
6762
6760
|
enterShallow(tag);
|
6763
6761
|
}
|
@@ -8547,7 +8545,7 @@ var IfTag = {
|
|
8547
8545
|
if (tag.node.body.attributeTags) return;
|
8548
8546
|
const tagBody = tag.get("body");
|
8549
8547
|
const bodySection = getSectionForBody(tagBody);
|
8550
|
-
if (isRoot(tag) && !
|
8548
|
+
if (isRoot(tag) && !getOnlyChildParentTagName(tag)) {
|
8551
8549
|
visit(tag, 37 /* Replace */);
|
8552
8550
|
enterShallow(tag);
|
8553
8551
|
}
|
@@ -8574,7 +8572,7 @@ var IfTag = {
|
|
8574
8572
|
ifTag,
|
8575
8573
|
ifTagSection
|
8576
8574
|
);
|
8577
|
-
const
|
8575
|
+
const onlyChildParentTagName = getOnlyChildParentTagName(ifTag);
|
8578
8576
|
const markerSerializeReason = getBindingSerializeReason(
|
8579
8577
|
ifTagSection,
|
8580
8578
|
nodeBinding
|
@@ -8623,51 +8621,32 @@ var IfTag = {
|
|
8623
8621
|
branchTag.remove();
|
8624
8622
|
}
|
8625
8623
|
if (branchSerializeReasons) {
|
8626
|
-
|
8627
|
-
|
8624
|
+
const skipParentEnd = onlyChildParentTagName && markerSerializeReason;
|
8625
|
+
if (skipParentEnd) {
|
8626
|
+
getParentTag(ifTag).node.extra[kSkipEndTag] = true;
|
8628
8627
|
}
|
8628
|
+
const markerSerializeArg = getSerializeGuard(
|
8629
|
+
markerSerializeReason,
|
8630
|
+
!skipParentEnd
|
8631
|
+
);
|
8629
8632
|
const cbNode = import_compiler42.types.arrowFunctionExpression(
|
8630
8633
|
[],
|
8631
8634
|
import_compiler42.types.blockStatement([statement])
|
8632
8635
|
);
|
8633
|
-
|
8634
|
-
|
8635
|
-
|
8636
|
-
|
8637
|
-
|
8638
|
-
|
8639
|
-
|
8640
|
-
|
8641
|
-
|
8642
|
-
|
8643
|
-
|
8644
|
-
|
8645
|
-
|
8646
|
-
|
8647
|
-
),
|
8648
|
-
markerSerializeArg,
|
8649
|
-
onlyChildInParentOptimization && import_compiler42.types.numericLiteral(1)
|
8650
|
-
)
|
8651
|
-
);
|
8652
|
-
} else {
|
8653
|
-
const markerSerializeArg = getSerializeGuard(
|
8654
|
-
markerSerializeReason,
|
8655
|
-
true
|
8656
|
-
);
|
8657
|
-
statement = import_compiler42.types.expressionStatement(
|
8658
|
-
callRuntime(
|
8659
|
-
"resumeConditional",
|
8660
|
-
cbNode,
|
8661
|
-
getScopeIdIdentifier(ifTagSection),
|
8662
|
-
getScopeAccessorLiteral(nodeBinding),
|
8663
|
-
getSerializeGuardForAny(
|
8664
|
-
branchSerializeReasons,
|
8665
|
-
!markerSerializeArg
|
8666
|
-
),
|
8667
|
-
markerSerializeArg
|
8668
|
-
)
|
8669
|
-
);
|
8670
|
-
}
|
8636
|
+
statement = import_compiler42.types.expressionStatement(
|
8637
|
+
callRuntime(
|
8638
|
+
singleNodeOptimization ? "resumeSingleNodeConditional" : "resumeConditional",
|
8639
|
+
cbNode,
|
8640
|
+
getScopeIdIdentifier(ifTagSection),
|
8641
|
+
getScopeAccessorLiteral(nodeBinding),
|
8642
|
+
getSerializeGuardForAny(
|
8643
|
+
branchSerializeReasons,
|
8644
|
+
!markerSerializeArg
|
8645
|
+
),
|
8646
|
+
markerSerializeArg,
|
8647
|
+
skipParentEnd && import_compiler42.types.stringLiteral(`</${onlyChildParentTagName}>`)
|
8648
|
+
)
|
8649
|
+
);
|
8671
8650
|
}
|
8672
8651
|
nextTag.insertBefore(statement);
|
8673
8652
|
}
|
@@ -8681,7 +8660,7 @@ var IfTag = {
|
|
8681
8660
|
if (bodySection) {
|
8682
8661
|
setSectionParentIsOwner(bodySection, true);
|
8683
8662
|
}
|
8684
|
-
if (isRoot(tag) && !
|
8663
|
+
if (isRoot(tag) && !getOnlyChildParentTagName(tag)) {
|
8685
8664
|
visit(tag, 37 /* Replace */);
|
8686
8665
|
enterShallow(tag);
|
8687
8666
|
}
|
@@ -5,10 +5,10 @@ declare const kOnlyChildInParent: unique symbol;
|
|
5
5
|
declare const kNodeRef: unique symbol;
|
6
6
|
declare module "@marko/compiler/dist/types" {
|
7
7
|
interface NodeExtra {
|
8
|
-
[kOnlyChildInParent]?:
|
8
|
+
[kOnlyChildInParent]?: false | string;
|
9
9
|
[kNodeRef]?: Binding;
|
10
10
|
}
|
11
11
|
}
|
12
|
-
export declare function
|
12
|
+
export declare function getOnlyChildParentTagName(tag: t.NodePath<t.MarkoTag>, branchSize?: number): string | false;
|
13
13
|
export declare function getOptimizedOnlyChildNodeBinding(tag: t.NodePath<t.MarkoTag>, section: Section, branchSize?: number): Binding;
|
14
14
|
export {};
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import { types as t } from "@marko/compiler";
|
2
2
|
import { type Binding } from "../../util/references";
|
3
3
|
export declare const kNativeTagBinding: unique symbol;
|
4
|
-
export declare const
|
4
|
+
export declare const kSkipEndTag: unique symbol;
|
5
5
|
declare const kGetterId: unique symbol;
|
6
6
|
declare module "@marko/compiler/dist/types" {
|
7
7
|
interface NodeExtra {
|
8
8
|
[kNativeTagBinding]?: Binding;
|
9
|
-
[
|
9
|
+
[kSkipEndTag]?: true;
|
10
10
|
[kGetterId]?: string;
|
11
11
|
}
|
12
12
|
}
|