Skip to content

Commit

Permalink
refactor: improve naming and avoid closest branch calls
Browse files Browse the repository at this point in the history
  • Loading branch information
DylanPiercey committed Jan 25, 2025
1 parent 5ad50c7 commit 218c436
Show file tree
Hide file tree
Showing 191 changed files with 355 additions and 468 deletions.
6 changes: 6 additions & 0 deletions .changeset/flat-gifts-pretend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@marko/translator-interop-class-tags": patch
"@marko/runtime-tags": patch
---

Fix issue where code within a control flow could execute after the control flow was removed.
8 changes: 8 additions & 0 deletions .changeset/weak-ducks-begin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
"@marko/translator-interop-class-tags": patch
"marko": patch
"@marko/runtime-tags": patch
"@marko/compiler": patch
---

Improve tags / class api interop layer for destroyed tags.
20 changes: 10 additions & 10 deletions .sizes.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
{
"name": "*",
"total": {
"min": 17938,
"brotli": 6553
"min": 17899,
"brotli": 6554
}
},
{
Expand All @@ -33,12 +33,12 @@
"brotli": 100
},
"runtime": {
"min": 3545,
"brotli": 1609
"min": 3506,
"brotli": 1584
},
"total": {
"min": 3656,
"brotli": 1709
"min": 3617,
"brotli": 1684
}
},
{
Expand All @@ -63,12 +63,12 @@
"brotli": 478
},
"runtime": {
"min": 8721,
"brotli": 3559
"min": 8682,
"brotli": 3538
},
"total": {
"min": 9669,
"brotli": 4037
"min": 9630,
"brotli": 4016
}
}
]
Expand Down
40 changes: 19 additions & 21 deletions .sizes/dom.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// size: 17938 (min) 6553 (brotli)
// size: 17899 (min) 6554 (brotli)
var empty = [],
rest = Symbol();
function attrTag(attrs2) {
Expand Down Expand Up @@ -178,25 +178,23 @@ var registeredValues = {},
parentBranchIds = new Map();
if (visits.length) {
let commentPrefixLen = data2.i.length,
parentBranchMarkers = new Map();
closestBranchMarkers = new Map();
data2.v = [];
let sectionEnd = (scopeId, visit, curNode) => {
let scope = (scopeLookup[scopeId] ||= {});
branchIds.add(scopeId);
let endNode = curNode;
let branchEnd = (branchId, visit, curNode) => {
let branch = (scopeLookup[branchId] ||= {}),
endNode = curNode;
for (; 8 === (endNode = endNode.previousSibling).nodeType; );
scope.c = endNode;
let startNode = (scope.a ||= endNode),
len = parentBranchMarkers.size;
for (let [markerScopeId, markerNode] of parentBranchMarkers) {
if (!len--) break;
markerScopeId !== scopeId &&
4 & startNode.compareDocumentPosition(markerNode) &&
(branch.c = endNode), (branch.a ||= endNode);
for (let [markerScopeId, markerNode] of closestBranchMarkers)
4 & branch.a.compareDocumentPosition(markerNode) &&
2 & curNode.compareDocumentPosition(markerNode) &&
(parentBranchIds.set(markerScopeId, scopeId),
parentBranchMarkers.delete(markerScopeId));
}
return parentBranchMarkers.set(scopeId, visit), scope;
(parentBranchIds.set(markerScopeId, branchId),
closestBranchMarkers.delete(markerScopeId));
return (
branchIds.add(branchId),
closestBranchMarkers.set(branchId, visit),
branch
);
};
for (let visit of visits) {
let commentText = visit.data,
Expand All @@ -209,17 +207,17 @@ var registeredValues = {},
data3 = dataIndex ? commentText.slice(dataIndex) : "",
token = commentText[commentPrefixLen];
if ("*" === token) scope[data3] = visit.previousSibling;
else if ("$" === token) parentBranchMarkers.set(scopeId, visit);
else if ("$" === token) closestBranchMarkers.set(scopeId, visit);
else if ("[" === token)
this.g &&
(dataIndex && sectionEnd(this.g, visit, visit),
(dataIndex && branchEnd(this.g, visit, visit),
this.o.push(this.g)),
(this.g = scopeId),
(scope.a = visit);
else if ("]" === token) {
scope[data3] = visit;
let curParent = visit.parentNode,
startNode = sectionEnd(this.g, visit, visit).a;
startNode = branchEnd(this.g, visit, visit).a;
curParent !== startNode.parentNode && curParent.prepend(startNode),
(this.g = this.o.pop());
} else if ("|" === token) {
Expand All @@ -228,7 +226,7 @@ var registeredValues = {},
for (; ~next; ) {
let start = next + 1;
(next = data3.indexOf(" ", start)),
(curNode = sectionEnd(
(curNode = branchEnd(
data3.slice(start, ~next ? next : data3.length),
visit,
curNode,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.write(`<div>${_$.escapeXML((() => {
throw new Error("Cannot use $signal in a server render.");
})().onabort = () => {})}</div>`);
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope0_id, {
"clickCount": clickCount
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope0_id, {
"disabled": disabled
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_$.resumeClosestBranch(_scope1_id);
});
_$.fork(resolveAfter("b", 2), value => {
const _scope2_id = _$.nextScopeId();
Expand All @@ -20,7 +20,7 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope2_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope2_id);
_$.resumeClosestBranch(_scope2_id);
});
_$.fork(resolveAfter("c", 1), value => {
const _scope3_id = _$.nextScopeId();
Expand All @@ -29,13 +29,13 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope3_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope3_id);
_$.resumeClosestBranch(_scope3_id);
});
_$.write(`<button>Inc</button>${_$.markResumeNode(_scope0_id, "#button/0")}</div>`);
_$.writeEffect(_scope0_id, "__tests__/template.marko_0_count");
_$.writeScope(_scope0_id, {
"count": count
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
const y = x * 2;
const z = y * 3;
_$.write(`<div>${_$.escapeXML(z)}${_$.markResumeNode(_scope0_id, "#text/0")}</div>`);
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"clickCount": clickCount,
"#childScope/0": _$.writeExistingScope(_childScope)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"clickCount": clickCount,
"#childScope/0": _$.writeExistingScope(_childScope)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"#childScope/0": _$.writeExistingScope(_childScope),
"#childScope/1": _$.writeExistingScope(_childScope2)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"clickCount": clickCount,
"#childScope/0": _$.writeExistingScope(_childScope)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"clickCount": clickCount,
"#childScope/0": _$.writeExistingScope(_childScope)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_$.resumeClosestBranch(_scope1_id);
}), "__tests__/template.marko_1_renderer", _scope0_id)
});
_$.writeScope(_scope0_id, {
"clickCount": clickCount,
"#childScope/0": _$.writeExistingScope(_childScope)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope0_id, {
"clickCount": clickCount
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/tags/counter.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_$.register(_ifRenderer = /* @__PURE__ */_$.createRenderer(() => {}), "__tests__/template.marko_1_renderer");
_ifScopeId = _scope1_id;
}
Expand All @@ -25,6 +24,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"#text/2(": _ifRenderer,
"#text/2!": _$.getScopeById(_ifScopeId)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_$.register(_ifRenderer = /* @__PURE__ */_$.createRenderer(() => {}), "__tests__/template.marko_1_renderer");
_ifScopeId = _scope1_id;
}
Expand All @@ -25,6 +24,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"#text/2(": _ifRenderer,
"#text/2!": _$.getScopeById(_ifScopeId)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_ifScopeId = _scope1_id;
}
_$.writeScope(_scope0_id, {
"a": a,
"b": b,
"#text/0!": _$.getScopeById(_ifScopeId)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"clickCount": clickCount,
"increment": increment
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"count": count,
"multiplier": multiplier
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope0_id, {
"clickCount": clickCount
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope1_id, {
"_": _$.ensureScopeWithId(_scope0_id)
});
_$.markResumeParentBranch(_scope1_id);
_$.register(_ifRenderer = /* @__PURE__ */_$.createRenderer(() => {}), "__tests__/template.marko_1_renderer");
_ifScopeId = _scope1_id;
}
Expand All @@ -25,6 +24,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"#text/1(": _ifRenderer,
"#text/1!": _$.getScopeById(_ifScopeId)
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
_$.writeScope(_scope0_id, {
"count": count
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ const _renderer = /* @__PURE__ */_$.createRenderer((input, _tagVar) => {
"a": a,
"b": b
});
_$.markResumeParentBranch(_scope0_id);
_$.resumeClosestBranch(_scope0_id);
});
export default /* @__PURE__ */_$.createTemplate("__tests__/template.marko", _renderer);
Loading

0 comments on commit 218c436

Please sign in to comment.