@barefootjs/jsx 0.33.3 → 0.33.4
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/index.js +100 -17
- package/dist/ir-to-client-js/build-references.d.ts.map +1 -1
- package/dist/ir-to-client-js/control-flow/plan/build-component-loop.d.ts.map +1 -1
- package/dist/ir-to-client-js/control-flow/plan/loop.d.ts +2 -4
- package/dist/ir-to-client-js/control-flow/plan/loop.d.ts.map +1 -1
- package/dist/ir-to-client-js/control-flow/stringify/component-loop.d.ts.map +1 -1
- package/dist/ir-to-client-js/control-flow.d.ts.map +1 -1
- package/dist/ir-to-client-js/html-template.d.ts.map +1 -1
- package/dist/types.d.ts +13 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/fragment-body-loop-key.test.ts +95 -0
- package/src/__tests__/multi-root-loop-body.test.ts +7 -3
- package/src/__tests__/preamble-declarations.test.ts +42 -0
- package/src/ir-to-client-js/build-references.ts +7 -0
- package/src/ir-to-client-js/control-flow/plan/build-component-loop.ts +19 -1
- package/src/ir-to-client-js/control-flow/plan/loop.ts +2 -4
- package/src/ir-to-client-js/control-flow/stringify/component-loop.ts +7 -0
- package/src/ir-to-client-js/control-flow.ts +12 -0
- package/src/ir-to-client-js/html-template.ts +53 -12
- package/src/jsx-to-ir.ts +118 -12
- package/src/types.ts +13 -0
package/dist/index.js
CHANGED
|
@@ -3438,6 +3438,9 @@ function renderTemplateAttrPart(attr, attrName, wrap, restSpreadNames) {
|
|
|
3438
3438
|
return "";
|
|
3439
3439
|
}
|
|
3440
3440
|
}
|
|
3441
|
+
function resolvedKeyAttrName(node, loopDepth) {
|
|
3442
|
+
return node.keyAttr ? keyAttrName(loopDepth) : null;
|
|
3443
|
+
}
|
|
3441
3444
|
function isMergeableAttr(a, ctx) {
|
|
3442
3445
|
if (ctx.honorClientOnly && a.clientOnly)
|
|
3443
3446
|
return false;
|
|
@@ -3614,8 +3617,11 @@ function irToHtmlTemplate(node, restSpreadNames, loopDepth = 0, loopParams, bran
|
|
|
3614
3617
|
if (useMerge && isMergeableAttr(a, mergeCtx)) {
|
|
3615
3618
|
return idx === firstMergeableIdx ? mergeCall : "";
|
|
3616
3619
|
}
|
|
3617
|
-
|
|
3618
|
-
|
|
3620
|
+
if (a.name === "key") {
|
|
3621
|
+
const attrName = resolvedKeyAttrName(node, loopDepth);
|
|
3622
|
+
return attrName ? renderTemplateAttrPart(a, attrName, wrapExpr, restSpreadNames) : "";
|
|
3623
|
+
}
|
|
3624
|
+
return renderTemplateAttrPart(a, toHtmlAttrName(a.name), wrapExpr, restSpreadNames);
|
|
3619
3625
|
}).filter(Boolean);
|
|
3620
3626
|
const hoistedScopeAttr = maybeHoistedScopeAttr(inHoistedChildren, node);
|
|
3621
3627
|
if (hoistedScopeAttr)
|
|
@@ -3740,7 +3746,9 @@ function buildLoopSkeletonTemplate(node, safe) {
|
|
|
3740
3746
|
if (a.name === "dangerouslySetInnerHTML")
|
|
3741
3747
|
return null;
|
|
3742
3748
|
if (a.name === "key") {
|
|
3743
|
-
|
|
3749
|
+
if (resolvedKeyAttrName(node, 0)) {
|
|
3750
|
+
attrParts.push(`${keyAttrName(0)}=""`);
|
|
3751
|
+
}
|
|
3744
3752
|
continue;
|
|
3745
3753
|
}
|
|
3746
3754
|
const v = a.value;
|
|
@@ -3948,7 +3956,11 @@ function irToPlaceholderTemplate(node, restSpreadNames, loopDepth = 0, loopParam
|
|
|
3948
3956
|
const attrParts = node.attrs.map((a) => {
|
|
3949
3957
|
if (a.clientOnly)
|
|
3950
3958
|
return "";
|
|
3951
|
-
|
|
3959
|
+
if (a.name === "key") {
|
|
3960
|
+
const attrName2 = resolvedKeyAttrName(node, loopDepth);
|
|
3961
|
+
return attrName2 ? renderTemplateAttrPart(a, attrName2, wrapExpr, restSpreadNames) : "";
|
|
3962
|
+
}
|
|
3963
|
+
const attrName = a.name === "..." ? "..." : toHtmlAttrName(a.name);
|
|
3952
3964
|
return renderTemplateAttrPart(a, attrName, wrapExpr, restSpreadNames);
|
|
3953
3965
|
}).filter(Boolean);
|
|
3954
3966
|
if (node.slotId) {
|
|
@@ -4497,7 +4509,27 @@ function generateCsrTemplateWithOpts(node, opts) {
|
|
|
4497
4509
|
return "";
|
|
4498
4510
|
return `\${spreadAttrs(${transformExpr(v.expr, v.templateExpr)})}`;
|
|
4499
4511
|
}
|
|
4500
|
-
|
|
4512
|
+
if (a.name === "key") {
|
|
4513
|
+
const keyName = resolvedKeyAttrName(node, loopDepth);
|
|
4514
|
+
if (!keyName)
|
|
4515
|
+
return "";
|
|
4516
|
+
switch (v.kind) {
|
|
4517
|
+
case "boolean-attr":
|
|
4518
|
+
return keyName;
|
|
4519
|
+
case "literal":
|
|
4520
|
+
return `${keyName}="${escapeHtml(v.value)}"`;
|
|
4521
|
+
case "expression":
|
|
4522
|
+
return templateAttrExpr(keyName, transformExpr(v.expr, v.templateExpr), v.presenceOrUndefined);
|
|
4523
|
+
case "template": {
|
|
4524
|
+
const valueStr = attrValueToString(v, { useTemplate: true });
|
|
4525
|
+
return valueStr ? templateAttrExpr(keyName, transformExpr(valueStr)) : "";
|
|
4526
|
+
}
|
|
4527
|
+
case "boolean-shorthand":
|
|
4528
|
+
case "jsx-children":
|
|
4529
|
+
return "";
|
|
4530
|
+
}
|
|
4531
|
+
}
|
|
4532
|
+
const attrName = toHtmlAttrName(a.name);
|
|
4501
4533
|
switch (v.kind) {
|
|
4502
4534
|
case "boolean-attr":
|
|
4503
4535
|
return attrName;
|
|
@@ -12251,6 +12283,10 @@ function extractLoopKey(node) {
|
|
|
12251
12283
|
return null;
|
|
12252
12284
|
return normalizeKeyExpr(a) === normalizeKeyExpr(b) ? a : null;
|
|
12253
12285
|
}
|
|
12286
|
+
if (node.type === "fragment") {
|
|
12287
|
+
const first = node.children.find((c) => !(c.type === "text" && typeof c.value === "string" && !c.value.trim()));
|
|
12288
|
+
return first ? extractLoopKey(first) : null;
|
|
12289
|
+
}
|
|
12254
12290
|
return null;
|
|
12255
12291
|
}
|
|
12256
12292
|
function keyAttrValueToExpr(v) {
|
|
@@ -12441,7 +12477,7 @@ function leafIsWirelessElement(el) {
|
|
|
12441
12477
|
}
|
|
12442
12478
|
if (ts13.isJsxAttribute(attr)) {
|
|
12443
12479
|
const name = attr.name.getText();
|
|
12444
|
-
if (
|
|
12480
|
+
if (isEventHandlerAttrName(name)) {
|
|
12445
12481
|
ok = false;
|
|
12446
12482
|
return;
|
|
12447
12483
|
}
|
|
@@ -12497,6 +12533,12 @@ function applyLoopKeyAttr(node, name, value) {
|
|
|
12497
12533
|
if (node.type === "conditional") {
|
|
12498
12534
|
applyLoopKeyAttr(node.whenTrue, name, value);
|
|
12499
12535
|
applyLoopKeyAttr(node.whenFalse, name, value);
|
|
12536
|
+
return;
|
|
12537
|
+
}
|
|
12538
|
+
if (node.type === "fragment") {
|
|
12539
|
+
const first = node.children.find((c) => !(c.type === "text" && typeof c.value === "string" && !c.value.trim()));
|
|
12540
|
+
if (first)
|
|
12541
|
+
applyLoopKeyAttr(first, name, value);
|
|
12500
12542
|
}
|
|
12501
12543
|
}
|
|
12502
12544
|
function loopBodyItemConditional(children) {
|
|
@@ -12729,7 +12771,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
|
|
|
12729
12771
|
children = [foldMultiReturnBranches(multiReturn, ctx, loc, ctx.getJS)];
|
|
12730
12772
|
const pre = multiReturn.preamble ?? [];
|
|
12731
12773
|
if (pre.length > 0) {
|
|
12732
|
-
preamble = preambleFromValueStatements(pre, ctx);
|
|
12774
|
+
preamble = preambleFromValueStatements(pre, ctx, body.statements);
|
|
12733
12775
|
if (!preamble.declarations && !isClientOnly && !(ctx.analyzer.acceptsCallbackBody?.("map") ?? false)) {
|
|
12734
12776
|
ctx.analyzer.errors.push(createError(ErrorCodes.UNSUPPORTED_JSX_PATTERN, loc, {
|
|
12735
12777
|
message: "A .map() callback body with a preamble before its branches cannot be " + "lowered to a template: the preamble is not a sequence of value " + "declarations, so this backend has no per-row local to carry into the " + "branches.",
|
|
@@ -12816,7 +12858,7 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
|
|
|
12816
12858
|
valueStmts.push(stmt);
|
|
12817
12859
|
}
|
|
12818
12860
|
if (valueStmts.length > 0) {
|
|
12819
|
-
preamble = preambleFromValueStatements(valueStmts, ctx);
|
|
12861
|
+
preamble = preambleFromValueStatements(valueStmts, ctx, body.statements);
|
|
12820
12862
|
if (!preamble.declarations && !isClientOnly && !(ctx.analyzer.acceptsCallbackBody?.("map") ?? false)) {
|
|
12821
12863
|
ctx.analyzer.errors.push(createError(ErrorCodes.UNSUPPORTED_JSX_PATTERN, getSourceLocation(body, ctx.sourceFile, ctx.filePath), {
|
|
12822
12864
|
message: "A .map() callback preamble that is not a sequence of value " + "declarations cannot be lowered to a template: this backend can " + "declare a per-row local, but cannot run arbitrary statements per row.",
|
|
@@ -12882,11 +12924,11 @@ function transformMapCall(node, ctx, isClientOnly = false, method = "map") {
|
|
|
12882
12924
|
const bodyIsItemConditional = itemConditional !== null;
|
|
12883
12925
|
const key = bodyIsItemConditional ? extractItemConditionalKey(itemConditional) : children.length > 0 ? extractLoopKey(children[0]) : null;
|
|
12884
12926
|
if (key !== null) {
|
|
12885
|
-
const
|
|
12927
|
+
const resolvedKeyAttrName2 = keyAttrName2(depth);
|
|
12886
12928
|
if (bodyIsItemConditional) {
|
|
12887
|
-
applyLoopKeyAttr(itemConditional,
|
|
12929
|
+
applyLoopKeyAttr(itemConditional, resolvedKeyAttrName2, key);
|
|
12888
12930
|
} else if (children.length > 0) {
|
|
12889
|
-
applyLoopKeyAttr(children[0],
|
|
12931
|
+
applyLoopKeyAttr(children[0], resolvedKeyAttrName2, key);
|
|
12890
12932
|
}
|
|
12891
12933
|
}
|
|
12892
12934
|
const declaredNameSet = preamble && preamble.declaredNames.length > 0 ? new Set(preamble.declaredNames) : undefined;
|
|
@@ -13279,7 +13321,7 @@ function computePreambleReactiveNames(statements, ctx) {
|
|
|
13279
13321
|
}
|
|
13280
13322
|
return reactiveNames;
|
|
13281
13323
|
}
|
|
13282
|
-
function preambleFromValueStatements(statements, ctx) {
|
|
13324
|
+
function preambleFromValueStatements(statements, ctx, bodyStatements) {
|
|
13283
13325
|
const segments = [];
|
|
13284
13326
|
const typedParts = [];
|
|
13285
13327
|
const declared = new Set;
|
|
@@ -13299,11 +13341,11 @@ function preambleFromValueStatements(statements, ctx) {
|
|
|
13299
13341
|
ssrText: tsxSourceText(typedParts.join(" ")),
|
|
13300
13342
|
declaredNames: [...declared],
|
|
13301
13343
|
builderNames: [],
|
|
13302
|
-
declarations: neutralPreambleDeclarations(statements, ctx) ?? undefined,
|
|
13344
|
+
declarations: neutralPreambleDeclarations(statements, ctx, bodyStatements) ?? undefined,
|
|
13303
13345
|
reactiveNames: reactiveNames.size > 0 ? [...reactiveNames] : undefined
|
|
13304
13346
|
};
|
|
13305
13347
|
}
|
|
13306
|
-
function neutralPreambleDeclarations(statements, ctx) {
|
|
13348
|
+
function neutralPreambleDeclarations(statements, ctx, bodyStatements) {
|
|
13307
13349
|
const out = [];
|
|
13308
13350
|
for (const stmt of statements) {
|
|
13309
13351
|
if (!ts13.isVariableStatement(stmt))
|
|
@@ -13313,6 +13355,11 @@ function neutralPreambleDeclarations(statements, ctx) {
|
|
|
13313
13355
|
return null;
|
|
13314
13356
|
if (!decl.initializer)
|
|
13315
13357
|
return null;
|
|
13358
|
+
if (isFunctionLiteral(decl.initializer)) {
|
|
13359
|
+
if (everyReadIsEventHandlerPropValue(decl.name.text, bodyStatements))
|
|
13360
|
+
continue;
|
|
13361
|
+
return null;
|
|
13362
|
+
}
|
|
13316
13363
|
const valueParsed = tsNodeToParsedExpr(decl.initializer);
|
|
13317
13364
|
if (!isSupported(valueParsed).supported)
|
|
13318
13365
|
return null;
|
|
@@ -13323,7 +13370,30 @@ function neutralPreambleDeclarations(statements, ctx) {
|
|
|
13323
13370
|
});
|
|
13324
13371
|
}
|
|
13325
13372
|
}
|
|
13326
|
-
return out
|
|
13373
|
+
return out;
|
|
13374
|
+
}
|
|
13375
|
+
function isFunctionLiteral(node) {
|
|
13376
|
+
return ts13.isArrowFunction(node) || ts13.isFunctionExpression(node);
|
|
13377
|
+
}
|
|
13378
|
+
function everyReadIsEventHandlerPropValue(name, bodyStatements) {
|
|
13379
|
+
const findDisallowedRead = (node) => {
|
|
13380
|
+
if (ts13.isIdentifier(node) && node.text === name) {
|
|
13381
|
+
const isBindingName = ts13.isVariableDeclaration(node.parent) && node.parent.name === node;
|
|
13382
|
+
const isPropertyName = ts13.isPropertyAccessExpression(node.parent) && node.parent.name === node;
|
|
13383
|
+
if (!isBindingName && !isPropertyName) {
|
|
13384
|
+
const jsxExpr = node.parent;
|
|
13385
|
+
const attr = jsxExpr.parent;
|
|
13386
|
+
const isEventHandlerAttrValue = ts13.isJsxExpression(jsxExpr) && ts13.isJsxAttribute(attr) && attr.initializer === jsxExpr && ts13.isIdentifier(attr.name) && isEventHandlerAttrName(attr.name.text);
|
|
13387
|
+
if (!isEventHandlerAttrValue)
|
|
13388
|
+
return true;
|
|
13389
|
+
}
|
|
13390
|
+
}
|
|
13391
|
+
return ts13.forEachChild(node, findDisallowedRead);
|
|
13392
|
+
};
|
|
13393
|
+
return !bodyStatements.some(findDisallowedRead);
|
|
13394
|
+
}
|
|
13395
|
+
function isEventHandlerAttrName(name) {
|
|
13396
|
+
return /^on[A-Z]/.test(name);
|
|
13327
13397
|
}
|
|
13328
13398
|
function trimPreambleSegments(segments) {
|
|
13329
13399
|
const last = segments[segments.length - 1];
|
|
@@ -13520,7 +13590,7 @@ function processAttributes(attributes, ctx) {
|
|
|
13520
13590
|
}
|
|
13521
13591
|
continue;
|
|
13522
13592
|
}
|
|
13523
|
-
if (
|
|
13593
|
+
if (isEventHandlerAttrName(rawName)) {
|
|
13524
13594
|
if (attr.initializer && ts13.isJsxExpression(attr.initializer) && attr.initializer.expression) {
|
|
13525
13595
|
const eventName = rawName.slice(2).toLowerCase();
|
|
13526
13596
|
reportJsxBranchLocalInCallback(attr.initializer.expression, ctx);
|
|
@@ -16176,6 +16246,8 @@ function buildReferencesGraph(ctx, irRoot) {
|
|
|
16176
16246
|
}
|
|
16177
16247
|
for (const ev of el.events)
|
|
16178
16248
|
addExprEdges(ROOT_SOURCE, ev.handler, "init-body");
|
|
16249
|
+
if (el.ref)
|
|
16250
|
+
addExprEdges(ROOT_SOURCE, el.ref, "init-body");
|
|
16179
16251
|
descend();
|
|
16180
16252
|
},
|
|
16181
16253
|
component: ({ node: c, descend, descendJsxChildren }) => {
|
|
@@ -21128,12 +21200,15 @@ function stringifyComponentLoop(lines, plan) {
|
|
|
21128
21200
|
keyExpr,
|
|
21129
21201
|
nestedComps,
|
|
21130
21202
|
childConditionalEffects,
|
|
21131
|
-
profileLoopId
|
|
21203
|
+
profileLoopId,
|
|
21204
|
+
mapPreambleWrapped
|
|
21132
21205
|
} = plan;
|
|
21133
21206
|
const loopBfId = profileLoopId ? `, ${JSON.stringify(profileLoopId)}` : "";
|
|
21134
21207
|
lines.push(` mapArray(() => ${arrayExpr}, ${containerVar}, ${keyFn}, (${paramHead}, ${indexParam}, __existing) => {`);
|
|
21135
21208
|
if (paramUnwrap)
|
|
21136
21209
|
lines.push(` ${paramUnwrap}`);
|
|
21210
|
+
if (mapPreambleWrapped)
|
|
21211
|
+
lines.push(` ${mapPreambleWrapped}`);
|
|
21137
21212
|
const scopedComp = nameForRegistryRef(componentName);
|
|
21138
21213
|
if (nestedComps.length === 0) {
|
|
21139
21214
|
lines.push(` if (__existing) { initChild('${scopedComp}', __existing, ${componentPropsExpr}); return __existing }`);
|
|
@@ -22249,6 +22324,12 @@ function buildComponentLoopPlan(elem, profileComponentName) {
|
|
|
22249
22324
|
const propsExpr = buildComponentPropsExpr2(elem.childComponent, elem.param);
|
|
22250
22325
|
const keyExpr = wrapLoopParamAsAccessor(elem.key || "__idx", elem.param, elem.paramBindings);
|
|
22251
22326
|
const { head: paramHead, unwrap: paramUnwrap } = destructureLoopParam(elem.param, elem.paramBindings);
|
|
22327
|
+
const mapPreambleWrapped = elem.preamble ? renderPreamble(elem.preamble, {
|
|
22328
|
+
transformJs: (text) => wrapLoopParamAsAccessor(text, elem.param, elem.paramBindings),
|
|
22329
|
+
renderLeaf: () => {
|
|
22330
|
+
internalInvariant(false, "component-root loop received a JSX-bearing preamble — Phase 1 should have refused it");
|
|
22331
|
+
}
|
|
22332
|
+
}) : "";
|
|
22252
22333
|
const outerNestedComps = (elem.nestedComponents ?? []).filter((c) => !c.loopDepth);
|
|
22253
22334
|
const nestedComps = outerNestedComps.map((comp) => {
|
|
22254
22335
|
const isTextOnly = comp.children?.length ? comp.children.every((c) => c.type === "expression" || c.type === "text" || isTextOnlyConditional(c)) : false;
|
|
@@ -22266,6 +22347,7 @@ function buildComponentLoopPlan(elem, profileComponentName) {
|
|
|
22266
22347
|
return {
|
|
22267
22348
|
kind: "component",
|
|
22268
22349
|
rowConstruction: "dom-ops",
|
|
22350
|
+
mapPreambleWrapped,
|
|
22269
22351
|
containerVar: `_${varSlotId(elem.slotId)}`,
|
|
22270
22352
|
markerId: elem.markerId,
|
|
22271
22353
|
arrayExpr: buildChainedArrayExpr(elem),
|
|
@@ -22448,6 +22530,7 @@ function emitLoopUpdates(lines, ctx, unsafeLocalNames) {
|
|
|
22448
22530
|
lazyScope
|
|
22449
22531
|
});
|
|
22450
22532
|
internalInvariant(!(elem.preamble && elem.preamble.builderNames.length > 0 && plan.rowConstruction === "dom-ops"), `loop variant '${plan.kind}' declares dom-ops row construction but received a JSX-bearing preamble — add a Phase-1 refusal (or wire renderPreamble support) for this shape`);
|
|
22533
|
+
internalInvariant(!(elem.preamble && elem.preamble.declaredNames.length > 0 && ("mapPreambleWrapped" in plan) && plan.mapPreambleWrapped === ""), `loop variant '${plan.kind}' has a preamble with declared names (${elem.preamble?.declaredNames.join(", ")}) but its plan's mapPreambleWrapped is empty — wire it up or the emitted call site references a name nothing declares`);
|
|
22451
22534
|
stringifyLoop(lines, plan);
|
|
22452
22535
|
emitLoopEventDelegation(lines, elem, plan.kind, ctx.profile ? ctx.componentName : undefined);
|
|
22453
22536
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-references.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/build-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAEV,MAAM,EAIN,eAAe,EAChB,MAAM,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAYjD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,
|
|
1
|
+
{"version":3,"file":"build-references.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/build-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAEV,MAAM,EAIN,eAAe,EAChB,MAAM,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAYjD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAiW1F;AAMD;;2DAE2D;AAC3D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAOxE;AAED;0CAC0C;AAC1C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAMtE;AAED;6CAC6C;AAC7C,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,CAM5E;AAED;;qDAEqD;AACrD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAE3F;AAED;;8CAE8C;AAC9C,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,EACjD,IAAI,EAAE,MAAM,GACX,GAAG,CAAC,MAAM,CAAC,CAQb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-component-loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/plan/build-component-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAiBlD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"build-component-loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/plan/build-component-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAiBlD,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAA;AAGxE,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,iBAAiB,CA+E3G"}
|
|
@@ -69,6 +69,8 @@ interface DynamicLoopCommon extends LoopPlanCommon {
|
|
|
69
69
|
paramHead: string;
|
|
70
70
|
/** Statement to unwrap a destructured param at body entry. Empty when not needed. */
|
|
71
71
|
paramUnwrap: string;
|
|
72
|
+
/** Pre-render preamble line (already wrapped with loop param accessor). Empty when none. */
|
|
73
|
+
mapPreambleWrapped: string;
|
|
72
74
|
}
|
|
73
75
|
/**
|
|
74
76
|
* A resolved preamble-patched region (#2389), ready to emit: `valueExpr` is
|
|
@@ -106,8 +108,6 @@ export interface LoopChildRefBinding {
|
|
|
106
108
|
*/
|
|
107
109
|
interface PlainLoopVariant extends DynamicLoopCommon {
|
|
108
110
|
kind: 'plain';
|
|
109
|
-
/** Pre-render preamble line (already wrapped with loop param accessor). Empty when none. */
|
|
110
|
-
mapPreambleWrapped: string;
|
|
111
111
|
/** HTML template string for one item. */
|
|
112
112
|
template: string;
|
|
113
113
|
/**
|
|
@@ -212,8 +212,6 @@ interface ComponentLoopVariant extends DynamicLoopCommon {
|
|
|
212
212
|
*/
|
|
213
213
|
interface CompositeLoopVariant extends DynamicLoopCommon {
|
|
214
214
|
kind: 'composite';
|
|
215
|
-
/** Wrapped mapPreamble line, hoisted before the SSR/CSR split. Empty when none. */
|
|
216
|
-
mapPreambleWrapped: string;
|
|
217
215
|
/** Inner template HTML for the loop body (single item). */
|
|
218
216
|
template: string;
|
|
219
217
|
/** Outer-level child components (depth 0), with `insideConditional` ones already filtered out. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/plan/loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,iDAAiD;AACjD,UAAU,cAAc;IACtB,uFAAuF;IACvF,YAAY,EAAE,MAAM,CAAA;IACpB,kGAAkG;IAClG,SAAS,EAAE,MAAM,CAAA;IACjB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,SAAS,EAAE,SAAS,mBAAmB,EAAE,CAAA;IACzC;;;;;;;;;;OAUG;IACH,eAAe,EAAE,iBAAiB,GAAG,SAAS,CAAA;CAC/C;AAED,uEAAuE;AACvE,UAAU,iBAAkB,SAAQ,cAAc;IAChD,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAA;IAChB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAA;IACjB,qFAAqF;IACrF,WAAW,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/plan/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/stringify/component-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAA;AAG9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"component-loop.d.ts","sourceRoot":"","sources":["../../../../src/ir-to-client-js/control-flow/stringify/component-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAuB,MAAM,kBAAkB,CAAA;AAG9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAuDrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-flow.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/control-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAA;AAa/D,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAOlF;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAQtF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"control-flow.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/control-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAA;AAa/D,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAOlF;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,GAAG,IAAI,CAQtF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAmC1G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html-template.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/html-template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"html-template.d.ts","sourceRoot":"","sources":["../../src/ir-to-client-js/html-template.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -786,6 +786,19 @@ export interface MapCallbackPreamble {
|
|
|
786
786
|
* expression subset cannot model leaves this `undefined`, and the Phase-1
|
|
787
787
|
* DSL gate refuses the whole loop with `/* @client *\/` guidance.
|
|
788
788
|
*
|
|
789
|
+
* ONE exception (#2797): a declaration whose initializer is a function
|
|
790
|
+
* literal is ELIDED (contributes no entry here) rather than refusing the
|
|
791
|
+
* preamble, when EVERY read of that name outside its own binding sits
|
|
792
|
+
* inside an event-handler `JsxAttribute` (`/^on[A-Z]/`) value position —
|
|
793
|
+
* see `neutralPreambleDeclarations`'s `everyReadIsEventHandlerPropValue`
|
|
794
|
+
* check. Every DSL adapter's own SSR component-prop builder already skips
|
|
795
|
+
* an event-handler prop outright, so a name read only that way never needs
|
|
796
|
+
* an SSR representation; the client-JS preamble (`segments`) still carries
|
|
797
|
+
* the real closure. This can leave `declarations` a legally EMPTY array
|
|
798
|
+
* (all-declared names elided) rather than `undefined` — the Phase-1 gate
|
|
799
|
+
* checks falsiness, and `[]` is truthy, so an empty array reads as "fully
|
|
800
|
+
* declared, nothing to emit," not a refusal.
|
|
801
|
+
*
|
|
789
802
|
* Declarations appear in source order and may read earlier ones; adapters
|
|
790
803
|
* emit them in order, so an earlier local is in scope for a later
|
|
791
804
|
* initializer, exactly as in the source.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@barefootjs/jsx",
|
|
3
|
-
"version": "0.33.
|
|
3
|
+
"version": "0.33.4",
|
|
4
4
|
"description": "JSX compiler for BarefootJS - transforms JSX to server HTML + client JS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"directory": "packages/jsx"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@barefootjs/shared": "0.33.
|
|
52
|
+
"@barefootjs/shared": "0.33.4"
|
|
53
53
|
},
|
|
54
54
|
"peerDependencies": {
|
|
55
55
|
"@barefootjs/client": ">=0.2.0",
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fragment-bodied `.map()` row key extraction (#2763).
|
|
3
|
+
*
|
|
4
|
+
* A `.map()` callback whose body is a fragment (`<><li key={..}/><li/></>`)
|
|
5
|
+
* used to make `extractLoopKey` (`jsx-to-ir.ts`) return `null` — it handled
|
|
6
|
+
* `element`, `component`, and `conditional`, but not `fragment`. That made
|
|
7
|
+
* every SSR adapter silently drop the row-key attribute AND left
|
|
8
|
+
* `mapArray`'s `keyFn` unset (positional reconciliation), while
|
|
9
|
+
* `html-template.ts`'s client row builder kept baking `data-key` from the
|
|
10
|
+
* raw `key` JSX attribute — a silent SSR/CSR divergence with no diagnostic.
|
|
11
|
+
*
|
|
12
|
+
* The fix adds a `fragment` case to both `extractLoopKey` and its write-side
|
|
13
|
+
* twin `applyLoopKeyAttr`, reading/stamping the key on the fragment's FIRST
|
|
14
|
+
* ELEMENT child (skipping whitespace-only text), matching the "first
|
|
15
|
+
* element, not first node" rule `IRElement.keyAttr`'s docstring already
|
|
16
|
+
* documents for the render-root relay case. `html-template.ts`'s client
|
|
17
|
+
* template builders were also changed to read `IRElement.keyAttr` instead
|
|
18
|
+
* of the raw attribute (see `resolvedKeyAttrName` in that file) — this test
|
|
19
|
+
* covers only the SSR/IR-resolution half.
|
|
20
|
+
*/
|
|
21
|
+
import { describe, test, expect } from 'bun:test'
|
|
22
|
+
import { analyzeComponent } from '../analyzer'
|
|
23
|
+
import { jsxToIR } from '../jsx-to-ir'
|
|
24
|
+
import { compileJSX } from '../compiler'
|
|
25
|
+
import { TestAdapter } from '../adapters/test-adapter'
|
|
26
|
+
import type { IRElement, IRLoop, IRNode } from '../types'
|
|
27
|
+
|
|
28
|
+
function compile(source: string, name = 'Test'): IRNode {
|
|
29
|
+
const ir = jsxToIR(analyzeComponent(source, `${name}.tsx`))
|
|
30
|
+
expect(ir).not.toBeNull()
|
|
31
|
+
return ir!
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** The single `loop` node anywhere in the tree (depth-first), or null. */
|
|
35
|
+
function findLoop(node: IRNode): IRLoop | null {
|
|
36
|
+
if (node.type === 'loop') return node
|
|
37
|
+
const children: IRNode[] =
|
|
38
|
+
'children' in node && Array.isArray((node as { children?: unknown }).children)
|
|
39
|
+
? (node as { children: IRNode[] }).children
|
|
40
|
+
: []
|
|
41
|
+
for (const c of children) {
|
|
42
|
+
const found = findLoop(c)
|
|
43
|
+
if (found) return found
|
|
44
|
+
}
|
|
45
|
+
return null
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const SOURCE = `
|
|
49
|
+
'use client'
|
|
50
|
+
import { createSignal } from '@barefootjs/client'
|
|
51
|
+
type Item = { id: number; label: string }
|
|
52
|
+
export function KeyFrag(props: { items: Item[] }) {
|
|
53
|
+
const [items] = createSignal<Item[]>(props.items)
|
|
54
|
+
return (
|
|
55
|
+
<ul>
|
|
56
|
+
{items().map(item => (
|
|
57
|
+
<>
|
|
58
|
+
<li key={item.id}>{item.label}</li>
|
|
59
|
+
<li>x</li>
|
|
60
|
+
</>
|
|
61
|
+
))}
|
|
62
|
+
</ul>
|
|
63
|
+
)
|
|
64
|
+
}
|
|
65
|
+
`
|
|
66
|
+
|
|
67
|
+
describe('fragment-bodied .map() row key extraction (#2763)', () => {
|
|
68
|
+
test('IRElement.keyAttr lands on the fragment\'s first element, not the second', () => {
|
|
69
|
+
const ir = compile(SOURCE, 'KeyFrag')
|
|
70
|
+
const loop = findLoop(ir)
|
|
71
|
+
expect(loop).not.toBeNull()
|
|
72
|
+
const fragment = loop!.children[0]
|
|
73
|
+
expect(fragment.type).toBe('fragment')
|
|
74
|
+
if (fragment.type !== 'fragment') return
|
|
75
|
+
const [firstLi, secondLi] = fragment.children.filter(
|
|
76
|
+
(c): c is IRElement => c.type === 'element',
|
|
77
|
+
)
|
|
78
|
+
expect(firstLi.keyAttr).toEqual({ name: 'data-key', value: 'item.id' })
|
|
79
|
+
expect(secondLi.keyAttr).toBeUndefined()
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
test('mapArray receives a real keyFn instead of reconciling positionally', () => {
|
|
83
|
+
const result = compileJSX(SOURCE, 'KeyFrag.tsx', { adapter: new TestAdapter() })
|
|
84
|
+
expect(result.errors.filter((e) => (e as { severity?: string }).severity === 'error')).toHaveLength(0)
|
|
85
|
+
const cjs = result.files.find((f) => f.type === 'clientJs')
|
|
86
|
+
expect(cjs).toBeDefined()
|
|
87
|
+
const calls = cjs!.content
|
|
88
|
+
.split('\n')
|
|
89
|
+
.map((ln) => ln.trim())
|
|
90
|
+
.filter((ln) => ln.startsWith('mapArray(') || ln.startsWith('mapArrayLazy('))
|
|
91
|
+
expect(calls).toHaveLength(1)
|
|
92
|
+
expect(calls[0]).toContain('String(item.id)')
|
|
93
|
+
expect(calls[0]).not.toMatch(/_s\d+, null,/)
|
|
94
|
+
})
|
|
95
|
+
})
|
|
@@ -48,7 +48,11 @@ export function Edges() {
|
|
|
48
48
|
const { markedTemplate, clientJs } = compile(source, 'Edges.tsx')
|
|
49
49
|
|
|
50
50
|
// SSR: per-item start marker is emitted inside the .map() body.
|
|
51
|
-
|
|
51
|
+
// `bfComment(k)` itself prepends `bf-`, so the call argument is
|
|
52
|
+
// `'loop-i'`, yielding `<!--bf-loop-i-->` (#2763 fixed a stray extra
|
|
53
|
+
// `bf-` prefix here that had gone unexercised until that issue's
|
|
54
|
+
// fixture was the first `bodyIsMultiRoot` case rendered on this adapter).
|
|
55
|
+
expect(markedTemplate.content).toContain(`bfComment('loop-i')`)
|
|
52
56
|
// Loop boundary markers also still present.
|
|
53
57
|
expect(markedTemplate.content).toMatch(/bfComment\('loop:[^']+'\)/)
|
|
54
58
|
expect(markedTemplate.content).toMatch(/bfComment\('\/loop:[^']+'\)/)
|
|
@@ -79,7 +83,7 @@ export function Items() {
|
|
|
79
83
|
const { markedTemplate, clientJs } = compile(source, 'Items.tsx')
|
|
80
84
|
|
|
81
85
|
// No per-item markers in the single-root case (zero-cost).
|
|
82
|
-
expect(markedTemplate.content).not.toContain(`bfComment('
|
|
86
|
+
expect(markedTemplate.content).not.toContain(`bfComment('loop-i')`)
|
|
83
87
|
expect(clientJs).toBeDefined()
|
|
84
88
|
expect(clientJs!.content).not.toContain('__bfExtras')
|
|
85
89
|
})
|
|
@@ -104,7 +108,7 @@ export function Items() {
|
|
|
104
108
|
}
|
|
105
109
|
`
|
|
106
110
|
const { markedTemplate, clientJs } = compile(source, 'NestedFrag.tsx')
|
|
107
|
-
expect(markedTemplate.content).not.toContain(`bfComment('
|
|
111
|
+
expect(markedTemplate.content).not.toContain(`bfComment('loop-i')`)
|
|
108
112
|
expect(clientJs).toBeDefined()
|
|
109
113
|
expect(clientJs!.content).not.toContain('__bfExtras')
|
|
110
114
|
})
|
|
@@ -205,3 +205,45 @@ export function Rows(props: { rows: Row[] }) {
|
|
|
205
205
|
expect(dslErrors(source)).toEqual([])
|
|
206
206
|
})
|
|
207
207
|
})
|
|
208
|
+
|
|
209
|
+
describe('preamble value declarations — function-literal elision (#2797)', () => {
|
|
210
|
+
// An event handler hoisted into the preamble (rather than written inline in
|
|
211
|
+
// the JSX attribute) has no template-expression form on any DSL backend —
|
|
212
|
+
// but every adapter's own SSR prop-builder already skips an event-handler
|
|
213
|
+
// prop outright, so a name read ONLY that way needs no SSR representation
|
|
214
|
+
// at all. Elided, not refused: `declarations` legally ends up `[]`.
|
|
215
|
+
test('a handler read only as an event-handler prop value elides clean, no refusal', () => {
|
|
216
|
+
const source = ROWS(`const handleClick = () => {}`, `<li key={r.id} onClick={handleClick}>{r.label}</li>`)
|
|
217
|
+
expect(loopOf(source).preamble?.declarations).toEqual([])
|
|
218
|
+
expect(dslErrors(source)).toEqual([])
|
|
219
|
+
})
|
|
220
|
+
|
|
221
|
+
test('an elided handler coexists with a genuinely lowered declaration', () => {
|
|
222
|
+
const loop = loopOf(
|
|
223
|
+
ROWS(
|
|
224
|
+
`const cls = r.done ? 'done' : 'open'\n const handleClick = () => {}`,
|
|
225
|
+
`<li key={r.id} class={cls} onClick={handleClick}>{r.label}</li>`,
|
|
226
|
+
),
|
|
227
|
+
)
|
|
228
|
+
// Only the lowerable declaration survives — the elided one contributes no entry.
|
|
229
|
+
expect(loop.preamble?.declarations?.map(d => d.name)).toEqual(['cls'])
|
|
230
|
+
})
|
|
231
|
+
|
|
232
|
+
// Soundness: a function-valued local read ANYWHERE other than an
|
|
233
|
+
// event-handler prop value still refuses — elision only widens what's
|
|
234
|
+
// SAFE, it never lets an SSR-relevant function read through unassigned.
|
|
235
|
+
test('a handler also read in a non-event position still refuses', () => {
|
|
236
|
+
const errors = dslErrors(
|
|
237
|
+
ROWS(`const handleClick = () => {}`, `<li key={r.id}>{handleClick.name}</li>`),
|
|
238
|
+
)
|
|
239
|
+
expect(errors.length).toBeGreaterThan(0)
|
|
240
|
+
expect(errors[0]).toMatch(/not a sequence of value declarations/)
|
|
241
|
+
})
|
|
242
|
+
|
|
243
|
+
test('a handler passed to a NON-event child prop still refuses', () => {
|
|
244
|
+
const errors = dslErrors(
|
|
245
|
+
ROWS(`const handleClick = () => {}`, `<li key={r.id} data-fn={handleClick}>{r.label}</li>`),
|
|
246
|
+
)
|
|
247
|
+
expect(errors.length).toBeGreaterThan(0)
|
|
248
|
+
})
|
|
249
|
+
})
|
|
@@ -302,6 +302,13 @@ export function buildReferencesGraph(ctx: ClientJsContext, irRoot: IRNode): Refe
|
|
|
302
302
|
if (v && attr.value.kind !== 'literal') addExprEdges(ROOT_SOURCE, v, 'template-closure')
|
|
303
303
|
}
|
|
304
304
|
for (const ev of el.events) addExprEdges(ROOT_SOURCE, ev.handler, 'init-body')
|
|
305
|
+
// A `ref` callback runs in `initX`'s closure, same context as an event
|
|
306
|
+
// handler — not the template closure. Without this edge, a ref inside
|
|
307
|
+
// a loop nested past the top level (`elem.innerLoops`, never walked by
|
|
308
|
+
// Phase 1's dedicated ref traces) is invisible to reachability, so
|
|
309
|
+
// `computeDeclarationScopes` (compute-scope.ts) drops its declaration
|
|
310
|
+
// as dead code while the emitter still emits the call site (#2750).
|
|
311
|
+
if (el.ref) addExprEdges(ROOT_SOURCE, el.ref, 'init-body')
|
|
305
312
|
descend()
|
|
306
313
|
},
|
|
307
314
|
component: ({ node: c, descend, descendJsxChildren }) => {
|
|
@@ -26,9 +26,10 @@ import {
|
|
|
26
26
|
isTextOnlyConditional,
|
|
27
27
|
buildChildRefBindings,
|
|
28
28
|
} from '../shared.ts'
|
|
29
|
-
import { irChildrenToJsExpr } from '../../html-template.ts'
|
|
29
|
+
import { irChildrenToJsExpr, renderPreamble } from '../../html-template.ts'
|
|
30
30
|
import { buildReactiveEffectsPlan } from './build-reactive-effects.ts'
|
|
31
31
|
import type { ComponentLoopPlan, NestedComponentInit } from './types.ts'
|
|
32
|
+
import { internalInvariant } from '../../../errors.ts'
|
|
32
33
|
|
|
33
34
|
/** @internal — prefer `buildLoopPlan`. */
|
|
34
35
|
export function buildComponentLoopPlan(elem: TopLevelLoop, profileComponentName?: string): ComponentLoopPlan {
|
|
@@ -37,6 +38,22 @@ export function buildComponentLoopPlan(elem: TopLevelLoop, profileComponentName?
|
|
|
37
38
|
const keyExpr = wrapLoopParamAsAccessor(elem.key || '__idx', elem.param, elem.paramBindings)
|
|
38
39
|
const { head: paramHead, unwrap: paramUnwrap } = destructureLoopParam(elem.param, elem.paramBindings)
|
|
39
40
|
|
|
41
|
+
// A component-root loop's preamble is JS-only by construction: Phase 1
|
|
42
|
+
// (jsx-to-ir.ts) already refuses and strips any preamble with a JSX leaf
|
|
43
|
+
// (`builderNames.length > 0`) on this shape, because a lowered HTML-string
|
|
44
|
+
// leaf passed as a prop would diverge from SSR's real JSX elements — see
|
|
45
|
+
// `rowConstruction: 'dom-ops'` below. `renderLeaf` is therefore never
|
|
46
|
+
// reachable here; if it ever fires, a Phase-1 refusal for the new shape
|
|
47
|
+
// that let a JSX-bearing preamble through is missing, not this line.
|
|
48
|
+
const mapPreambleWrapped = elem.preamble
|
|
49
|
+
? renderPreamble(elem.preamble, {
|
|
50
|
+
transformJs: text => wrapLoopParamAsAccessor(text, elem.param, elem.paramBindings),
|
|
51
|
+
renderLeaf: () => {
|
|
52
|
+
internalInvariant(false, 'component-root loop received a JSX-bearing preamble — Phase 1 should have refused it')
|
|
53
|
+
},
|
|
54
|
+
})
|
|
55
|
+
: ''
|
|
56
|
+
|
|
40
57
|
// Only init components at loopDepth 0 — inner-loop components are handled by their own loop
|
|
41
58
|
const outerNestedComps = (elem.nestedComponents ?? []).filter(c => !c.loopDepth)
|
|
42
59
|
const nestedComps: NestedComponentInit[] = outerNestedComps.map(comp => {
|
|
@@ -64,6 +81,7 @@ export function buildComponentLoopPlan(elem: TopLevelLoop, profileComponentName?
|
|
|
64
81
|
// prop would diverge from SSR (which passes real JSX elements). The plan
|
|
65
82
|
// dispatcher refuses a JSX-bearing preamble on this variant.
|
|
66
83
|
rowConstruction: 'dom-ops',
|
|
84
|
+
mapPreambleWrapped,
|
|
67
85
|
containerVar: `_${varSlotId(elem.slotId)}`,
|
|
68
86
|
markerId: elem.markerId,
|
|
69
87
|
arrayExpr: buildChainedArrayExpr(elem),
|
|
@@ -77,6 +77,8 @@ interface DynamicLoopCommon extends LoopPlanCommon {
|
|
|
77
77
|
paramHead: string
|
|
78
78
|
/** Statement to unwrap a destructured param at body entry. Empty when not needed. */
|
|
79
79
|
paramUnwrap: string
|
|
80
|
+
/** Pre-render preamble line (already wrapped with loop param accessor). Empty when none. */
|
|
81
|
+
mapPreambleWrapped: string
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
/**
|
|
@@ -117,8 +119,6 @@ export interface LoopChildRefBinding {
|
|
|
117
119
|
*/
|
|
118
120
|
interface PlainLoopVariant extends DynamicLoopCommon {
|
|
119
121
|
kind: 'plain'
|
|
120
|
-
/** Pre-render preamble line (already wrapped with loop param accessor). Empty when none. */
|
|
121
|
-
mapPreambleWrapped: string
|
|
122
122
|
/** HTML template string for one item. */
|
|
123
123
|
template: string
|
|
124
124
|
/**
|
|
@@ -225,8 +225,6 @@ interface ComponentLoopVariant extends DynamicLoopCommon {
|
|
|
225
225
|
*/
|
|
226
226
|
interface CompositeLoopVariant extends DynamicLoopCommon {
|
|
227
227
|
kind: 'composite'
|
|
228
|
-
/** Wrapped mapPreamble line, hoisted before the SSR/CSR split. Empty when none. */
|
|
229
|
-
mapPreambleWrapped: string
|
|
230
228
|
/** Inner template HTML for the loop body (single item). */
|
|
231
229
|
template: string
|
|
232
230
|
/** Outer-level child components (depth 0), with `insideConditional` ones already filtered out. */
|
|
@@ -49,11 +49,18 @@ export function stringifyComponentLoop(lines: string[], plan: ComponentLoopPlan)
|
|
|
49
49
|
nestedComps,
|
|
50
50
|
childConditionalEffects,
|
|
51
51
|
profileLoopId,
|
|
52
|
+
mapPreambleWrapped,
|
|
52
53
|
} = plan
|
|
53
54
|
|
|
54
55
|
const loopBfId = profileLoopId ? `, ${JSON.stringify(profileLoopId)}` : ''
|
|
55
56
|
lines.push(` mapArray(() => ${arrayExpr}, ${containerVar}, ${keyFn}, (${paramHead}, ${indexParam}, __existing) => {`)
|
|
56
57
|
if (paramUnwrap) lines.push(` ${paramUnwrap}`)
|
|
58
|
+
// The preamble's consts are referenced by componentPropsExpr's getters
|
|
59
|
+
// below, in BOTH the `initChild` (hydration-reuse) and `createComponent`
|
|
60
|
+
// (fresh row) branches — a row rebuild and a hydration-reused row must
|
|
61
|
+
// read the same preamble-computed value, so it can't be hoisted into only
|
|
62
|
+
// one branch.
|
|
63
|
+
if (mapPreambleWrapped) lines.push(` ${mapPreambleWrapped}`)
|
|
57
64
|
|
|
58
65
|
const scopedComp = nameForRegistryRef(componentName)
|
|
59
66
|
|
|
@@ -86,6 +86,18 @@ export function emitLoopUpdates(lines: string[], ctx: ClientJsContext, unsafeLoc
|
|
|
86
86
|
!(elem.preamble && elem.preamble.builderNames.length > 0 && plan.rowConstruction === 'dom-ops'),
|
|
87
87
|
`loop variant '${plan.kind}' declares dom-ops row construction but received a JSX-bearing preamble — add a Phase-1 refusal (or wire renderPreamble support) for this shape`,
|
|
88
88
|
)
|
|
89
|
+
// #2797's hole, generalized: a JS-only preamble (no JSX leaf, so the
|
|
90
|
+
// check above doesn't fire) can still be silently dropped if a variant
|
|
91
|
+
// just never reads `elem.preamble` at all — which is exactly what
|
|
92
|
+
// happened to the 'component' variant before it grew
|
|
93
|
+
// `mapPreambleWrapped`. A variant that doesn't declare that field can't
|
|
94
|
+
// be checked here (nothing to read), so this only catches a variant
|
|
95
|
+
// that declares it but leaves it unpopulated for a preamble that has
|
|
96
|
+
// names to declare.
|
|
97
|
+
internalInvariant(
|
|
98
|
+
!(elem.preamble && elem.preamble.declaredNames.length > 0 && 'mapPreambleWrapped' in plan && plan.mapPreambleWrapped === ''),
|
|
99
|
+
`loop variant '${plan.kind}' has a preamble with declared names (${elem.preamble?.declaredNames.join(', ')}) but its plan's mapPreambleWrapped is empty — wire it up or the emitted call site references a name nothing declares`,
|
|
100
|
+
)
|
|
89
101
|
stringifyLoop(lines, plan)
|
|
90
102
|
emitLoopEventDelegation(lines, elem, plan.kind, ctx.profile ? ctx.componentName : undefined)
|
|
91
103
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* IR → HTML template string generation and validation.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type { AttrValue, FlatMapCallback, IRAttribute, IRExpression, IRNode, IRProp, MapCallbackPreamble } from '../types.ts'
|
|
5
|
+
import type { AttrValue, FlatMapCallback, IRAttribute, IRElement, IRExpression, IRNode, IRProp, MapCallbackPreamble } from '../types.ts'
|
|
6
6
|
import { isBooleanAttr } from '../html-constants.ts'
|
|
7
7
|
import { toHtmlAttrName, attrValueToString, quotePropName, PROPS_PARAM, DATA_BF_PH, keyAttrName, loopStartMarker, loopEndMarker, loopItemMarker, freeIdsFromRefs, setIntersects, wrapExprWithLoopParams } from './utils.ts'
|
|
8
8
|
import type { LoopParamSpec } from './utils.ts'
|
|
@@ -547,6 +547,25 @@ export interface MergeContext {
|
|
|
547
547
|
honorClientOnly: boolean
|
|
548
548
|
}
|
|
549
549
|
|
|
550
|
+
/**
|
|
551
|
+
* The client-template twin of `IRElement.keyAttr`'s SSR-side decision
|
|
552
|
+
* (`jsx-to-ir.ts`'s `extractLoopKey`/`applyLoopKeyAttr`) — #2763. A raw
|
|
553
|
+
* `key={}` JSX attribute survives on `.attrs` regardless of whether the
|
|
554
|
+
* loop/relay actually recognized it as a row key (a fragment-bodied loop
|
|
555
|
+
* row before #2763's fix, or heterogeneous keys across conditional
|
|
556
|
+
* branches) — baking `data-key` from the mere presence of that attribute
|
|
557
|
+
* would disagree with every SSR adapter, which all gate on `keyAttr`
|
|
558
|
+
* instead. Returns the resolved attribute name only when `node.keyAttr` is
|
|
559
|
+
* actually set; `null` otherwise, so the caller drops the raw `key`
|
|
560
|
+
* attribute entirely rather than emitting a `data-key` no SSR adapter
|
|
561
|
+
* agrees with. `keyAttr.name` and `keyAttrName(loopDepth)` are already the
|
|
562
|
+
* same value (both derive from `@barefootjs/shared`'s `keyAttrName`, see
|
|
563
|
+
* `IRElement.keyAttr`'s docstring) — this only decides WHETHER to use it.
|
|
564
|
+
*/
|
|
565
|
+
function resolvedKeyAttrName(node: IRElement, loopDepth: number): string | null {
|
|
566
|
+
return node.keyAttr ? keyAttrName(loopDepth) : null
|
|
567
|
+
}
|
|
568
|
+
|
|
550
569
|
/** Return true if this attribute should participate in the merge object. */
|
|
551
570
|
function isMergeableAttr(a: IRAttribute, ctx: MergeContext): boolean {
|
|
552
571
|
if (ctx.honorClientOnly && a.clientOnly) return false
|
|
@@ -876,10 +895,11 @@ export function irToHtmlTemplate(node: IRNode, restSpreadNames?: ReadonlySet<str
|
|
|
876
895
|
// others are already represented inside the merge object.
|
|
877
896
|
return idx === firstMergeableIdx ? mergeCall! : ''
|
|
878
897
|
}
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
898
|
+
if (a.name === 'key') {
|
|
899
|
+
const attrName = resolvedKeyAttrName(node, loopDepth)
|
|
900
|
+
return attrName ? renderTemplateAttrPart(a, attrName, wrapExpr, restSpreadNames) : ''
|
|
901
|
+
}
|
|
902
|
+
return renderTemplateAttrPart(a, toHtmlAttrName(a.name), wrapExpr, restSpreadNames)
|
|
883
903
|
})
|
|
884
904
|
.filter(Boolean)
|
|
885
905
|
|
|
@@ -1189,7 +1209,9 @@ export function buildLoopSkeletonTemplate(node: IRNode, safe: LoopSkeletonSafeSl
|
|
|
1189
1209
|
if (a.name === '...') return null
|
|
1190
1210
|
if (a.name === 'dangerouslySetInnerHTML') return null
|
|
1191
1211
|
if (a.name === 'key') {
|
|
1192
|
-
|
|
1212
|
+
if (resolvedKeyAttrName(node, 0)) {
|
|
1213
|
+
attrParts.push(`${keyAttrName(0)}=""`)
|
|
1214
|
+
}
|
|
1193
1215
|
continue
|
|
1194
1216
|
}
|
|
1195
1217
|
const v = a.value
|
|
@@ -1485,9 +1507,11 @@ export function irToPlaceholderTemplate(node: IRNode, restSpreadNames?: Readonly
|
|
|
1485
1507
|
// composite-row twin of it, so a row it builds must carry the
|
|
1486
1508
|
// same attributes a hydration-reused row does (#2756).
|
|
1487
1509
|
if (a.clientOnly) return ''
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1510
|
+
if (a.name === 'key') {
|
|
1511
|
+
const attrName = resolvedKeyAttrName(node, loopDepth)
|
|
1512
|
+
return attrName ? renderTemplateAttrPart(a, attrName, wrapExpr, restSpreadNames) : ''
|
|
1513
|
+
}
|
|
1514
|
+
const attrName = a.name === '...' ? '...' : toHtmlAttrName(a.name)
|
|
1491
1515
|
return renderTemplateAttrPart(a, attrName, wrapExpr, restSpreadNames)
|
|
1492
1516
|
})
|
|
1493
1517
|
.filter(Boolean)
|
|
@@ -2550,9 +2574,26 @@ function generateCsrTemplateWithOpts(node: IRNode, opts: TemplateOptions): strin
|
|
|
2550
2574
|
if (mergeCtx.isFilteredSpread(v)) return ''
|
|
2551
2575
|
return `\${spreadAttrs(${transformExpr(v.expr, v.templateExpr)})}`
|
|
2552
2576
|
}
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2577
|
+
if (a.name === 'key') {
|
|
2578
|
+
const keyName = resolvedKeyAttrName(node, loopDepth)
|
|
2579
|
+
if (!keyName) return ''
|
|
2580
|
+
switch (v.kind) {
|
|
2581
|
+
case 'boolean-attr':
|
|
2582
|
+
return keyName
|
|
2583
|
+
case 'literal':
|
|
2584
|
+
return `${keyName}="${escapeHtml(v.value)}"`
|
|
2585
|
+
case 'expression':
|
|
2586
|
+
return templateAttrExpr(keyName, transformExpr(v.expr, v.templateExpr), v.presenceOrUndefined)
|
|
2587
|
+
case 'template': {
|
|
2588
|
+
const valueStr = attrValueToString(v, { useTemplate: true })
|
|
2589
|
+
return valueStr ? templateAttrExpr(keyName, transformExpr(valueStr)) : ''
|
|
2590
|
+
}
|
|
2591
|
+
case 'boolean-shorthand':
|
|
2592
|
+
case 'jsx-children':
|
|
2593
|
+
return ''
|
|
2594
|
+
}
|
|
2595
|
+
}
|
|
2596
|
+
const attrName = toHtmlAttrName(a.name)
|
|
2556
2597
|
switch (v.kind) {
|
|
2557
2598
|
case 'boolean-attr':
|
|
2558
2599
|
return attrName
|
package/src/jsx-to-ir.ts
CHANGED
|
@@ -3793,6 +3793,19 @@ function extractLoopKey(node: IRNode): string | null {
|
|
|
3793
3793
|
if (b === null) return null
|
|
3794
3794
|
return normalizeKeyExpr(a) === normalizeKeyExpr(b) ? a : null
|
|
3795
3795
|
}
|
|
3796
|
+
if (node.type === 'fragment') {
|
|
3797
|
+
// #2763: a `.map()` body returning a fragment (`<><li key={..}/><li/></>`)
|
|
3798
|
+
// reads the key off its FIRST element, not first node — same "first
|
|
3799
|
+
// element, not first node" rule as `IRElement.keyAttr`'s docstring and
|
|
3800
|
+
// `markCarrierIn`'s relay case, skipping whitespace-only text the way
|
|
3801
|
+
// `branchHasNoElement` does. Recursing through `extractLoopKey` (rather
|
|
3802
|
+
// than requiring `type === 'element'` directly) lets a nested
|
|
3803
|
+
// conditional/fragment first child resolve too.
|
|
3804
|
+
const first = node.children.find(
|
|
3805
|
+
(c) => !(c.type === 'text' && typeof c.value === 'string' && !c.value.trim())
|
|
3806
|
+
)
|
|
3807
|
+
return first ? extractLoopKey(first) : null
|
|
3808
|
+
}
|
|
3796
3809
|
return null
|
|
3797
3810
|
}
|
|
3798
3811
|
|
|
@@ -4108,7 +4121,7 @@ function leafIsWirelessElement(el: ts.JsxElement | ts.JsxSelfClosingElement): bo
|
|
|
4108
4121
|
if (ts.isJsxSpreadAttribute(attr)) { ok = false; return }
|
|
4109
4122
|
if (ts.isJsxAttribute(attr)) {
|
|
4110
4123
|
const name = attr.name.getText()
|
|
4111
|
-
if (
|
|
4124
|
+
if (isEventHandlerAttrName(name)) { ok = false; return }
|
|
4112
4125
|
}
|
|
4113
4126
|
}
|
|
4114
4127
|
}
|
|
@@ -4206,12 +4219,12 @@ function tagLoopItemRootComponents(nodes: readonly IRNode[]): void {
|
|
|
4206
4219
|
*
|
|
4207
4220
|
* Deliberately does NOT remove the literal `key` entry from `.attrs`: the
|
|
4208
4221
|
* CSR/client-JS codegen path (`ir-to-client-js/html-template.ts`'s
|
|
4209
|
-
* `
|
|
4210
|
-
*
|
|
4211
|
-
*
|
|
4212
|
-
*
|
|
4213
|
-
* skip the raw `key` attr in their generic `renderAttributes`
|
|
4214
|
-
* (Hono's own JSX runtime already drops it silently either way).
|
|
4222
|
+
* `resolvedKeyAttrName` helper, #2763) reads it back off `.attrs` too, but
|
|
4223
|
+
* only emits `data-key` when THIS field — `node.keyAttr` — is actually set;
|
|
4224
|
+
* a raw `key` attribute the SSR side didn't recognize as a row key (e.g. a
|
|
4225
|
+
* fragment-bodied row before #2763's fix) no longer gets baked client-side
|
|
4226
|
+
* either. Adapters skip the raw `key` attr in their generic `renderAttributes`
|
|
4227
|
+
* loop instead (Hono's own JSX runtime already drops it silently either way).
|
|
4215
4228
|
*
|
|
4216
4229
|
* `component` bodies are left untouched: a `<Comp key={x}/>` row root's key
|
|
4217
4230
|
* is a PROP (`renderComponentProps`'s own `data-key` prop-forwarding), not
|
|
@@ -4226,6 +4239,16 @@ function applyLoopKeyAttr(node: IRNode, name: string, value: string): void {
|
|
|
4226
4239
|
if (node.type === 'conditional') {
|
|
4227
4240
|
applyLoopKeyAttr(node.whenTrue, name, value)
|
|
4228
4241
|
applyLoopKeyAttr(node.whenFalse, name, value)
|
|
4242
|
+
return
|
|
4243
|
+
}
|
|
4244
|
+
if (node.type === 'fragment') {
|
|
4245
|
+
// Write-side twin of `extractLoopKey`'s fragment case: stamp the SAME
|
|
4246
|
+
// first-real-child this key was read from, not every child, matching
|
|
4247
|
+
// the "first element, not first node" rule.
|
|
4248
|
+
const first = node.children.find(
|
|
4249
|
+
(c) => !(c.type === 'text' && typeof c.value === 'string' && !c.value.trim())
|
|
4250
|
+
)
|
|
4251
|
+
if (first) applyLoopKeyAttr(first, name, value)
|
|
4229
4252
|
}
|
|
4230
4253
|
}
|
|
4231
4254
|
|
|
@@ -4667,7 +4690,7 @@ function transformMapCall(
|
|
|
4667
4690
|
// the conditional — the same carrier the single-return path uses. A
|
|
4668
4691
|
// JS-runtime adapter (and the browser under /* @client */) runs it
|
|
4669
4692
|
// verbatim.
|
|
4670
|
-
preamble = preambleFromValueStatements(pre, ctx)
|
|
4693
|
+
preamble = preambleFromValueStatements(pre, ctx, body.statements)
|
|
4671
4694
|
|
|
4672
4695
|
// Stage 2 of spec/callback-fidelity.md, narrowed by #2447. This used
|
|
4673
4696
|
// to refuse EVERY branch preamble on a DSL target, on the premise
|
|
@@ -4874,7 +4897,7 @@ function transformMapCall(
|
|
|
4874
4897
|
valueStmts.push(stmt)
|
|
4875
4898
|
}
|
|
4876
4899
|
if (valueStmts.length > 0) {
|
|
4877
|
-
preamble = preambleFromValueStatements(valueStmts, ctx)
|
|
4900
|
+
preamble = preambleFromValueStatements(valueStmts, ctx, body.statements)
|
|
4878
4901
|
|
|
4879
4902
|
// #2447. A DSL adapter cannot execute `preamble.segments` (JS
|
|
4880
4903
|
// text), so it lowers `declarations` — one per-row local each —
|
|
@@ -5844,6 +5867,7 @@ function computePreambleReactiveNames(
|
|
|
5844
5867
|
function preambleFromValueStatements(
|
|
5845
5868
|
statements: readonly ts.Statement[],
|
|
5846
5869
|
ctx: TransformContext,
|
|
5870
|
+
bodyStatements: readonly ts.Statement[],
|
|
5847
5871
|
): MapCallbackPreamble {
|
|
5848
5872
|
const segments: PreambleSegment[] = []
|
|
5849
5873
|
const typedParts: string[] = []
|
|
@@ -5865,7 +5889,7 @@ function preambleFromValueStatements(
|
|
|
5865
5889
|
declaredNames: [...declared],
|
|
5866
5890
|
// Value-only preambles accumulate no JSX, so no child needs the array join.
|
|
5867
5891
|
builderNames: [],
|
|
5868
|
-
declarations: neutralPreambleDeclarations(statements, ctx) ?? undefined,
|
|
5892
|
+
declarations: neutralPreambleDeclarations(statements, ctx, bodyStatements) ?? undefined,
|
|
5869
5893
|
reactiveNames: reactiveNames.size > 0 ? [...reactiveNames] : undefined,
|
|
5870
5894
|
}
|
|
5871
5895
|
}
|
|
@@ -5882,6 +5906,7 @@ function preambleFromValueStatements(
|
|
|
5882
5906
|
function neutralPreambleDeclarations(
|
|
5883
5907
|
statements: readonly ts.Statement[],
|
|
5884
5908
|
ctx: TransformContext,
|
|
5909
|
+
bodyStatements: readonly ts.Statement[],
|
|
5885
5910
|
): PreambleValueDeclaration[] | null {
|
|
5886
5911
|
const out: PreambleValueDeclaration[] = []
|
|
5887
5912
|
for (const stmt of statements) {
|
|
@@ -5893,6 +5918,20 @@ function neutralPreambleDeclarations(
|
|
|
5893
5918
|
// no adapter has a single per-row local form for that.
|
|
5894
5919
|
if (!ts.isIdentifier(decl.name)) return null
|
|
5895
5920
|
if (!decl.initializer) return null
|
|
5921
|
+
// #2797: a function-valued local (an event handler hoisted out of the
|
|
5922
|
+
// JSX attribute position, e.g. `const handleClick = () => {...}`) has
|
|
5923
|
+
// no template-expression form on any backend — no DSL here has a
|
|
5924
|
+
// callable value. But every adapter's own SSR component-prop builder
|
|
5925
|
+
// already skips an event-handler prop (`isEventHandlerAttrName`)
|
|
5926
|
+
// outright, so a name read ONLY that way needs no SSR representation
|
|
5927
|
+
// at all — elide the declaration instead of refusing the whole
|
|
5928
|
+
// preamble. The client-JS preamble (`segments`, not `declarations`)
|
|
5929
|
+
// still carries the real closure; this only concerns what the DSL
|
|
5930
|
+
// SSR template sees.
|
|
5931
|
+
if (isFunctionLiteral(decl.initializer)) {
|
|
5932
|
+
if (everyReadIsEventHandlerPropValue(decl.name.text, bodyStatements)) continue
|
|
5933
|
+
return null
|
|
5934
|
+
}
|
|
5896
5935
|
const valueParsed = tsNodeToParsedExpr(decl.initializer)
|
|
5897
5936
|
// The same subset gate every other DSL-lowered expression passes
|
|
5898
5937
|
// through. An adapter that additionally cannot emit a supported shape
|
|
@@ -5907,7 +5946,74 @@ function neutralPreambleDeclarations(
|
|
|
5907
5946
|
})
|
|
5908
5947
|
}
|
|
5909
5948
|
}
|
|
5910
|
-
|
|
5949
|
+
// Not `out.length > 0 ? out : null` — an all-elided preamble legitimately
|
|
5950
|
+
// has zero declarations to emit (see MapCallbackPreamble.declarations'
|
|
5951
|
+
// docstring); `[]` is what tells the Phase-1 gate "fully declared."
|
|
5952
|
+
return out
|
|
5953
|
+
}
|
|
5954
|
+
|
|
5955
|
+
/** `const x = () => {...}` / `const x = function () {...}` — a callable value, never a template-expression shape. */
|
|
5956
|
+
function isFunctionLiteral(node: ts.Expression): boolean {
|
|
5957
|
+
return ts.isArrowFunction(node) || ts.isFunctionExpression(node)
|
|
5958
|
+
}
|
|
5959
|
+
|
|
5960
|
+
/**
|
|
5961
|
+
* Whether every read of `name` in `bodyStatements`, other than its own
|
|
5962
|
+
* binding site, sits inside an event-handler `JsxAttribute`'s
|
|
5963
|
+
* (`onClick`/`onInput`/...) value — i.e. `name={<ident>}` where the
|
|
5964
|
+
* attribute's own name passes {@link isEventHandlerAttrName}, the exact
|
|
5965
|
+
* predicate every DSL adapter's own SSR prop-builder already uses to skip an
|
|
5966
|
+
* event-handler prop (e.g. `packages/adapter-jinja/src/adapter/
|
|
5967
|
+
* jinja-adapter.ts`'s `renderComponent`, `packages/adapter-go-template/...`'s
|
|
5968
|
+
* `prop.isEventHandler` check).
|
|
5969
|
+
*
|
|
5970
|
+
* Walks the raw preamble+return syntax rather than the already-built row IR
|
|
5971
|
+
* (`children`) deliberately: `neutralPreambleDeclarations` runs on the
|
|
5972
|
+
* PREAMBLE statements specifically, and the IR built from the return
|
|
5973
|
+
* expression doesn't retain a per-occurrence link back to which SOURCE
|
|
5974
|
+
* identifier fed a given `IREvent`/`IRProp` — re-deriving from syntax here
|
|
5975
|
+
* keeps the safety check self-contained rather than threading that link
|
|
5976
|
+
* through the IR builder for one caller.
|
|
5977
|
+
*
|
|
5978
|
+
* Conservative: a property-access name (`x.name`), a nested declaration's own
|
|
5979
|
+
* binding, or any other read shape (a text/attr expression, a NON-event
|
|
5980
|
+
* child prop, a call) fails this and falls through to the ordinary refusal —
|
|
5981
|
+
* this only widens the shapes that are SAFE to elide, never narrows what was
|
|
5982
|
+
* already accepted. Uses `ts.forEachChild`'s own short-circuit (a truthy
|
|
5983
|
+
* return stops the walk) rather than a separate mutable flag.
|
|
5984
|
+
*/
|
|
5985
|
+
function everyReadIsEventHandlerPropValue(name: string, bodyStatements: readonly ts.Statement[]): boolean {
|
|
5986
|
+
const findDisallowedRead = (node: ts.Node): true | undefined => {
|
|
5987
|
+
if (ts.isIdentifier(node) && node.text === name) {
|
|
5988
|
+
const isBindingName = ts.isVariableDeclaration(node.parent) && node.parent.name === node
|
|
5989
|
+
const isPropertyName = ts.isPropertyAccessExpression(node.parent) && node.parent.name === node
|
|
5990
|
+
if (!isBindingName && !isPropertyName) {
|
|
5991
|
+
const jsxExpr = node.parent
|
|
5992
|
+
const attr = jsxExpr.parent
|
|
5993
|
+
const isEventHandlerAttrValue =
|
|
5994
|
+
ts.isJsxExpression(jsxExpr) &&
|
|
5995
|
+
ts.isJsxAttribute(attr) &&
|
|
5996
|
+
attr.initializer === jsxExpr &&
|
|
5997
|
+
ts.isIdentifier(attr.name) &&
|
|
5998
|
+
isEventHandlerAttrName(attr.name.text)
|
|
5999
|
+
if (!isEventHandlerAttrValue) return true
|
|
6000
|
+
}
|
|
6001
|
+
}
|
|
6002
|
+
return ts.forEachChild(node, findDisallowedRead)
|
|
6003
|
+
}
|
|
6004
|
+
return !bodyStatements.some(findDisallowedRead)
|
|
6005
|
+
}
|
|
6006
|
+
|
|
6007
|
+
/**
|
|
6008
|
+
* Whether a JSX attribute name is an event handler (`onClick`, `onInput`,
|
|
6009
|
+
* ...) rather than a plain attribute/prop. Shared by every site in this file
|
|
6010
|
+
* that needs the same call: native-element attribute extraction (routes into
|
|
6011
|
+
* `IREvent`, never rendered HTML), the preamble-verbatim-leaf wiring guard,
|
|
6012
|
+
* and {@link everyReadIsEventHandlerPropValue}'s elision safety check — one
|
|
6013
|
+
* decision, one implementation, per CLAUDE.md.
|
|
6014
|
+
*/
|
|
6015
|
+
function isEventHandlerAttrName(name: string): boolean {
|
|
6016
|
+
return /^on[A-Z]/.test(name)
|
|
5911
6017
|
}
|
|
5912
6018
|
|
|
5913
6019
|
/** Drop the trailing separator space from the final js segment. */
|
|
@@ -6261,7 +6367,7 @@ function processAttributes(
|
|
|
6261
6367
|
// they're wired up at hydration time (delegated event registration) and
|
|
6262
6368
|
// must not leak into rendered HTML. The DOM event name is lowercase
|
|
6263
6369
|
// (`click`, not `Click`), so strip the `on` prefix and downcase.
|
|
6264
|
-
if (
|
|
6370
|
+
if (isEventHandlerAttrName(rawName)) {
|
|
6265
6371
|
if (attr.initializer && ts.isJsxExpression(attr.initializer) && attr.initializer.expression) {
|
|
6266
6372
|
const eventName = rawName.slice(2).toLowerCase()
|
|
6267
6373
|
reportJsxBranchLocalInCallback(attr.initializer.expression, ctx)
|
package/src/types.ts
CHANGED
|
@@ -936,6 +936,19 @@ export interface MapCallbackPreamble {
|
|
|
936
936
|
* expression subset cannot model leaves this `undefined`, and the Phase-1
|
|
937
937
|
* DSL gate refuses the whole loop with `/* @client *\/` guidance.
|
|
938
938
|
*
|
|
939
|
+
* ONE exception (#2797): a declaration whose initializer is a function
|
|
940
|
+
* literal is ELIDED (contributes no entry here) rather than refusing the
|
|
941
|
+
* preamble, when EVERY read of that name outside its own binding sits
|
|
942
|
+
* inside an event-handler `JsxAttribute` (`/^on[A-Z]/`) value position —
|
|
943
|
+
* see `neutralPreambleDeclarations`'s `everyReadIsEventHandlerPropValue`
|
|
944
|
+
* check. Every DSL adapter's own SSR component-prop builder already skips
|
|
945
|
+
* an event-handler prop outright, so a name read only that way never needs
|
|
946
|
+
* an SSR representation; the client-JS preamble (`segments`) still carries
|
|
947
|
+
* the real closure. This can leave `declarations` a legally EMPTY array
|
|
948
|
+
* (all-declared names elided) rather than `undefined` — the Phase-1 gate
|
|
949
|
+
* checks falsiness, and `[]` is truthy, so an empty array reads as "fully
|
|
950
|
+
* declared, nothing to emit," not a refusal.
|
|
951
|
+
*
|
|
939
952
|
* Declarations appear in source order and may read earlier ones; adapters
|
|
940
953
|
* emit them in order, so an earlier local is in scope for a later
|
|
941
954
|
* initializer, exactly as in the source.
|